Function at 0x4bc9f0
Capabilities:
Get geographical location
Persist via run registry key
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x8609c3
mov eax, dword fs:[0]
push eax
sub esp, 0x2e8
mov eax, dword [0x8ce6f4]
xor eax, esp
mov dword [esp + 0x2b0], eax
push ebx
push esi
push edi
mov eax, dword [0x8ce6f4]
xor eax, esp
push eax
lea eax, [esp + 0x2f8]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x5c], esi
call fcn.007c9a2f
cmp byte [esi + 8], 0
mov ebx, dword [eax + 4]
mov dword [esp + 0x58], 0
jne 0x4c0a85
mov eax, dword [ebx]
mov edx, dword [eax + 0x7c]
or edi, 0xffffffff
push edi
push 0x403c60
push 0x402d18
mov ecx, ebx
call edx
mov ecx, 0xffff
mov word [esi + 0xe88], ax
cmp ax, cx
jne 0x4bca7f
call fcn.005391e0
jmp 0x4bcaaf
test ax, ax
je 0x4bcaaf
push 1
cmp ax, 0x17
ja 0x4bca9d
movzx edx, ax
add edx, 0x8013
push edx
call fcn.00533460
jmp 0x4bcaa3
push eax
call fcn.005334a0
add esp, 4
push eax
call fcn.00537200
add esp, 8
mov ecx, esi
call fcn.004b8120
mov eax, dword [ebx]
mov edx, dword [eax + 0x7c]
push 0
push 0x4048ec
push 0x402d18
mov ecx, ebx
call edx
push 0
mov dword [esi + 0xe7c], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x7c]
push 0x4048cc
push 0x402d18
mov ecx, ebx
call edx
test eax, eax
setne al
push 0x13
mov byte [esi + 0xe80], al
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4048b0
push 0x402d18
mov ecx, ebx
call eax
push 4
mov dword [esi + 0xe84], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x40488c
push 0x402d18
mov ecx, ebx
call eax
push 1
mov dword [esi + 0xe8c], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x40486c
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0xe90], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404848
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0x64
mov byte [esi + 0xe9c], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404838
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [esi + 0x244], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404828
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [esi + 0x24c], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404804
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 1
mov byte [esi + 0x248], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4047f4
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [esi + 0x250], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4047e8
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0x254], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4047d8
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 1
mov byte [esi + 0x255], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4047cc
push 0x402d18
mov ecx, ebx
call eax
mov dword [esi + 0x258], eax
cmp dword [0x8d4594], 0x600
jb 0x4bcc58
push 0x402c90
call fcn.005c69b0
movzx eax, al
add esp, 4
neg eax
sbb eax, eax
and eax, 0xb
jmp 0x4bcc5d
mov eax, 3
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x7c]
push 0x404548
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [esi + 0x310], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404534
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [esi + 0x314], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404520
push 0x402d18
mov ecx, ebx
call eax
push 5
mov dword [esi + 0x318], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404810
push 0x402d18
mov ecx, ebx
call eax
push 0
mov ecx, esi
mov dword [esi + 0x26c], eax
call fcn.004b2910
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402a88
push 0x404420
push 0x402d18
lea eax, [esp + 0x48]
push eax
mov ecx, ebx
call edx
lea ecx, [esi + 0x31c]
push eax
mov dword [esp + 0x304], 0
call fcn.004aa540
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov dword [esp + 0x300], edi
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bcd2e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 1
push 0x404404
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0x402c40
mov byte [esi + 0x266], cl
call fcn.005c69b0
add esp, 4
test al, al
je 0x4bcd80
cmp dword [0x8d4594], 0x600
jb 0x4bcd7c
push 0x402c90
call fcn.005c69b0
add esp, 4
test al, al
jne 0x4bcd80
xor eax, eax
jmp 0x4bcd85
mov eax, 1
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x7c]
push 0x4043e0
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
push 0x402a88
setne cl
push 0x4043b0
mov byte [esi + 0x267], cl
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x48]
push eax
mov ecx, ebx
call edx
lea ecx, [esi + 0x260]
push eax
mov dword [esp + 0x304], 1
call fcn.004aa540
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov dword [esp + 0x300], edi
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bce01
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402a88
push 0x404388
push 0x402d18
lea eax, [esp + 0x48]
push eax
mov ecx, ebx
call edx
lea ecx, [esi + 0x25c]
push eax
mov dword [esp + 0x304], 2
call fcn.004aa540
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov dword [esp + 0x300], edi
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bce5e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 1
push 0x40436c
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 1
mov byte [esi + 0x268], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404330
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 1
mov byte [esi + 0x264], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x40430c
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0x265], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x402d2c
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 1
mov byte [esi + 0xa0], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4047a8
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [esi + 0xac], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404784
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0xb0], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404778
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [esi + 0xeb8], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404764
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
push 1
setne cl
mov byte [esi + 0xa1], cl
mov edx, dword [ebx]
push 0x404750
push 0x402d18
mov ecx, ebx
mov eax, dword [edx + 0x7c]
call eax
test eax, eax
setne cl
push 1
mov byte [esi + 0x256], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404730
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0x322], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404700
push 0x402d18
mov ecx, ebx
call eax
push 0x402a88
push 0x403f4c
mov dword [esi + 0x324], eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x48]
push eax
mov ecx, ebx
call edx
lea ecx, [esi + 0x32c]
push eax
mov dword [esp + 0x304], 3
call fcn.004aa540
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov dword [esp + 0x300], edi
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd00c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0
push 0x403f2c
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
mov byte [esi + 0xe53], cl
cmp dword [0x8d4594], 0x601
jb 0x4bd055
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 1
push 0x403f0c
push 0x402d18
mov ecx, ebx
call eax
neg eax
sbb eax, eax
neg eax
jmp 0x4bd057
xor eax, eax
push 0
mov byte [esi + 0xe54], al
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403ee8
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0xebc], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403eb4
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0xebd], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403e88
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
sete cl
push 1
mov byte [esi + 0xe56], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403e68
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0xe57], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403e40
push 0x402d18
mov ecx, ebx
call eax
mov dword [esi + 0xe58], eax
cmp dword [0x8d4594], 0x600
mov edx, dword [ebx]
mov edx, dword [edx + 0x7c]
setae al
xor ecx, ecx
test al, al
sete cl
lea ecx, [ecx + ecx + 0x12]
push ecx
push 0x403e2c
push 0x402d18
mov ecx, ebx
call edx
mov dword [esi + 0xe60], eax
cmp dword [0x8d4594], 0x600
jb 0x4bd176
lea eax, [esp + 0xdc]
push eax
call fcn.005c20d0
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
add esp, 4
lea eax, [esp + 0xf8]
push eax
push 0x403e18
push 0x402d18
lea ecx, [esp + 0x48]
push ecx
mov ecx, ebx
call edx
mov dword [esp + 0x300], 4
jmp 0x4bd1a1
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402388
push 0x403e18
push 0x402d18
lea eax, [esp + 0x48]
push eax
mov ecx, ebx
call edx
mov dword [esp + 0x300], 5
push eax
lea ecx, [esi + 0xe5c]
call fcn.004aa540
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov edx, edi
lea ecx, [eax + 0xc]
mov dword [esp + 0x300], edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd1d3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 1
push 0x403df0
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
push 0x4050d8
setne cl
push 0x403dd8
mov byte [esi + 0x18c], cl
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x48]
push eax
mov ecx, ebx
call edx
lea ecx, [esi + 0xefc]
push eax
mov dword [esp + 0x304], 6
call fcn.004aa540
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov dword [esp + 0x300], edi
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jg 0x4bd24e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x8c]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x5c]
push ecx
push 0x4046e4
push 0x402d18
mov ecx, ebx
call edx
test eax, eax
je 0x4bd2b4
cmp dword [esp + 0x64], 0x494
mov eax, dword [esp + 0x58]
jne 0x4bd2a2
mov edi, dword [esp + 0x5c]
mov esi, eax
add edi, 0x330
mov ecx, 0x125
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x5c]
push eax
call fcn.007c8563
add esp, 4
jmp 0x4bd2bb
push eax
mov byte [esi + 0x330], 0
call fcn.007c8563
add esp, 4
jmp 0x4bd2bb
mov byte [esi + 0x330], 0
mov eax, dword [ebx]
mov edx, dword [eax + 0x7c]
push 1
push 0x4046b4
push 0x402d18
mov ecx, ebx
call edx
test eax, eax
setne al
push 1
mov byte [esi + 0x328], al
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x40468c
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0x7c4], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404668
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0x147], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404640
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
push 0x402a88
setne cl
push 0x404614
mov byte [esi + 0x158], cl
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x9c]
push eax
mov ecx, ebx
call edx
lea edi, [esi + 0x168]
push edi
lea eax, [esi + 0x160]
push eax
mov eax, dword [esp + 0x98]
push 0x4050c8
push eax
mov dword [esp + 0x310], 7
call fcn.00803d5e
fld1
add esp, 0x10
cmp eax, 2
jne 0x4bd3dc
fld qword [0x4050c0]
fcom qword [esi + 0x160]
fnstsw ax
test ah, 0x41
jp 0x4bd3da
fld qword [0x4050b8]
fcom qword [esi + 0x160]
fnstsw ax
test ah, 1
jne 0x4bd3d8
fxch st(1)
fcomp qword [edi]
fnstsw ax
test ah, 0x41
jp 0x4bd3da
fcomp qword [edi]
fnstsw ax
test ah, 1
jne 0x4bd3dc
fstp st(0)
mov byte [esi + 0x159], 1
jmp 0x4bd3eb
fstp st(0)
fstp st(0)
fst qword [esi + 0x160]
mov byte [esi + 0x159], 0
fstp qword [edi]
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0
push 0x4045ec
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0xa4], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404590
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [esi + 0xe94], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404574
push 0x402d18
mov ecx, ebx
call eax
push 1
mov dword [esi + 0xe98], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x40455c
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne al
test al, al
sete cl
movzx edx, cl
push 0
push edx
mov byte [esi + 0xb1], al
call fcn.004e36b0
mov eax, dword [ebx]
mov eax, dword [eax + 0x8c]
add esp, 8
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x5c]
push edx
push 0x4045cc
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
je 0x4bd4e3
cmp dword [esp + 0x64], 0x10
mov eax, dword [esp + 0x58]
jne 0x4bd4d1
mov ecx, dword [eax]
mov dword [esi + 0x148], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x14c], edx
mov ecx, dword [eax + 8]
mov dword [esi + 0x150], ecx
mov edx, dword [eax + 0xc]
push eax
mov dword [esi + 0x154], edx
call fcn.007c8563
add esp, 4
jmp 0x4bd4ea
push eax
mov byte [esi + 0x147], 0
call fcn.007c8563
add esp, 4
jmp 0x4bd4ea
mov byte [esi + 0x147], 0
mov eax, dword [ebx]
mov edx, dword [eax + 0x7c]
push 0
push 0x4045ac
push 0x402d18
mov ecx, ebx
call edx
push 0
mov dword [esi + 0xf00], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x7c]
push 0x4044f4
push 0x402d18
mov ecx, ebx
call edx
test eax, eax
setne al
push 1
mov byte [esi + 0xef8], al
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4044c8
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0x146], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404498
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 1
mov byte [esi + 0xef9], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404474
push 0x404460
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0xebe], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404444
push 0x404460
mov ecx, ebx
call eax
test eax, eax
push 0x402a88
setne cl
push 0x4042fc
mov byte [esi + 0xebf], cl
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x48]
push eax
mov ecx, ebx
call edx
lea ecx, [esi + 0x274]
push eax
mov byte [esp + 0x304], 8
call fcn.004aa540
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd601
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0
push 0x4042e4
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0x270], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4042d0
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [esi + 0x278], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4042bc
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [esi + 0x27c], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4042a0
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [esi + 0x280], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404280
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0x284], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404260
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
push 0x402a88
setne cl
push 0x404240
mov byte [esi + 0x285], cl
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x40]
push eax
mov ecx, ebx
call edx
lea eax, [esp + 0x34]
push eax
lea ecx, [esi + 0xd78]
push ecx
mov byte [esp + 0x308], 9
call fcn.0063d290
mov edi, dword [esp + 0x3c]
add esp, 8
mov ecx, 0x402a88
mov eax, edi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4bd726
test dx, dx
je 0x4bd722
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4bd726
add eax, 4
add ecx, 4
test dx, dx
jne 0x4bd700
xor eax, eax
jmp 0x4bd72b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x4bd73e
mov dword [esi + 0xe30], 2
lea eax, [edi - 0x10]
mov byte [esp + 0x300], 7
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4bd762
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0
push 0x404218
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0x32
mov byte [esi + 0xd64], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404204
push 0x402d18
mov ecx, ebx
call eax
push 0x5a
mov dword [esi + 0xd68], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4041f0
push 0x402d18
mov ecx, ebx
call eax
push 0x1f4
mov dword [esi + 0xd6c], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4041cc
push 0x402d18
mov ecx, ebx
call eax
push 1
mov dword [esi + 0xd70], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4041ac
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 1
mov byte [esi + 0xe8a], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404174
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0xe38], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404140
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
push 0x405088
setne cl
push 0x404124
mov byte [esi + 0xe39], cl
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x48]
push eax
mov ecx, ebx
call edx
lea ecx, [esi + 0xe3c]
push eax
mov byte [esp + 0x304], 0xa
call fcn.004aa540
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x300], 7
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd892
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0
push 0x4040f0
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 1
mov byte [esi + 0xe8b], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4040c8
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0x824], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x40409c
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0x82d], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x40407c
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [esi + 0x830], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x40405c
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [esi + 0x82c], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x404030
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
mov byte [esi + 0x834], cl
mov edx, dword [ebx]
mov edx, dword [edx + 0x8c]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x5c]
push ecx
push 0x404000
push 0x402d18
mov ecx, ebx
call edx
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4bd999
cmp dword [esp + 0x64], 0x510
jne 0x4bd999
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
add edi, 0x83c
mov ecx, 0x144
rep movsd dword es:[edi], dword [esi]
jmp 0x4bda4f
push 0x510
lea edi, [esi + 0x83c]
push 0
push edi
call fcn.00802690
add esp, 0xc
xor edx, edx
mov ecx, edi
mov dword [esp + 0x34], edi
mov eax, 1
test edx, edx
js 0x4bd9cd
lea edi, [edx + 1]
mov dword [ecx], eax
add ecx, 4
rol eax, 1
dec edi
jne 0x4bd9c3
mov ecx, dword [esp + 0x34]
inc edx
add ecx, 0x48
mov dword [esp + 0x34], ecx
cmp edx, 0x12
jl 0x4bd9b7
mov eax, 1
xor ecx, ecx
mov edx, 2
mov edi, 4
mov dword [esi + 0x83c], eax
mov dword [esi + 0x840], eax
mov dword [esi + 0x914], eax
mov dword [esi + 0x918], edx
mov dword [esi + 0x91c], ecx
mov dword [esi + 0x920], ecx
mov dword [esi + 0x924], edi
mov dword [esi + 0x928], 8
mov dword [esi + 0x95c], eax
mov dword [esi + 0x960], edx
mov dword [esi + 0x964], edi
mov dword [esi + 0x968], ecx
mov dword [esi + 0x96c], 8
mov dword [esi + 0x970], 0x10
cmp dword [esp + 0x3c], 0
je 0x4bda63
mov eax, dword [esp + 0x58]
push eax
call fcn.007c8563
add esp, 4
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0
push 0x403fe0
push 0x402d18
mov ecx, ebx
call eax
mov edi, dword [esp + 0x5c]
test eax, eax
setne cl
push 1
mov byte [edi + 0x825], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403fb4
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
push 0x405084
setne cl
push 0x403f90
mov byte [edi + 0x826], cl
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x48]
push eax
mov ecx, ebx
call edx
mov eax, dword [eax]
push eax
call fcn.00803ffe
fstp dword [edi + 0x828]
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bdaf8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
fldz
fcom dword [edi + 0x828]
fnstsw ax
test ah, 0x41
je 0x4bdb1a
fld dword [0x40507c]
fcomp dword [edi + 0x828]
fnstsw ax
test ah, 5
jp 0x4bdb22
fstp dword [edi + 0x828]
jmp 0x4bdb24
fstp st(0)
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 2
push 0x403f70
push 0x402d18
mov ecx, ebx
call eax
mov dword [edi + 0x838], eax
mov dword [esp + 0x34], 0
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4be5f4
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x34]
push ecx
push 0x402e44
lea edx, [esp + 0x38]
push 0x402e34
push edx
mov byte [esp + 0x310], 0xb
call fcn.004aa600
push 0x5c
call fcn.007c8529
add esp, 0x14
mov dword [esp + 0x2c], eax
mov byte [esp + 0x300], 0xc
test eax, eax
je 0x4bdbb5
mov ecx, eax
call fcn.004b1fd0
mov esi, eax
mov dword [esp + 0x4c], eax
jmp 0x4bdbbb
xor esi, esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x54], esi
mov ecx, dword [esp + 0x30]
mov eax, dword [ebx]
mov edx, dword [eax + 0x7c]
push 0
push 0x402e24
push ecx
mov ecx, ebx
mov byte [esp + 0x30c], 0xd
call edx
test eax, eax
sete al
push 0xffffffffffffffff
mov byte [esi], al
mov edx, dword [ebx]
mov eax, dword [esp + 0x34]
mov edx, dword [edx + 0x7c]
push 0x402e0c
push eax
mov ecx, ebx
call edx
test eax, eax
jne 0x4bdd82
mov ecx, dword [esp + 0x30]
push 0x402a88
push 0x402df4
mov dword [esi + 4], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
push ecx
lea edx, [esp + 0x6c]
push edx
mov ecx, ebx
call eax
mov edx, dword [eax]
mov ecx, dword [esi + 8]
sub ecx, 0x10
lea eax, [edx - 0x10]
mov byte [esp + 0x300], 0xe
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], ecx
cmp eax, ecx
je 0x4bdc9d
cmp dword [ecx + 0xc], 0
jl 0x4bdc90
mov ecx, dword [eax]
mov edx, dword [esp + 0x40]
cmp ecx, dword [edx]
jne 0x4bdc8c
push eax
call fcn.004a9b50
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x44]
add esp, 4
add eax, 0xc
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4bdc80
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x44]
add ecx, 0x10
mov dword [esi + 8], ecx
jmp 0x4bdc9d
mov edx, dword [esp + 0x44]
mov eax, dword [edx - 0xc]
push eax
push edx
lea ecx, [esi + 8]
call fcn.004a8db0
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0xd
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4bdcc5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402a88
push 0x402de8
push eax
lea ecx, [esp + 0x74]
push ecx
mov ecx, ebx
call edx
mov ecx, dword [eax]
add esi, 0x10
mov dword [esp + 0x44], esi
mov esi, dword [esi]
lea eax, [ecx - 0x10]
sub esi, 0x10
mov byte [esp + 0x300], 0xf
cmp eax, esi
je 0x4bdd51
cmp dword [esi + 0xc], 0
jl 0x4bdd43
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4bdd43
push eax
call fcn.004a9b50
mov dword [esp + 0x54], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4bdd34
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x44]
add ecx, 0x10
mov dword [edx], ecx
jmp 0x4bdd51
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, dword [esp + 0x4c]
call fcn.004a8db0
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bdf68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4bdf68
cmp eax, 1
mov eax, dword [esp + 0x30]
jne 0x4be67a
push 0x402a88
push 0x402ddc
mov dword [esi + 4], 1
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push eax
lea ecx, [esp + 0x54]
push ecx
mov ecx, ebx
call edx
mov edx, dword [eax]
mov ecx, dword [esi + 0xc]
sub ecx, 0x10
lea eax, [edx - 0x10]
mov byte [esp + 0x300], 0x10
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], ecx
cmp eax, ecx
je 0x4bde2c
cmp dword [ecx + 0xc], 0
jl 0x4bde1f
mov ecx, dword [eax]
mov edx, dword [esp + 0x40]
cmp ecx, dword [edx]
jne 0x4bde1b
push eax
call fcn.004a9b50
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x44]
add esp, 4
add eax, 0xc
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4bde0f
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x44]
add ecx, 0x10
mov dword [esi + 0xc], ecx
jmp 0x4bde2c
mov edx, dword [esp + 0x44]
mov eax, dword [edx - 0xc]
push eax
push edx
lea ecx, [esi + 0xc]
call fcn.004a8db0
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0xd
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4bde54
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402a88
push 0x402de8
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebx
call edx
mov edx, dword [eax]
mov ecx, dword [esi + 0x10]
sub ecx, 0x10
lea eax, [edx - 0x10]
mov byte [esp + 0x300], 0x11
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], ecx
cmp eax, ecx
je 0x4bdeee
cmp dword [ecx + 0xc], 0
jl 0x4bdee1
mov ecx, dword [eax]
mov edx, dword [esp + 0x40]
cmp ecx, dword [edx]
jne 0x4bdedd
push eax
call fcn.004a9b50
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x44]
add esp, 4
add eax, 0xc
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4bded1
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x44]
add ecx, 0x10
mov dword [esi + 0x10], ecx
jmp 0x4bdeee
mov edx, dword [esp + 0x44]
mov eax, dword [edx - 0xc]
push eax
push edx
lea ecx, [esi + 0x10]
call fcn.004a8db0
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0xd
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4bdf16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push ecx
mov ecx, dword [esp + 0x34]
mov eax, esp
mov dword [esp + 0x30], esp
push 0x402a88
push 0x402dd0
push ecx
push eax
mov ecx, ebx
call edx
lea eax, [esp + 0xd0]
push eax
call fcn.005c4ec0
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x7c], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esi + 0x14], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], edx
add esp, 8
mov dword [esi + 0x20], eax
mov esi, dword [esp + 0x4c]
lea ecx, [esi + 0x3c]
call fcn.004b0ca0
mov dword [esp + 0x44], 0
lea esp, [esp]
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4be5f4
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x44]
push ecx
lea edx, [esp + 0x44]
push 0x402dc0
push edx
mov byte [esp + 0x30c], 0x12
call fcn.004aa600
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x3c]
mov eax, dword [ebx]
add esp, 0xc
push 0x402a88
push ecx
push edx
mov edx, dword [eax + 0x84]
lea ecx, [esp + 0x78]
push ecx
mov ecx, ebx
call edx
mov eax, dword [esp + 0x6c]
cmp dword [eax - 0xc], 0
mov byte [esp + 0x300], 0x13
je 0x4be168
push ecx
mov ecx, dword [eax - 0x10]
lea edi, [eax - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x30], esp
mov dword [esp + 0x30], esp
call edx
cmp dword [edi + 0xc], 0
lea ecx, [edi + 0xc]
jl 0x4be02b
cmp eax, dword [edi]
jne 0x4be02b
mov dword [esp + 0x54], edi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x4be06c
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [esp + 0x54], eax
test eax, eax
je 0x4be675
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x54]
mov dword [ecx + 4], eax
mov eax, dword [edi + 4]
lea edx, [eax + eax + 2]
push edx
add edi, 0x10
push edi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.0080217f
add esp, 0x10
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x30]
lea eax, [esp + 0xc0]
add ecx, 0x10
push eax
mov dword [edx], ecx
call fcn.005c4ec0
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov edi, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x34], ecx
add esp, 8
lea ecx, [esi + 0x3c]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
call fcn.004b03a0
mov eax, dword [esi + 0x4c]
mov ecx, dword [eax]
test eax, eax
je 0x4be0e2
mov edx, dword [esp + 0x84]
mov dword [eax + 8], edi
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x88]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x8c]
mov dword [eax + 0x14], edx
mov dword [esi + 0x4c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 4], ecx
mov dword [eax], 0
mov ecx, dword [esi + 0x40]
mov edi, 1
add dword [esi + 0x44], edi
test ecx, ecx
je 0x4be105
mov dword [ecx], eax
jmp 0x4be108
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x12
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4be133
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be15b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add dword [esp + 0x44], edi
mov edi, dword [esp + 0x5c]
jmp 0x4bdf80
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x12
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be18c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be1b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x4c]
lea ecx, [esi + 0x24]
call fcn.004b0ca0
mov dword [esp + 0x50], 0
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4be5f4
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x50]
push ecx
lea edx, [esp + 0x44]
push 0x402db0
push edx
mov byte [esp + 0x30c], 0x14
call fcn.004aa600
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x3c]
mov eax, dword [ebx]
add esp, 0xc
push 0x402a88
push ecx
push edx
mov edx, dword [eax + 0x84]
lea ecx, [esp + 0x48]
push ecx
mov ecx, ebx
call edx
mov eax, dword [esp + 0x3c]
cmp dword [eax - 0xc], 0
mov byte [esp + 0x300], 0x15
je 0x4be3b0
push ecx
mov ecx, dword [eax - 0x10]
lea edi, [eax - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x30], esp
mov dword [esp + 0x30], esp
call edx
cmp dword [edi + 0xc], 0
lea ecx, [edi + 0xc]
jl 0x4be273
cmp eax, dword [edi]
jne 0x4be273
mov dword [esp + 0x48], edi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x4be2b4
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [esp + 0x48], eax
test eax, eax
je 0x4be675
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x48]
mov dword [ecx + 4], eax
mov eax, dword [edi + 4]
lea edx, [eax + eax + 2]
push edx
add edi, 0x10
push edi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.0080217f
add esp, 0x10
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
lea eax, [esp + 0xa8]
add ecx, 0x10
push eax
mov dword [edx], ecx
call fcn.005c4ec0
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov edi, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x34], ecx
add esp, 8
lea ecx, [esi + 0x24]
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], eax
call fcn.004b03a0
mov eax, dword [esi + 0x34]
mov ecx, dword [eax]
test eax, eax
je 0x4be32a
mov edx, dword [esp + 0x98]
mov dword [eax + 8], edi
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x9c]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0xa0]
mov dword [eax + 0x14], edx
mov dword [esi + 0x34], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 4], ecx
mov dword [eax], 0
mov ecx, dword [esi + 0x28]
mov edi, 1
add dword [esi + 0x2c], edi
test ecx, ecx
je 0x4be34d
mov dword [ecx], eax
jmp 0x4be350
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x14
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4be37b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be3a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add dword [esp + 0x50], edi
mov edi, dword [esp + 0x5c]
jmp 0x4be1c8
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x14
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be3d4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be3fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [esp + 0x30]
mov edx, dword [edx + 0x7c]
push 0xffffffffffffffff
push 0x402d9c
push eax
mov ecx, ebx
call edx
mov esi, dword [esp + 0x4c]
mov dword [esi + 0x54], eax
test eax, eax
jl 0x4be5fe
mov ecx, dword [esp + 0x30]
mov eax, dword [ebx]
mov edx, dword [eax + 0x7c]
push 0x200001
push 0x402d90
push ecx
mov ecx, ebx
call edx
mov dword [esi + 0x58], eax
cmp dword [edi + 0xd5c], 0
mov eax, dword [edi + 0xd50]
mov dword [esp + 0x2c], eax
jne 0x4be4e8
mov eax, dword [edi + 0xd60]
xor ecx, ecx
mov edx, eax
mov esi, ecx
shld ecx, eax, 1
add eax, eax
add eax, edx
adc ecx, esi
shld ecx, eax, 2
add eax, eax
add eax, eax
test ecx, ecx
ja 0x4bf6ae
jb 0x4be483
cmp eax, 0xffffffff
ja 0x4bf6ae
or ecx, 0xffffffff
sub ecx, eax
cmp ecx, 4
jb 0x4bf6ae
add eax, 4
push eax
call fcn.00802fbf
add esp, 4
test eax, eax
je 0x4bf6ae
mov edx, dword [edi + 0xd58]
mov dword [eax], edx
mov dword [edi + 0xd58], eax
mov ecx, dword [edi + 0xd60]
lea edx, [ecx + ecx*2]
dec ecx
lea eax, [eax + edx*4 - 8]
js 0x4be4e4
jmp 0x4be4d0
mov edx, dword [edi + 0xd5c]
mov dword [eax], edx
mov dword [edi + 0xd5c], eax
sub eax, 0xc
dec ecx
jns 0x4be4d0
mov esi, dword [esp + 0x4c]
mov eax, dword [edi + 0xd5c]
mov ecx, dword [eax]
test eax, eax
je 0x4be4ff
mov dword [esp + 0x54], 0
mov dword [eax + 8], esi
mov dword [edi + 0xd5c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 4], ecx
mov dword [eax], 0
mov ecx, dword [edi + 0xd50]
inc dword [edi + 0xd54]
test ecx, ecx
je 0x4be526
mov dword [ecx], eax
jmp 0x4be52c
mov dword [edi + 0xd4c], eax
cmp dword [esp + 0x54], 0
mov dword [edi + 0xd50], eax
mov byte [esp + 0x300], 0xb
je 0x4be5bb
mov esi, dword [esp + 0x54]
lea ecx, [esi + 0x3c]
call fcn.004b0ca0
lea ecx, [esi + 0x24]
call fcn.004b0ca0
mov eax, dword [esi + 0x10]
sub eax, 0x10
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4be574
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 0xc]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be593
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 8]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be5b2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
call fcn.007c8563
add esp, 4
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x300], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be5e3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc dword [esp + 0x34]
call fcn.007cff5d
test eax, eax
jne 0x4bdb5b
push 0x80004005
call fcn.004a8210
lea ecx, [esi + 0x3c]
mov byte [esp + 0x300], 0xb
call fcn.004b0ca0
lea ecx, [esi + 0x24]
call fcn.004b0ca0
mov eax, dword [esi + 0x10]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be635
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 0xc]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be654
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 8]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be692
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4be692
call fcn.004a8580
mov edx, dword [ebx]
mov edx, dword [edx + 0x88]
push 0
push 0
push eax
mov ecx, ebx
call edx
mov ecx, esi
call fcn.004b1c10
push esi
call fcn.007c8563
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x304], 7
add esp, 4
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be6c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0
push 0x4039c4
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0xffffffffffffffff
mov byte [edi + 0xf0a], cl
lea ecx, [edi + 0xea4]
push 0
call fcn.007db8d3
mov dword [esp + 0x44], 0
lea ebx, [ebx]
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4be5f4
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x44]
push ecx
lea edx, [esp + 0x34]
push 0x405068
push edx
mov byte [esp + 0x30c], 0x16
call fcn.004aa600
mov ecx, dword [esp + 0x3c]
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
add esp, 0xc
push 0x402a88
push ecx
push 0x40399c
lea edx, [esp + 0x38]
push edx
mov ecx, ebx
call eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x30]
add ecx, 0xfffffff0
lea esi, [eax - 0x10]
mov byte [esp + 0x300], 0x17
mov dword [esp + 0x34], ecx
cmp esi, ecx
je 0x4be839
mov edx, ecx
cmp dword [edx + 0xc], 0
jl 0x4be82b
mov ecx, dword [esi]
cmp ecx, dword [edx]
jne 0x4be82b
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x4be7bc
cmp eax, dword [esi]
jne 0x4be7bc
mov dword [esp + 0x54], esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x4be7fd
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [esp + 0x54], eax
test eax, eax
je 0x4be675
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x54]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.0080217f
add esp, 0x10
mov eax, dword [esp + 0x34]
add eax, 0xc
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4be81e
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x54]
add ecx, 0x10
mov dword [esp + 0x30], ecx
jmp 0x4be839
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.004a8db0
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x16
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4be861
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], 0
je 0x4be8be
mov eax, dword [edi + 0xeac]
lea ecx, [edi + 0xea4]
lea edx, [esp + 0x30]
push edx
push eax
call fcn.007dbc82
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x300], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be8aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x44], eax
cmp eax, 0x63
jl 0x4be700
jmp 0x4be8e2
add eax, 0xfffffff0
mov byte [esp + 0x300], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4be8e2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [edi + 0xeac], 0
jne 0x4bea20
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4be909
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
fld qword [0x405060]
sub esp, 0x20
fstp qword [esp + 0x18]
lea ecx, [esp + 0x50]
fld1
mov byte [esp + 0x320], 0x18
fstp qword [esp + 0x10]
fld qword [0x405058]
fst qword [esp + 8]
fstp qword [esp]
push 0x81d7
push ecx
call fcn.004b1ce0
mov eax, dword [edi + 0xeac]
add esp, 0x28
lea edx, [esp + 0x30]
push edx
push eax
lea ecx, [edi + 0xea4]
call fcn.007dbc82
fld qword [0x405060]
sub esp, 0x20
fst qword [esp + 0x18]
lea eax, [esp + 0x50]
fstp qword [esp + 0x10]
fld qword [0x405058]
fst qword [esp + 8]
fstp qword [esp]
push 0x81d8
push eax
call fcn.004b1ce0
mov eax, dword [edi + 0xeac]
add esp, 0x28
lea ecx, [esp + 0x30]
push ecx
push eax
lea ecx, [edi + 0xea4]
call fcn.007dbc82
fld qword [0x405050]
sub esp, 0x20
fst qword [esp + 0x18]
lea edx, [esp + 0x50]
fstp qword [esp + 0x10]
fld qword [0x405058]
fst qword [esp + 8]
fstp qword [esp]
push 0x81d9
push edx
call fcn.004b1ce0
mov eax, dword [edi + 0xeac]
add esp, 0x28
lea ecx, [esp + 0x30]
push ecx
push eax
lea ecx, [edi + 0xea4]
call fcn.007dbc82
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x300], 7
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4bea20
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi + 0x19c]
mov dword [esp + 0x44], 0
test eax, eax
jle 0x4bed8a
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4be5f4
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x44]
push ecx
lea edx, [esp + 0x34]
push 0x403958
push edx
mov byte [esp + 0x30c], 0x19
call fcn.004aa600
mov ecx, dword [esp + 0x3c]
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
add esp, 0xc
push 0x402a88
push ecx
push 0x403974
lea edx, [esp + 0x38]
push edx
mov ecx, ebx
call eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x30]
add ecx, 0xfffffff0
lea esi, [eax - 0x10]
mov byte [esp + 0x300], 0x1a
mov dword [esp + 0x34], ecx
cmp esi, ecx
je 0x4beb6f
mov edx, ecx
cmp dword [edx + 0xc], 0
jl 0x4beb61
mov ecx, dword [esi]
cmp ecx, dword [edx]
jne 0x4beb61
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x4beaf2
cmp eax, dword [esi]
jne 0x4beaf2
mov dword [esp + 0x54], esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x4beb33
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [esp + 0x54], eax
test eax, eax
je 0x4be675
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x54]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.0080217f
add esp, 0x10
mov eax, dword [esp + 0x34]
add eax, 0xc
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4beb54
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x54]
add ecx, 0x10
mov dword [esp + 0x30], ecx
jmp 0x4beb6f
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.004a8db0
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x19
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4beb97
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], 0
je 0x4bf351
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x58]
push ecx
push 0x80
lea edx, [esp + 0x150]
push edx
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x5c]
push edx
push 0x403924
push esi
call fcn.00803d5e
add esp, 0x2c
mov dword [esp + 0x68], eax
cmp eax, 5
jl 0x4bf37e
movzx esi, word [esp + 0x3c]
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4be5f4
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edx, [eax + 0x10]
mov dword [esp + 0x104], edx
mov dword [esp + 0x108], 0
mov word [esp + 0xe0], si
mov eax, dword [edi + 0x194]
mov byte [esp + 0x300], 0x1b
test eax, eax
je 0x4bec78
lea ecx, [eax + 8]
test ecx, ecx
je 0x4bf383
movzx ecx, word [ecx + 4]
test cx, cx
je 0x4bec65
cmp cx, si
jne 0x4bec65
mov ecx, 1
jmp 0x4bec67
xor ecx, ecx
movzx ecx, cl
test ecx, ecx
jne 0x4bf34a
mov eax, dword [eax]
test eax, eax
jne 0x4bec45
xor esi, esi
lea eax, [edx - 0x10]
mov byte [esp + 0x300], 0x19
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bec9e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
je 0x4bed4d
mov cx, word [esp + 0x3c]
mov word [esi + 0xc], cx
mov dl, byte [esp + 0x38]
mov byte [esi + 8], dl
mov ax, word [esp + 0x48]
mov word [esi + 0xa], ax
mov eax, dword [esp + 0x68]
cmp eax, 6
jl 0x4beccf
mov ecx, dword [esp + 0x60]
mov dword [esi + 0x28], ecx
cmp eax, 7
jl 0x4becdb
mov edx, dword [esp + 0x6c]
mov dword [esi + 0x24], edx
cmp eax, 8
mov eax, dword [esp + 0x50]
jge 0x4bece7
mov eax, dword [esi + 0x28]
mov dword [esi + 0x2c], eax
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x44]
call fcn.004b6720
push 0x22
push 0x22
mov ecx, eax
mov byte [esp + 0x308], 0x1c
call fcn.004b3380
mov ecx, eax
call fcn.004b1b00
lea ecx, [esi + 0x30]
push eax
call fcn.004b1400
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x19
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bed46
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x4c]
mov dword [esi + 0x34], ecx
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x300], 7
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4bed75
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x44], eax
cmp eax, dword [edi + 0x19c]
jl 0x4bea36
xor esi, esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], esi
mov eax, dword [edi + 0x19c]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x88]
mov byte [esp + 0x308], 0x1d
call fcn.004b0430
mov eax, dword [edi + 0x194]
mov dword [esp + 0x34], esi
cmp eax, esi
je 0x4bee09
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x34]
mov edx, eax
mov eax, dword [eax]
cmp esi, dword [esp + 0x84]
jae 0x4bf388
mov esi, dword [edx + 8]
inc dword [esp + 0x34]
mov dword [ecx], esi
mov dx, word [edx + 0xc]
mov word [ecx + 4], dx
xor esi, esi
add ecx, 6
cmp eax, esi
jne 0x4bedda
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
push eax
push ecx
call dword [sym.imp.USER32.dll_CreateAcceleratorTableW]
push 0x405030
push 0x4038f4
mov dword [edi + 0x1ac], eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0x1b4]
push eax
mov byte [esp + 0x304], 0x1e
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x1d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bee81
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push esi
push 0x40390c
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
push 0x405010
setne cl
push 0x4038d0
mov byte [edi + 0x1b0], cl
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0x1e8]
push eax
mov byte [esp + 0x304], 0x1f
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x1d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4beefc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push esi
push 0x4038e4
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 1
mov byte [edi + 0x1e4], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4038b0
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0x3e8
mov byte [edi + 0x218], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x40389c
push 0x402d18
mov ecx, ebx
call eax
push 0x1388
mov dword [edi + 0xe44], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403888
push 0x402d18
mov ecx, ebx
call eax
push 0x4e20
mov dword [edi + 0xe48], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403874
push 0x402d18
mov ecx, ebx
call eax
push esi
mov dword [edi + 0xe4c], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403844
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push esi
mov byte [edi + 0xa3], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x40382c
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
mov byte [edi + 0xe52], cl
push esi
lea ecx, [edi + 0x170]
call fcn.0052b150
lea edx, [edi + 0xf10]
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov edx, dword [ebx]
push 1
push eax
mov eax, dword [edx + 0x7c]
push 0x4037ec
mov ecx, ebx
call eax
test eax, eax
setne cl
add dword [esp + 0x34], 4
mov byte [esi + edi + 0x818], cl
inc esi
cmp esi, 8
jl 0x4befe9
mov eax, dword [edi + 0xf30]
mov edx, dword [ebx]
push 1
push eax
mov eax, dword [edx + 0x7c]
push 0x4037ec
mov ecx, ebx
call eax
test eax, eax
setne cl
lea edx, [edi + 0xf34]
mov byte [edi + 0x820], cl
xor esi, esi
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov edx, dword [ebx]
push 0
push eax
mov eax, dword [edx + 0x7c]
push 0x4037ec
mov ecx, ebx
call eax
test eax, eax
setne cl
add dword [esp + 0x34], 4
mov byte [esi + edi + 0x821], cl
inc esi
cmp esi, 2
jl 0x4bf045
push 0x402a88
push 0x4037d8
mov byte [edi + 0x823], 0
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0x224]
push eax
mov byte [esp + 0x304], 0x20
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x1d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bf0d6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0xd1
push 0x4037c8
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [edi + 0x21c], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4037b8
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [edi + 0x220], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403794
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0x20
mov byte [edi + 0xa5], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403780
push 0x402d18
mov ecx, ebx
call eax
push eax
mov dword [edi + 0xa8], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0
push 0x40375c
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [edi + 0x321], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x40373c
push 0x402d18
mov ecx, ebx
call eax
neg eax
sbb eax, eax
neg eax
push 0x350b
mov dword [edi + 0x228], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403720
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [edi + 0x22c], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4036f0
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
mov byte [edi + 0x236], cl
mov edx, dword [ebx]
push 1
mov eax, dword [edx + 0x7c]
push 0x4036c0
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [edi + 0x234], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403690
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
push 0x404ff8
setne cl
push 0x403680
mov byte [edi + 0x235], cl
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0x238]
push eax
mov byte [esp + 0x304], 0x21
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x1d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bf278
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x404fcc
push 0x403668
push 0x402d18
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0x23c]
push eax
mov byte [esp + 0x304], 0x22
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x1d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bf2d4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402a88
push 0x40364c
push 0x402d18
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0x240]
push eax
mov byte [esp + 0x304], 0x23
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x1d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bf330
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4bf392
push 0x80004005
call fcn.004a8210
mov esi, eax
jmp 0x4bec7a
add eax, 0xfffffff0
mov byte [esp + 0x300], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bed8a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4bed8a
lea eax, [esi - 0x10]
jmp 0x4bf354
call fcn.007c8676
push 0x80070057
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x4c], esi
xor eax, eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
push 0x20019
push 0x404f48
push reloc.DSOUND.dll_DirectSoundCreate
lea ecx, [esp + 0xa0]
mov byte [esp + 0x30c], 0x25
call fcn.004afb40
test eax, eax
jne 0x4bf456
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
mov dword [esp + 0x3c], 0x104
jge 0x4bf40e
push 0x104
lea ecx, [esp + 0x50]
call fcn.004a8a90
mov esi, dword [esp + 0x4c]
lea ecx, [esp + 0x3c]
push ecx
push esi
push 0x404f2c
lea ecx, [esp + 0xa0]
call fcn.004afbc0
test eax, eax
jne 0x4bf449
mov eax, dword [esp + 0x3c]
test eax, eax
js 0x4bf388
cmp eax, dword [esi - 8]
jg 0x4bf388
xor edx, edx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], dx
jmp 0x4bf456
lea ecx, [esp + 0x4c]
call fcn.004a8a20
mov esi, dword [esp + 0x4c]
mov eax, dword [ebx]
mov edx, dword [eax + 0x84]
push esi
push 0x403630
push 0x402d18
lea ecx, [esp + 0x38]
push ecx
mov ecx, ebx
call edx
lea ecx, [edi + 0xec0]
push eax
mov byte [esp + 0x304], 0x26
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x25
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bf4ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x404f20
push 0x403618
push 0x402d18
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0xec4]
push eax
mov byte [esp + 0x304], 0x27
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x25
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bf50a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 4
push 0x403604
push 0x402d18
mov ecx, ebx
call eax
push 4
mov dword [edi + 0xec8], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4035f0
push 0x402d18
mov ecx, ebx
call eax
push 0x400
mov dword [edi + 0xecc], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x4035d8
push 0x402d18
mov ecx, ebx
call eax
push 0x404ee8
push 0x4035cc
mov dword [edi + 0xed0], eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0xe40]
push eax
mov byte [esp + 0x304], 0x28
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x25
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bf5ba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
xor esi, esi
push esi
push 0x403810
push 0x402d18
mov ecx, ebx
call eax
lea ecx, [edi + 0xed4]
mov dword [edi + 0xf04], eax
call fcn.004afef0
fld dword [0x404c6c]
fstp dword [esp + 0xe8]
lea ecx, [esp + 0xdc]
fld dword [0x404c68]
mov dword [esp + 0xdc], esi
fstp dword [esp + 0xec]
mov dword [esp + 0xe0], esi
fld dword [0x404c64]
mov dword [esp + 0xe4], 0x11
fstp dword [esp + 0xf0]
mov dword [esp + 0xf4], 0xffffffff
mov dword [esp + 0xf8], esi
mov dword [esp + 0xfc], esi
mov dword [esp + 0x100], 0xa
mov dword [esp + 0x104], esi
mov dword [esp + 0x108], esi
call fcn.005ea230
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x40]
push eax
push 0x404eb4
lea ecx, [esp + 0xec]
mov byte [esp + 0x310], 0x29
call fcn.005a8560
cmp eax, esi
jne 0x4bf6d3
cmp dword [esp + 0xdc], esi
jne 0x4bf6b8
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bf6b8
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404eb4
lea ecx, [esp + 0xe8]
call fcn.0051a210
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
mov dword [eax + 4], 0x2c9
push edx
lea eax, [esp + 0x40]
push eax
push 0x404e88
lea ecx, [esp + 0xec]
call fcn.005a8560
cmp eax, esi
jne 0x4bf746
cmp dword [esp + 0xdc], esi
jne 0x4bf72b
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bf72b
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404e88
lea ecx, [esp + 0xe8]
call fcn.0051a210
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
mov dword [eax + 4], 0x2cd
push edx
lea eax, [esp + 0x40]
push eax
push 0x404e68
lea ecx, [esp + 0xec]
call fcn.005a8560
cmp eax, esi
jne 0x4bf7b9
cmp dword [esp + 0xdc], esi
jne 0x4bf79e
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bf79e
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404e68
lea ecx, [esp + 0xe8]
call fcn.0051a210
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
mov dword [eax + 4], 0x2ce
push edx
lea eax, [esp + 0x40]
push eax
push 0x404e44
lea ecx, [esp + 0xec]
call fcn.005a8560
cmp eax, esi
jne 0x4bf82c
cmp dword [esp + 0xdc], esi
jne 0x4bf811
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bf811
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404e44
lea ecx, [esp + 0xe8]
call fcn.0051a210
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
mov dword [eax + 4], 0x2cb
push edx
lea eax, [esp + 0x40]
push eax
push 0x404e34
lea ecx, [esp + 0xec]
call fcn.005a8560
cmp eax, esi
jne 0x4bf89f
cmp dword [esp + 0xdc], esi
jne 0x4bf884
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bf884
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404e34
lea ecx, [esp + 0xe8]
call fcn.0051a210
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
mov dword [eax + 4], 0x2be
push edx
lea eax, [esp + 0x40]
push eax
push 0x404e0c
lea ecx, [esp + 0xec]
call fcn.005a8560
cmp eax, esi
jne 0x4bf912
cmp dword [esp + 0xdc], esi
jne 0x4bf8f7
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bf8f7
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404e0c
lea ecx, [esp + 0xe8]
call fcn.0051a210
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
mov dword [eax + 4], 0x2bf
push edx
lea eax, [esp + 0x40]
push eax
push 0x404df0
lea ecx, [esp + 0xec]
call fcn.005a8560
cmp eax, esi
jne 0x4bf985
cmp dword [esp + 0xdc], esi
jne 0x4bf96a
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bf96a
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404df0
lea ecx, [esp + 0xe8]
call fcn.0051a210
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
mov dword [eax + 4], 0x4e20
push edx
lea eax, [esp + 0x40]
push eax
push 0x404de0
lea ecx, [esp + 0xec]
call fcn.005a8560
cmp eax, esi
jne 0x4bf9f8
cmp dword [esp + 0xdc], esi
jne 0x4bf9dd
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bf9dd
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404de0
lea ecx, [esp + 0xe8]
call fcn.0051a210
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
mov dword [eax + 4], 0x2c0
push edx
lea eax, [esp + 0x40]
push eax
push 0x404dcc
lea ecx, [esp + 0xec]
call fcn.005a8560
cmp eax, esi
jne 0x4bfa6b
cmp dword [esp + 0xdc], esi
jne 0x4bfa50
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bfa50
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404dcc
lea ecx, [esp + 0xe8]
call fcn.0051a210
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
mov dword [eax + 4], 0x2c1
push edx
lea eax, [esp + 0x40]
push eax
push 0x404dbc
lea ecx, [esp + 0xec]
call fcn.005a8560
cmp eax, esi
jne 0x4bfade
cmp dword [esp + 0xdc], esi
jne 0x4bfac3
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bfac3
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404dbc
lea ecx, [esp + 0xe8]
call fcn.0051a210
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
mov dword [eax + 4], 0x2c2
push edx
lea eax, [esp + 0x40]
push eax
push 0x404da8
lea ecx, [esp + 0xec]
call fcn.005a8560
cmp eax, esi
jne 0x4bfb51
cmp dword [esp + 0xdc], esi
jne 0x4bfb36
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bfb36
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404da8
lea ecx, [esp + 0xe8]
call fcn.0051a210
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
mov dword [eax + 4], 0x2c3
push edx
lea eax, [esp + 0x40]
push eax
push 0x404d90
lea ecx, [esp + 0xec]
call fcn.005a8560
cmp eax, esi
jne 0x4bfbc4
cmp dword [esp + 0xdc], esi
jne 0x4bfba9
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bfba9
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404d90
lea ecx, [esp + 0xe8]
call fcn.0051a210
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
mov dword [eax + 4], 0x2ca
push edx
lea eax, [esp + 0x40]
push eax
push 0x404d80
lea ecx, [esp + 0xec]
call fcn.005a8560
cmp eax, esi
jne 0x4bfc37
cmp dword [esp + 0xdc], esi
jne 0x4bfc1c
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bfc1c
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404d80
lea ecx, [esp + 0xe8]
call fcn.0051a210
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x30]
mov dword [eax + 4], 0x2c8
push edx
lea eax, [esp + 0x40]
push eax
push 0x404d70
lea ecx, [esp + 0xec]
call fcn.005a8560
cmp eax, esi
jne 0x4bfcaa
cmp dword [esp + 0xdc], esi
jne 0x4bfc8f
mov ecx, dword [esp + 0xe4]
push 1
push ecx
lea ecx, [esp + 0xe4]
call fcn.00635dd0
test al, al
jne 0x4bfc8f
push 0x8007000e
call fcn.004a8210
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x404d70
lea ecx, [esp + 0xe8]
call fcn.0051a210
push 0x404d50
lea ecx, [esp + 0xe0]
mov dword [eax + 4], 0x2c4
call fcn.004bc980
push 0x404d2c
lea ecx, [esp + 0xe0]
mov dword [eax], 0x4e21
call fcn.004bc980
push 0x404d1c
lea ecx, [esp + 0xe0]
mov dword [eax], 0x4e24
call fcn.004bc980
push 0x404d08
lea ecx, [esp + 0xe0]
mov dword [eax], 0x2c5
call fcn.004bc980
push 0x404cfc
lea ecx, [esp + 0xe0]
mov dword [eax], 0x2c6
call fcn.004bc980
push 0x404cec
lea ecx, [esp + 0xe0]
mov dword [eax], 0x2c7
call fcn.004bc980
push 0x404cbc
lea ecx, [esp + 0xe0]
mov dword [eax], 0x4e23
call fcn.004bc980
mov dword [eax], 0x2cc
mov dword [esp + 0x34], esi
call fcn.007cff5d
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
je 0x4c0019
jmp 0x4bfd72
xor esi, esi
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x34]
push ecx
lea edx, [esp + 0x34]
push 0x403a48
push edx
mov byte [esp + 0x30c], 0x2a
call fcn.004aa600
mov ecx, dword [esp + 0x3c]
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
add esp, 0xc
push esi
push ecx
push 0x4035bc
lea edx, [esp + 0x38]
push edx
mov ecx, ebx
call eax
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x304], 0x2b
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x2a
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bfdf7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], 0xa
push eax
push 0x7c
lea ecx, [esp + 0xac]
push ecx
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x314], 0x2c
call fcn.004b6310
add esp, 0x14
mov esi, dword [esp + 0x38]
cmp dword [esi - 0xc], 0
je 0x4c0023
cmp dword [esp + 0xac], 3
jb 0x4bffb0
lea ecx, [esp + 0x70]
call fcn.004b09b0
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0xa8]
mov byte [esp + 0x304], 0x2e
call fcn.004b3400
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x304], 0x2f
call fcn.004aa540
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x2e
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4bfec4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0xa8]
call fcn.004b3400
push eax
lea ecx, [esp + 0x78]
mov byte [esp + 0x304], 0x30
call fcn.004aa540
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x2e
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4bff0f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0xa8]
call fcn.004b3400
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x304], 0x31
call fcn.004aa540
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x2e
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4bff5a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x402308
push 0x402300
lea ecx, [esp + 0x80]
call fcn.004aa070
push 0x402314
push 0x40230c
lea ecx, [esp + 0x80]
call fcn.004aa070
lea ecx, [esp + 0x70]
push ecx
lea ecx, [edi + 0xed4]
call fcn.004b6280
mov edx, dword [esp + 0x70]
push edx
lea ecx, [esp + 0xe0]
call fcn.00639220
lea ecx, [esp + 0x70]
call fcn.004b0a20
lea eax, [esi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x300], 0x2c
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bffd4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xa4]
call fcn.004afe70
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x300], 0x29
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c0008
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc dword [esp + 0x34]
call fcn.007cff5d
test eax, eax
jne 0x4bfd70
push 0x80004005
call fcn.004a8210
lea eax, [esi - 0x10]
mov byte [esp + 0x300], 0x2c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c0047
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xa4]
call fcn.004afe70
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x29
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c007b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
cmp dword [esp + 0xe0], eax
je 0x4c00b1
mov edx, dword [esp + 0xe4]
test edx, edx
je 0x4c00af
mov ecx, dword [esp + 0xdc]
jmp 0x4c00a0
cmp dword [ecx + eax*4], 0
jne 0x4c0153
inc eax
cmp eax, edx
jb 0x4c00a0
xor eax, eax
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4c0200
lea ecx, [ecx]
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0xe0]
call fcn.004b04d0
mov esi, eax
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4be5f4
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
mov edx, dword [esi + 4]
push 0x404cac
lea ecx, [esp + 0x38]
push ecx
push edx
mov byte [esp + 0x30c], 0x32
call fcn.00536a40
add esp, 0xc
test al, al
je 0x4c01cd
lea ecx, [esp + 0x70]
call fcn.004b09b0
push esi
lea ecx, [esp + 0x74]
mov byte [esp + 0x304], 0x33
call fcn.004aa540
mov esi, dword [esi + 4]
sub esi, 0x4e23
push 6
lea ecx, [esp + 0x78]
je 0x4c0162
dec esi
je 0x4c015b
push 0x404c9c
jmp 0x4c0167
mov eax, dword [ecx + eax*4]
jmp 0x4c00b1
push 0x404c8c
jmp 0x4c0167
push 0x404c7c
call fcn.004a8db0
mov eax, dword [esp + 0x34]
push eax
lea ecx, [esp + 0x30]
call fcn.004b2080
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x304], 0x34
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x33
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c01b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x70]
push ecx
lea ecx, [edi + 0xed4]
call fcn.004b6280
lea ecx, [esp + 0x70]
call fcn.004b0a20
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x29
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4c01f5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x3c], 0
jne 0x4c00c0
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0
push 0x403dbc
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [edi + 0x320], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403d9c
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [edi + 0xe64], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403d80
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [edi + 0xe68], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403d6c
push 0x402d18
mov ecx, ebx
call eax
push 0
mov dword [edi + 0xe6c], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403d4c
push 0x402d18
mov ecx, ebx
call eax
push 0x402a88
push 0x403d30
mov dword [edi + 0xe70], eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402d18
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0xef0]
push eax
mov byte [esp + 0x304], 0x35
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x29
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c02e8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402a88
push 0x403d04
push 0x402d18
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0xef4]
push eax
mov byte [esp + 0x304], 0x36
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x29
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c0344
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0
push 0x403ce8
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [edi + 0xeec], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403cb8
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [edi + 0xeed], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403ca4
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [edi + 0xa2], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403c84
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [edi + 0xf0b], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403c4c
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 1
mov byte [edi + 0xe50], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403c30
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [edi + 0xe51], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403c18
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [edi + 0xe55], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403bf8
push 0x402d18
mov ecx, ebx
call eax
push 0x404c70
mov dword [edi + 0x7c8], eax
mov edx, dword [ebx]
push 0x403be0
mov edx, dword [edx + 0x84]
push 0x403bd0
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0x7cc]
push eax
mov byte [esp + 0x304], 0x37
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x29
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c049b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x404c70
push 0x403bb8
push 0x403bd0
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0x7d0]
push eax
mov byte [esp + 0x304], 0x38
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x29
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c04f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 1
push 0x403ba8
push 0x403bd0
mov ecx, ebx
call eax
push 0x402a88
push 0x403b80
mov dword [edi + 0x7d4], eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x403b5c
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0x7d8]
push eax
mov byte [esp + 0x304], 0x39
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x29
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c056e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402a88
push 0x403b48
push 0x403b5c
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0x7dc]
push eax
mov byte [esp + 0x304], 0x3a
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x29
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c05ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
push 0x402a88
push 0x403b30
push 0x403b5c
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call edx
lea ecx, [edi + 0x7e0]
push eax
mov byte [esp + 0x304], 0x3b
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x29
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c0626
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x73b90
push 0x403b0c
push 0x403b5c
mov ecx, ebx
call eax
push 0xd1790
mov dword [edi + 0x7e4], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403aec
push 0x403b5c
mov ecx, ebx
call eax
push 8
mov dword [edi + 0x7e8], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403ad0
push 0x403b5c
mov ecx, ebx
call eax
push 0
mov dword [edi + 0x7ec], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403ab4
push 0x403b5c
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0xa6
mov byte [edi + 0x7f0], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403aa0
push 0x403b5c
mov ecx, ebx
call eax
push 0
mov dword [edi + 0x7f4], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403a68
push 0x403b5c
mov ecx, ebx
call eax
test eax, eax
setne cl
push 1
mov byte [edi + 0x7f8], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403a50
push 0x403b5c
mov ecx, ebx
call eax
mov dword [edi + 0x7fc], eax
mov dword [esp + 0x34], 0
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4c0894
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0x3c
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4be5f4
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x13c]
mov byte [esp + 0x300], 0x3d
call fcn.004c4b60
mov ecx, dword [esp + 0x34]
push ecx
lea edx, [esp + 0x44]
push 0x403a48
push edx
mov byte [esp + 0x30c], 0x3e
call fcn.004aa600
mov ecx, dword [esp + 0x4c]
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
add esp, 0xc
push 0x402a88
push ecx
push 0x403b5c
lea edx, [esp + 0x38]
push edx
mov ecx, ebx
call eax
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x304], 0x3f
call fcn.004aa540
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x3e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c07db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x3c]
cmp dword [esi - 0xc], 0
je 0x4c089e
push ecx
mov dword [esp + 0x3c], esp
add esi, 0xfffffff0
mov dword [esp + 0x3c], esp
push esi
call fcn.004a9b50
mov ecx, dword [esp + 0x40]
add eax, 0x10
mov dword [ecx], eax
add esp, 4
lea ecx, [esp + 0x140]
call fcn.004c4f70
lea edx, [esp + 0x13c]
push edx
lea ecx, [edi + 0x800]
call fcn.004b7cc0
lea ecx, [esp + 0x13c]
mov byte [esp + 0x300], 0x3d
call fcn.004c4a20
mov byte [esp + 0x300], 0x3c
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4c085b
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x29
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c0883
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc dword [esp + 0x34]
call fcn.007cff5d
test eax, eax
jne 0x4c0712
push 0x80004005
call fcn.004a8210
lea ecx, [esp + 0x13c]
mov byte [esp + 0x300], 0x3d
call fcn.004c4a20
lea eax, [esi - 0x10]
mov byte [esp + 0x300], 0x3c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c08d6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x29
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c08fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0
push 0x403a00
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
mov byte [edi + 0x145], cl
mov edx, dword [edi + 0xf4]
mov eax, dword [edx + 0xc]
lea ecx, [edi + 0xf4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0
push 0x403a24
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
mov byte [edi + 0x144], cl
mov edx, dword [edi + 0x11c]
mov eax, dword [edx + 0xc]
lea ecx, [edi + 0x11c]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0
push 0x4039e0
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0
mov byte [edi + 0xf09], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403584
push 0x402d18
mov ecx, ebx
call eax
test eax, eax
setne cl
push 0xffffffffffffffff
mov byte [edi + 0xf08], cl
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403560
push 0x402d18
mov ecx, ebx
call eax
push 7
mov dword [edi + 0xe74], 0
mov edx, dword [ebx]
mov eax, dword [edx + 0x7c]
push 0x403544
push 0x402d18
mov ecx, ebx
call eax
mov dword [edi + 0xe78], eax
cmp eax, 1
jge 0x4c09e9
mov dword [edi + 0xe78], 1
cmp byte [edi + 0x321], 0
je 0x4c09f9
or dword [edi + 0xc], 0x100
lea ecx, [esp + 0xdc]
mov byte [edi + 8], 1
call fcn.0050c700
mov eax, dword [esp + 0x94]
test eax, eax
je 0x4c0a1b
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
mov byte [esp + 0x300], 0x1d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c0a43
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x80]
test eax, eax
je 0x4c0a57
push eax
call fcn.00803053
add esp, 4
mov eax, dword [esp + 0x90]
add eax, 0xfffffff0
mov dword [esp + 0x300], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c0a85
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x2f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2b0]
xor ecx, esp
call fcn.0080262b
mov esp, ebp
pop ebp
ret