Function at 0x40ff30
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x471116
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x670
mov eax, dword [0x492f50]
push ebx
mov ebx, ecx
mov dword [esp + 0x66c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], 0
mov ecx, dword [ebx + 0xec8]
mov dword [ebx + 0xec0], eax
or ecx, dword [ebx + 0xecc]
push esi
push edi
jne 0x40ff93
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
mov dword [ebx + 0xec8], edx
mov dword [ebx + 0xecc], eax
push 0
lea ecx, [ebx + 0xff4]
push 0x476ba8
call fcn.00403ad0
mov edi, dword [ebp + 0x10]
test edi, edi
lea edx, [ebx + 0xed4]
mov dword [esp + 0x34], edx
jne 0x40ffba
xor eax, eax
jmp 0x40ffc9
mov eax, edi
lea esi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ffc0
sub eax, esi
push eax
push edi
mov ecx, edx
call fcn.00403ad0
lea esi, [ebx + 0xed8]
push esi
mov ecx, ebx
mov dword [esp + 0x34], esi
call fcn.0040bec0
mov eax, dword [ebx + 0xff0]
test eax, eax
je 0x4100f0
call fcn.0045c368
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x28], eax
mov dword [esp + 0x684], 0
call fcn.0045c368
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0xfe8]
dec eax
mov byte [esp + 0x684], 1
je 0x410059
dec eax
je 0x41004d
dec eax
je 0x410041
push 0x476968
jmp 0x41005e
push 0x4774c4
lea ecx, [esp + 0x1c]
push ecx
jmp 0x410063
push 0x4774bc
lea edx, [esp + 0x1c]
push edx
jmp 0x410063
push 0x4774b4
lea eax, [esp + 0x1c]
push eax
call fcn.00403c50
mov ecx, dword [ebx + 0xfec]
mov edi, dword [esp + 0x20]
mov edx, dword [ebx + 0xfe4]
mov eax, dword [ebx + 0xfe0]
add esp, 8
push ecx
push edi
push edx
push eax
lea ecx, [esp + 0x38]
push 0x47747c
push ecx
call fcn.00403c50
mov edx, dword [esp + 0x40]
add esp, 0x18
push edx
push 0
mov ecx, esi
call fcn.0040b6a0
lea eax, [edi - 0x10]
mov byte [esp + 0x684], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4100c7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov dword [esp + 0x684], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4100f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
xor edi, edi
push edi
lea esi, [ebx + 0x18]
push 0x476ba8
mov ecx, esi
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x10], edi
call fcn.00403ad0
push 4
lea ecx, [ebx + 0x14]
push 0x47716c
call fcn.00403ad0
lea ecx, [esp + 0x258]
call fcn.004063a0
push 0x476ba8
lea ecx, [esp + 0x570]
mov dword [esp + 0x688], 2
mov dword [esp + 0x360], edi
mov dword [esp + 0x364], edi
call fcn.0043a320
push 0x47716c
lea ecx, [esp + 0x368]
call fcn.0043a320
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x25c]
call fcn.0043a320
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
push eax
lea ecx, [esp + 0x46c]
call fcn.0043a320
mov eax, dword [ebx + 0x74]
mov edx, eax
and edx, 0x400
mov dword [esp + 0x2c], edx
mov ecx, eax
mov edx, eax
and eax, 0x100
and ecx, 0x80
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
and edx, 0x40
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x20], edx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x268]
push ecx
lea ecx, [ebx + 0x9c]
call fcn.0043f520
test eax, eax
je 0x410284
mov edx, dword [esp + 0x35c]
mov eax, dword [esp + 0x360]
lea ecx, [esp + 0x364]
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x10], eax
call fcn.0043a3d0
cmp eax, edi
jne 0x410208
xor ecx, ecx
jmp 0x410219
mov ecx, eax
lea edi, [ecx + 1]
lea ecx, [ecx]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x410210
sub ecx, edi
push ecx
push eax
lea ecx, [ebx + 0x14]
call fcn.00403ad0
lea ecx, [esp + 0x258]
call fcn.0043a3d0
mov edi, eax
test edi, edi
jne 0x410239
xor ecx, ecx
jmp 0x410249
mov ecx, edi
lea edx, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410240
sub ecx, edx
push ecx
mov ecx, dword [esp + 0x38]
push edi
call fcn.00403ad0
lea ecx, [esp + 0x56c]
call fcn.0043a3d0
test eax, eax
jne 0x410268
xor ecx, ecx
jmp 0x410279
mov ecx, eax
lea edi, [ecx + 1]
lea ecx, [ecx]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x410270
sub ecx, edi
push ecx
push eax
mov ecx, esi
call fcn.00403ad0
xor edi, edi
mov al, byte [ebx + 0x74]
test al, al
jns 0x4102b3
cmp dword [ebx + 0x10], edi
je 0x4102b3
mov ecx, dword [esp + 0x34]
push edi
push 0x476ba8
call fcn.00403ad0
mov ecx, dword [esp + 0x30]
push edi
push 0x476ba8
call fcn.00403ad0
jmp 0x41172e
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
mov ecx, dword [eax - 0xc]
cmp ecx, edi
jl 0x4102df
push 0x477224
push eax
call fcn.0044ae11
add esp, 8
cmp eax, edi
je 0x4102df
mov edx, dword [esp + 0x30]
sub eax, dword [edx]
mov edi, eax
cmp edi, 0xffffffff
jne 0x410317
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jl 0x4103f6
push 0x477218
push eax
call fcn.0044ae11
add esp, 8
test eax, eax
je 0x4103f6
mov ecx, dword [esp + 0x30]
sub eax, dword [ecx]
mov edi, eax
cmp edi, 0xffffffff
je 0x4103f6
test edi, edi
mov esi, dword [esp + 0x30]
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
jl 0x410343
cmp edi, ecx
jg 0x410343
add eax, edi
push 0x477214
push eax
call fcn.0044ae11
add esp, 8
test eax, eax
je 0x410343
sub eax, dword [esi]
cmp eax, 0xffffffff
jne 0x410351
mov edx, dword [esi]
mov eax, dword [edx - 0xc]
cmp eax, 0xffffffff
je 0x4103e4
sub eax, edi
push eax
push edi
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00407390
lea edi, [ebx + 0x90]
push eax
mov ecx, edi
mov byte [esp + 0x688], 3
call fcn.00403d30
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x684], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41039d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0xd
mov ecx, edi
call fcn.00407750
push 0xa
mov ecx, edi
call fcn.00407750
push 0x476ba8
push 0x47720c
mov ecx, edi
call fcn.00407550
push 0x476ba8
push 0x477204
mov ecx, edi
call fcn.00407550
push 0x476ba8
push 0x4771f8
mov ecx, edi
call fcn.00407550
jmp 0x41040c
lea ecx, [ebx + 0x90]
push 0x476968
call fcn.00404270
jmp 0x41040c
push 4
lea ecx, [ebx + 0x90]
push 0x476968
call fcn.00403ad0
mov esi, dword [esp + 0x30]
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jl 0x410472
push 0x477474
push eax
call fcn.0044ae11
add esp, 8
test eax, eax
je 0x410472
sub eax, dword [esi]
cmp eax, 0xffffffff
je 0x410472
push eax
lea eax, [esp + 0x28]
push eax
mov ecx, esi
call fcn.0040b760
mov eax, dword [eax]
lea ecx, [ebx + 0xe58]
push ecx
push 0x47746c
push eax
call fcn.0044ac24
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41047c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
jmp 0x41047c
mov dword [ebx + 0xe58], 0
lea ecx, [ebx + 0xe6c]
call fcn.00403010
xor eax, eax
mov byte [esp + 0x58], 0
mov ecx, 0x3f
lea edi, [esp + 0x59]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esi]
push 0x477460
push eax
call fcn.0044bb20
add esp, 8
test eax, eax
je 0x4105d9
lea ecx, [esp + 0x58]
push ecx
push 0x477450
push eax
call fcn.0044ac24
mov byte [esp + 0x164], 0
xor eax, eax
mov ecx, 0x3f
lea edi, [esp + 0x165]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor esi, esi
add esp, 0xc
mov dword [esp + 0x28], esi
stosb byte es:[edi], al
mov dword [esp + 0x18], esi
call fcn.0045c368
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x58]
mov byte [esp + 0x684], 4
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410510
sub eax, edx
mov dword [esp + 0x20], eax
je 0x4105b1
mov edi, dword [esp + 0x28]
mov al, byte [esp + esi + 0x58]
cmp al, 0x3f
jne 0x410534
mov edi, 1
cmp al, 0x3b
jne 0x410588
test edi, edi
jne 0x41056a
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x30]
push 0x477448
push ecx
call fcn.00403c50
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx - 0xc]
add esp, 0xc
push eax
push ecx
lea ecx, [ebx + 0xe6c]
call fcn.004059c0
xor edx, edx
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x158]
rep stosd dword es:[edi], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], edx
mov edi, edx
jmp 0x410598
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x158], al
inc ecx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x58]
inc esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4105a0
sub eax, edx
cmp esi, eax
jb 0x410527
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x684], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4105e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
jmp 0x4105e4
lea ecx, [ebx + 0xe6c]
call fcn.00403010
lea esi, [ebx + 0xe5c]
mov ecx, esi
call fcn.00403010
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
push 0x47743c
push eax
call fcn.0044bb20
add esp, 8
test eax, eax
je 0x410739
lea ecx, [esp + 0x58]
push ecx
push 0x47742c
push eax
call fcn.0044ac24
mov byte [esp + 0x164], 0
xor eax, eax
mov ecx, 0x3f
lea edi, [esp + 0x165]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor esi, esi
add esp, 0xc
mov dword [esp + 0x2c], esi
stosb byte es:[edi], al
mov dword [esp + 0x28], esi
call fcn.0045c368
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
lea eax, [esp + 0x58]
mov byte [esp + 0x684], 5
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410667
sub eax, edx
mov dword [esp + 0x20], eax
je 0x410711
mov edi, dword [esp + 0x2c]
mov edi, edi
mov al, byte [esp + esi + 0x58]
cmp al, 0x3f
jne 0x41068d
mov edi, 1
cmp al, 0x3b
jne 0x4106e1
test edi, edi
jne 0x4106c3
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x1c]
push 0x477448
push ecx
call fcn.00403c50
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx - 0xc]
add esp, 0xc
push eax
push ecx
lea ecx, [ebx + 0xe5c]
call fcn.004059c0
xor edx, edx
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x158]
rep stosd dword es:[edi], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edx
mov edi, edx
jmp 0x4106f1
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x158], al
inc ecx
mov dword [esp + 0x28], ecx
lea eax, [esp + 0x58]
inc esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410700
sub eax, edx
cmp esi, eax
jb 0x410680
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x684], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x410740
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
jmp 0x410740
mov ecx, esi
call fcn.00403010
mov edi, dword [esp + 0x30]
mov eax, dword [edi]
mov ecx, dword [eax - 0xc]
xor esi, esi
cmp ecx, esi
jl 0x410774
push 0x477424
push eax
call fcn.0044ae11
add esp, 8
cmp eax, esi
je 0x410774
sub eax, dword [edi]
cmp eax, 0xffffffff
je 0x410774
mov dword [ebx + 0xe60], 1
jmp 0x41077a
mov dword [ebx + 0xe60], esi
mov eax, dword [edi]
push 0x477418
push eax
call fcn.0044bb20
add esp, 8
cmp eax, esi
je 0x4107b4
lea ecx, [esp + 0x58]
push ecx
push 0x477408
push eax
call fcn.0044ac24
lea edx, [esp + 0x64]
push edx
lea eax, [ebx + 0x2c]
push 0x477174
push eax
call fcn.00403c50
add esp, 0x18
mov eax, dword [edi]
push 0x4773fc
push eax
call fcn.0044bb20
add esp, 8
cmp eax, esi
je 0x4107ee
lea ecx, [esp + 0x58]
push ecx
push 0x4773ec
push eax
call fcn.0044ac24
lea edx, [esp + 0x64]
push edx
lea eax, [ebx + 0x34]
push 0x477174
push eax
call fcn.00403c50
add esp, 0x18
mov eax, dword [edi]
push 0x477424
push eax
mov dword [ebx + 0xe68], esi
call fcn.0044bb20
add esp, 8
cmp eax, esi
je 0x41086c
lea ecx, [esp + 0x58]
push ecx
push 0x4773dc
push eax
call fcn.0044ac24
lea edx, [esp + 0x64]
push edx
lea edi, [ebx + 0xe64]
push 0x477174
push edi
call fcn.00403c50
add esp, 0x18
push 0x476ba8
push 0x4773d8
mov ecx, edi
call fcn.00407550
mov eax, dword [edi]
cmp dword [eax - 0xc], esi
jl 0x41086c
push 0x4773d0
push eax
call fcn.0044ae11
add esp, 8
cmp eax, esi
je 0x41086c
sub eax, dword [edi]
cmp eax, 0xffffffff
je 0x41086c
mov dword [ebx + 0xe68], 1
mov al, byte [ebx + 0x74]
test al, al
jns 0x410878
cmp dword [ebx + 0x10], esi
jne 0x41087e
inc dword [ebx + 0x438]
mov edi, dword [esp + 0x34]
push 2
lea eax, [esp + 0x28]
push eax
mov ecx, edi
call fcn.00403830
mov eax, dword [eax]
push 0x4771f4
push eax
call fcn.0044a6f3
add esp, 8
neg eax
sbb al, al
inc al
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4108c8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [esp + 0x1f]
test al, al
push 2
je 0x4108ef
lea edi, [ebx + 0xff4]
push 0x4771f4
mov ecx, edi
mov dword [ebx + 0xfdc], esi
call fcn.00403ad0
jmp 0x410fb0
lea eax, [esp + 0x28]
push eax
mov ecx, edi
call fcn.00403830
mov eax, dword [eax]
push 0x4771f0
push eax
call fcn.0044a6f3
add esp, 8
neg eax
sbb al, al
inc al
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410933
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [esp + 0x1f]
test al, al
push 2
je 0x41095e
lea edi, [ebx + 0xff4]
push 0x4771f0
mov ecx, edi
mov dword [ebx + 0xfdc], 1
call fcn.00403ad0
jmp 0x410fb0
lea eax, [esp + 0x28]
push eax
mov ecx, edi
call fcn.00403830
mov eax, dword [eax]
push 0x4771ec
push eax
call fcn.0044a6f3
add esp, 8
neg eax
sbb al, al
inc al
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4109a2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [esp + 0x1f]
test al, al
push 2
je 0x4109cd
lea edi, [ebx + 0xff4]
push 0x4771ec
mov ecx, edi
mov dword [ebx + 0xfdc], 2
call fcn.00403ad0
jmp 0x410fb0
lea eax, [esp + 0x28]
push eax
mov ecx, edi
call fcn.00403830
mov eax, dword [eax]
push 0x4771e8
push eax
call fcn.0044a6f3
add esp, 8
neg eax
sbb al, al
inc al
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410a11
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [esp + 0x1f]
test al, al
push 2
je 0x410a3c
lea edi, [ebx + 0xff4]
push 0x4771e8
mov ecx, edi
mov dword [ebx + 0xfdc], 3
call fcn.00403ad0
jmp 0x410fb0
lea eax, [esp + 0x28]
push eax
mov ecx, edi
call fcn.00403830
mov eax, dword [eax]
push 0x4771e4
push eax
call fcn.0044a6f3
add esp, 8
neg eax
sbb al, al
inc al
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410a80
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [esp + 0x1f]
test al, al
je 0x410f98
push 2
push 2
lea eax, [esp + 0x28]
push eax
mov ecx, edi
call fcn.00407390
mov eax, dword [eax]
push 0x4771e0
push eax
mov byte [esp + 0x68c], 6
mov dword [esp + 0x20], 1
call fcn.0044a6f3
add esp, 8
test eax, eax
mov esi, 7
je 0x410cea
push 2
push 2
lea ecx, [esp + 0x40]
push ecx
mov ecx, edi
call fcn.00407390
mov eax, dword [eax]
push 0x4771dc
push eax
mov dword [esp + 0x68c], esi
mov dword [esp + 0x20], 3
call fcn.0044a6f3
add esp, 8
test eax, eax
je 0x410cea
push 2
push 2
lea edx, [esp + 0x48]
push edx
mov ecx, edi
call fcn.00407390
mov eax, dword [eax]
push 0x4771d8
push eax
mov dword [esp + 0x68c], 8
mov dword [esp + 0x20], esi
call fcn.0044a6f3
add esp, 8
test eax, eax
je 0x410cea
push 2
push 2
lea eax, [esp + 0x44]
push eax
mov ecx, edi
call fcn.00407390
push 0x4771d4
mov esi, 0xf
push eax
mov dword [esp + 0x68c], 9
mov dword [esp + 0x20], esi
call fcn.004032b0
add esp, 8
test al, al
jne 0x410cea
push 2
push 2
lea ecx, [esp + 0x5c]
push ecx
mov ecx, edi
call fcn.00407390
push 0x4771d0
push eax
mov dword [esp + 0x68c], 0xa
mov dword [esp + 0x20], 0x1f
call fcn.004032b0
add esp, 8
test al, al
jne 0x410cea
push 2
push 2
lea edx, [esp + 0x58]
push edx
mov ecx, edi
call fcn.00407390
push 0x4771cc
push eax
mov dword [esp + 0x68c], 0xb
mov dword [esp + 0x20], 0x3f
call fcn.004032b0
add esp, 8
test al, al
jne 0x410cea
push 2
push 2
lea eax, [esp + 0x54]
push eax
mov ecx, edi
call fcn.00407390
push 0x4771c8
push eax
mov dword [esp + 0x68c], 0xc
mov dword [esp + 0x20], 0x7f
call fcn.004032b0
add esp, 8
test al, al
jne 0x410cea
push 2
push 2
lea ecx, [esp + 0x4c]
push ecx
mov ecx, edi
call fcn.00407390
push 0x4771c4
push eax
mov dword [esp + 0x68c], 0xd
mov dword [esp + 0x20], 0xff
call fcn.004032b0
add esp, 8
test al, al
jne 0x410cea
push 2
push 2
lea edx, [esp + 0x30]
push edx
mov ecx, edi
call fcn.00407390
push 0x4771c0
push eax
mov dword [esp + 0x68c], 0xe
mov dword [esp + 0x20], 0x1ff
call fcn.004032b0
add esp, 8
test al, al
jne 0x410cea
push 2
push 2
lea eax, [esp + 0x34]
push eax
mov ecx, edi
call fcn.00407390
push 0x4771bc
push eax
mov dword [esp + 0x68c], esi
mov dword [esp + 0x20], 0x3ff
call fcn.004032b0
add esp, 8
test al, al
jne 0x410cea
push 2
push 2
lea ecx, [esp + 0x2c]
push ecx
mov ecx, edi
call fcn.00407390
push 0x4771b8
push eax
mov dword [esp + 0x20], 0x7ff
call fcn.004032b0
add esp, 8
test al, al
mov byte [esp + 0x1f], 0
je 0x410cef
mov byte [esp + 0x1f], 1
mov eax, dword [esp + 0x18]
test ah, 4
je 0x410d22
mov esi, eax
mov eax, dword [esp + 0x24]
and esi, 0xfffffbff
add eax, 0xfffffff0
mov dword [esp + 0x18], esi
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x410d22
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
test ah, 2
mov dword [esp + 0x684], 0xe
je 0x410d60
mov edx, eax
mov eax, dword [esp + 0x2c]
and edx, 0xfffffdff
add eax, 0xfffffff0
mov dword [esp + 0x18], edx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410d60
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
test ah, 1
mov dword [esp + 0x684], 0xd
je 0x410d9e
mov edx, eax
mov eax, dword [esp + 0x28]
and edx, 0xfffffeff
add eax, 0xfffffff0
mov dword [esp + 0x18], edx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410d9e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [esp + 0x18]
test al, al
mov dword [esp + 0x684], 0xc
jns 0x410ddd
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
and edx, 0xffffff7f
add eax, 0xfffffff0
mov dword [esp + 0x18], edx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410ddd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test byte [esp + 0x18], 0x40
mov dword [esp + 0x684], 0xb
je 0x410e18
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x4c]
and edx, 0xffffffbf
add eax, 0xfffffff0
mov dword [esp + 0x18], edx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410e18
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test byte [esp + 0x18], 0x20
mov dword [esp + 0x684], 0xa
je 0x410e53
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x50]
and edx, 0xffffffdf
add eax, 0xfffffff0
mov dword [esp + 0x18], edx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410e53
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test byte [esp + 0x18], 0x10
mov dword [esp + 0x684], 9
je 0x410e8e
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x54]
and edx, 0xffffffef
add eax, 0xfffffff0
mov dword [esp + 0x18], edx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410e8e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test byte [esp + 0x18], 8
mov dword [esp + 0x684], 8
je 0x410ec9
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
and edx, 0xfffffff7
add eax, 0xfffffff0
mov dword [esp + 0x18], edx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410ec9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test byte [esp + 0x18], 4
mov dword [esp + 0x684], 7
je 0x410f04
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
and edx, 0xfffffffb
add eax, 0xfffffff0
mov dword [esp + 0x18], edx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410f04
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test byte [esp + 0x18], 2
mov dword [esp + 0x684], 6
je 0x410f3f
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
and edx, 0xfffffffd
add eax, 0xfffffff0
mov dword [esp + 0x18], edx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410f3f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test byte [esp + 0x18], 1
mov esi, 2
mov dword [esp + 0x684], esi
je 0x410f70
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410f70
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [esp + 0x1f]
test al, al
lea edi, [ebx + 0xff4]
mov ecx, edi
je 0x410f87
push 0x4771ec
jmp 0x410fa5
mov dword [ebx + 0xfdc], 1
push 0x4771f0
jmp 0x410fab
lea edi, [ebx + 0xff4]
push 0x4771f4
mov ecx, edi
mov dword [ebx + 0xfdc], esi
call fcn.00404270
mov eax, dword [ebx + 0x1030]
test eax, eax
je 0x411065
call fcn.0045c368
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebx + 0x88]
push eax
push ecx
lea edx, [esp + 0x34]
push str.Result__s_
push edx
mov byte [esp + 0x694], 0x10
call fcn.00403c50
mov esi, dword [esp + 0x3c]
mov ecx, dword [ebx + 0x1030]
add esp, 0x10
push esi
call fcn.0046096d
mov ecx, dword [esp + 0x30]
push 0x477190
push 0x477214
call fcn.00407550
mov al, byte [ebx + 0x74]
test al, al
js 0x411043
mov eax, dword [ebx + 0x438]
mov ecx, dword [ebx + 0xfdc]
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [ebx + 0x1030]
push edx
push eax
call fcn.00430890
lea eax, [esi - 0x10]
mov byte [esp + 0x684], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411065
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jl 0x4110ce
push 0x4773b0
push eax
call fcn.0044ae11
add esp, 8
test eax, eax
je 0x4110ce
mov ecx, dword [esp + 0x34]
sub eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4110ce
push 0
push 0x476ba8
mov ecx, edi
call fcn.00403ad0
mov edx, dword [ebp + 0xc]
mov eax, dword [ebx + 0xeb8]
xor edi, edi
xor esi, esi
cmp eax, edx
je 0x4110ce
mov eax, dword [ebx + 0xffc]
mov ecx, dword [eax]
push esi
push esi
push esi
push edi
push eax
call dword [ecx + 0x14]
mov eax, dword [ebx + 0x1000]
mov edx, dword [eax]
push esi
push esi
push esi
push edi
push eax
call dword [edx + 0x14]
mov eax, dword [ebx + 0xecc]
mov ecx, dword [ebx + 0xec8]
push 0
push 0x3e8
push eax
push ecx
call fcn.0044ac60
mov dword [esp + 0x48], edx
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x44], eax
mov eax, dword [edx - 0xc]
test eax, eax
jne 0x411111
push 0
lea ecx, [ebx + 0x94]
push 0x476ba8
call fcn.00403ad0
jmp 0x4115e2
mov edi, dword [ebx + 0x2c]
push ecx
mov ecx, dword [edi - 0x10]
mov eax, dword [ecx]
sub edi, 0x10
mov dword [esp + 0x3c], esp
mov dword [esp + 0x24], esp
call dword [eax + 0x10]
mov edx, dword [edi + 0xc]
test edx, edx
lea ecx, [edi + 0xc]
jl 0x411143
cmp eax, dword [edi]
jne 0x411143
mov eax, edi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x411176
mov ecx, dword [edi + 4]
mov edx, dword [eax]
push 1
push ecx
mov ecx, eax
call dword [edx]
test eax, eax
jne 0x411158
call fcn.00406710
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
mov ecx, dword [edi + 4]
inc ecx
mov edx, ecx
lea esi, [edi + 0x10]
shr ecx, 2
lea edi, [eax + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x24]
add eax, 0x10
mov dword [ecx], eax
sub esp, 8
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0
mov edi, dword [ebx + 0x88]
mov dword [esp + 0x2c], esp
push ecx
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
sub edi, 0x10
mov byte [esp + 0x694], 0x11
mov dword [esp + 0x50], esp
mov dword [esp + 0x30], esp
call dword [edx + 0x10]
mov ecx, dword [edi + 0xc]
test ecx, ecx
lea edx, [edi + 0xc]
jl 0x4111d2
cmp eax, dword [edi]
jne 0x4111d2
mov eax, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x411205
mov ecx, dword [edi + 4]
mov edx, dword [eax]
push 1
push ecx
mov ecx, eax
call dword [edx]
test eax, eax
jne 0x4111e7
call fcn.00406710
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
mov ecx, dword [edi + 4]
inc ecx
mov edx, ecx
lea esi, [edi + 0x10]
shr ecx, 2
lea edi, [eax + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x30]
add eax, 0x10
mov dword [ecx], eax
mov edi, dword [ebx + 0x8c]
push ecx
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
sub edi, 0x10
mov byte [esp + 0x698], 0x12
mov dword [esp + 0x50], esp
mov dword [esp + 0x34], esp
call dword [edx + 0x10]
mov ecx, dword [edi + 0xc]
test ecx, ecx
lea edx, [edi + 0xc]
jl 0x41124b
cmp eax, dword [edi]
jne 0x41124b
mov eax, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x41127e
mov ecx, dword [edi + 4]
mov edx, dword [eax]
push 1
push ecx
mov ecx, eax
call dword [edx]
test eax, eax
jne 0x411260
call fcn.00406710
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
mov ecx, dword [edi + 4]
inc ecx
mov edx, ecx
lea esi, [edi + 0x10]
shr ecx, 2
lea edi, [eax + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x34]
add eax, 0x10
mov dword [ecx], eax
mov edi, dword [ebx + 0x20]
push ecx
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
sub edi, 0x10
mov dword [esp + 0x38], esp
mov byte [esp + 0x69c], 0x13
mov dword [esp + 0x38], esp
call dword [edx + 0x10]
mov ecx, dword [edi + 0xc]
test ecx, ecx
lea edx, [edi + 0xc]
jl 0x4112c1
cmp eax, dword [edi]
jne 0x4112c1
mov eax, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4112f4
mov ecx, dword [edi + 4]
mov edx, dword [eax]
push 1
push ecx
mov ecx, eax
call dword [edx]
test eax, eax
jne 0x4112d6
call fcn.00406710
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
mov ecx, dword [edi + 4]
inc ecx
mov edx, ecx
lea esi, [edi + 0x10]
shr ecx, 2
lea edi, [eax + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x38]
add eax, 0x10
mov dword [ecx], eax
lea ecx, [ebx + 0x41c]
mov byte [esp + 0x69c], 2
call fcn.00436aa0
push 0
push ecx
mov dword [esp + 0x48], esp
mov edi, esp
call fcn.0045c368
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [edi], eax
mov ecx, edi
call fcn.00403010
mov edi, dword [ebx + 0x14]
push ecx
mov ecx, dword [edi - 0x10]
mov eax, dword [ecx]
sub edi, 0x10
mov byte [esp + 0x690], 0x15
mov dword [esp + 0x48], esp
mov dword [esp + 0x2c], esp
call dword [eax + 0x10]
mov ecx, dword [edi + 0xc]
test ecx, ecx
lea edx, [edi + 0xc]
jl 0x41136b
cmp eax, dword [edi]
jne 0x41136b
mov eax, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x41139e
mov ecx, dword [edi + 4]
mov edx, dword [eax]
push 1
push ecx
mov ecx, eax
call dword [edx]
test eax, eax
jne 0x411380
call fcn.00406710
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
mov ecx, dword [edi + 4]
inc ecx
mov edx, ecx
lea esi, [edi + 0x10]
shr ecx, 2
lea edi, [eax + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x2c]
add eax, 0x10
mov dword [ecx], eax
mov edi, dword [ebx + 0x90]
push ecx
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
sub edi, 0x10
mov byte [esp + 0x694], 0x16
mov dword [esp + 0x64], esp
mov dword [esp + 0x30], esp
call dword [edx + 0x10]
mov ecx, dword [edi + 0xc]
test ecx, ecx
lea edx, [edi + 0xc]
jl 0x4113e4
cmp eax, dword [edi]
jne 0x4113e4
mov eax, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x411417
mov ecx, dword [edi + 4]
mov edx, dword [eax]
push 1
push ecx
mov ecx, eax
call dword [edx]
test eax, eax
jne 0x4113f9
call fcn.00406710
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
mov ecx, dword [edi + 4]
inc ecx
mov edx, ecx
lea esi, [edi + 0x10]
shr ecx, 2
lea edi, [eax + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x30]
add eax, 0x10
mov dword [ecx], eax
sub esp, 8
mov eax, esp
mov dword [esp + 0x38], esp
push ecx
mov byte [esp + 0x6a0], 0x17
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [esp + 0x6c], esp
mov edi, esp
call fcn.0045c368
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [edi], eax
mov ecx, edi
call fcn.00403010
push ecx
mov byte [esp + 0x6a4], 0x19
mov dword [esp + 0x6c], esp
mov edi, esp
call fcn.0045c368
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [edi], eax
mov ecx, edi
call fcn.00403010
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edx, dword [ebx + 0xec0]
mov edi, dword [ebx + 0xff4]
push 0
push eax
push ecx
push 0xffffffffffffffff
push 0
push edx
push ecx
mov ecx, dword [edi - 0x10]
mov eax, dword [ecx]
sub edi, 0x10
mov byte [esp + 0x6c0], 0x1b
mov dword [esp + 0x80], esp
mov dword [esp + 0x5c], esp
call dword [eax + 0x10]
mov ecx, dword [edi + 0xc]
test ecx, ecx
lea edx, [edi + 0xc]
jl 0x4114db
cmp eax, dword [edi]
jne 0x4114db
mov eax, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x41150e
mov ecx, dword [edi + 4]
mov edx, dword [eax]
push 1
push ecx
mov ecx, eax
call dword [edx]
test eax, eax
jne 0x4114f0
call fcn.00406710
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
mov ecx, dword [edi + 4]
inc ecx
mov edx, ecx
lea esi, [edi + 0x10]
shr ecx, 2
lea edi, [eax + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x5c]
add eax, 0x10
mov dword [ecx], eax
mov edx, dword [esp + 0x70]
mov edi, dword [edx]
push ecx
mov ecx, dword [edi - 0x10]
mov eax, dword [ecx]
sub edi, 0x10
mov dword [esp + 0x60], esp
mov byte [esp + 0x6c4], 0x1c
mov dword [esp + 0x60], esp
call dword [eax + 0x10]
mov ecx, dword [edi + 0xc]
test ecx, ecx
lea edx, [edi + 0xc]
jl 0x411554
cmp eax, dword [edi]
jne 0x411554
mov eax, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x411587
mov ecx, dword [edi + 4]
mov edx, dword [eax]
push 1
push ecx
mov ecx, eax
call dword [edx]
test eax, eax
jne 0x411569
call fcn.00406710
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
mov ecx, dword [edi + 4]
inc ecx
mov edx, ecx
lea esi, [edi + 0x10]
shr ecx, 2
lea edi, [eax + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x60]
add eax, 0x10
lea edx, [esp + 0x78]
mov dword [ecx], eax
push edx
lea ecx, [ebx + 0x41c]
mov byte [esp + 0x6c8], 2
call fcn.00437510
lea ecx, [ebx + 0x94]
push eax
mov byte [esp + 0x688], 0x1d
call fcn.00403d30
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0x684], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4115e2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov esi, dword [esp + 0x30]
mov eax, dword [esi]
push 0x477224
push eax
call fcn.0044bb20
add esp, 8
test eax, eax
jne 0x41161c
mov eax, dword [esi]
push 0x477218
push eax
call fcn.0044bb20
add esp, 8
test eax, eax
je 0x411631
lea ecx, [ebx + 0x98]
push ecx
push 0x4773a0
jmp 0x411628
lea edx, [ebx + 0x98]
push edx
push 0x477394
push eax
call fcn.0044ac24
add esp, 0xc
mov eax, dword [ebx + 0x98]
mov dword [ebx + 0x1080], eax
mov ecx, dword [ebx + 0x2c]
mov edi, dword [ebx + 0x1084]
lea esi, [ebx + 0x1084]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x41169e
mov edx, dword [edi + 0xc]
test edx, edx
jl 0x411692
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x411692
push eax
call fcn.004026d0
mov dword [esp + 0x24], eax
add esp, 4
or ecx, 0xffffffff
lea eax, [edi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x411687
mov ecx, dword [edi]
mov edx, dword [ecx]
push edi
call dword [edx + 4]
mov eax, dword [esp + 0x20]
add eax, 0x10
mov dword [esi], eax
jmp 0x41169e
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, esi
call fcn.00403ad0
mov ecx, dword [ebp + 8]
push ecx
mov ecx, ebx
call fcn.0040e5e0
mov ecx, dword [ebx + 0x1038]
test ecx, ecx
je 0x4116ef
mov al, byte [ebx + 0x74]
test al, al
jns 0x4116c1
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x4116ef
mov edx, dword [ecx]
lea eax, [ebx + 0x14]
push eax
lea eax, [ebx + 0x2c]
push eax
mov eax, dword [ebx + 0xec0]
push eax
mov eax, dword [ebx + 0x98]
push eax
lea eax, [ebx + 0xedc]
push eax
mov eax, dword [ebx + 0x438]
push eax
mov eax, dword [esp + 0x4c]
push eax
call dword [edx + 0x10]
mov eax, dword [ebx + 0x74]
test al, al
jns 0x4116fd
mov ecx, dword [ebx + 0x10]
test ecx, ecx
jne 0x41172e
test al, 0x40
je 0x41172e
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x41172e
mov esi, dword [sym.imp.KERNEL32.dll_Beep]
push 0x96
push 0x320
call esi
push 0x3c
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x96
push 0x640
call esi
lea ecx, [esp + 0x258]
mov dword [esp + 0x684], 0xffffffff
call fcn.00406410
mov ecx, dword [esp + 0x67c]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x674]
xor eax, eax
call fcn.00449c1e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14