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

Disassembly:
sub esp, 0xda8
mov eax, dword [0x449ea0]
push ebx
push ebp
xor ebp, ebp
push esi
cmp eax, ebp
push edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x3c], 1
mov dword [esp + 0x60], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x30], ebp
je 0x415ae0
mov eax, dword [0x44a964]
push str._P_n
push eax
call fcn.0041f590
add esp, 8
cmp dword [0x449f1c], ebp
jne 0x415aed
call fcn.00415420
mov edx, dword [0x449f48]
mov ebx, dword [esp + 0xdbc]
inc edx
mov dword [0x449f48], edx
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], ecx
call fcn.00415620
mov dword [esp + 0x9c], eax
call fcn.004171e0
mov esi, eax
call fcn.00412c60
mov edi, dword [esp + 0xdc0]
cmp eax, 1
mov dword [esp + 0x70], eax
jne 0x415b3c
push edi
call fcn.004124f0
add esp, 4
mov edx, dword [0x44a8b4]
mov eax, dword [edi + 0x104]
push edx
push eax
push 2
push ebx
call fcn.004022e0
mov eax, dword [0x439620]
add esp, 0x10
cmp eax, ebp
je 0x415b9c
mov edx, dword [edi + 0x104]
lea ecx, [esp + 0x58]
push esi
push ecx
push ebp
push ebp
push edx
call fcn.004120d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x415b7c
mov esi, eax
mov ecx, dword [edi + 0x104]
lea eax, [esp + 0x58]
push esi
push eax
push 1
push 1
push ecx
call fcn.004120d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x415b9c
mov esi, eax
push ebp
push ebp
push esi
push 1
push ebx
call fcn.00402780
mov eax, dword [0x4ec718]
add esp, 0x14
cmp eax, 1
jne 0x415bb8
push 1
jmp 0x415bc1
cmp dword [0x449f10], ebp
je 0x415bca
push ebp
push edi
call fcn.0040dfb0
add esp, 8
push edi
call fcn.0040da80
add esp, 4
push edi
call fcn.0041e290
mov edx, dword [ebx + 4]
mov eax, pe_nt_image_headers32
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x58], eax
mov eax, dword [0x44a898]
add esp, 4
cmp eax, ebp
mov eax, dword [esp + 0xdc4]
mov dword [esp + 0x68], edx
jne 0x415c1b
cmp dword [eax + 0x158], ebp
jne 0x415c1b
push eax
call fcn.00417450
add esp, 4
mov ecx, dword [0x449d50]
mov eax, dword [0x449d54]
sar ecx, 3
sar eax, 3
lea edx, [ecx - 2]
cmp eax, ebp
mov dword [esp + 0x90], edx
lea edx, [eax - 2]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x88], eax
mov dword [esp + 0x98], edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x20], ebp
jle 0x41612f
mov dword [esp + 0x38], ebp
jmp 0x415c63
xor ebp, ebp
cmp ecx, ebp
mov dword [esp + 0x10], ebp
jle 0x41610f
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xdc0]
mov edi, dword [esp + 0x38]
lea ecx, [esp + 0x9b8]
lea ebp, [eax*8]
mov eax, dword [edx + 0x11c]
add edi, eax
mov dword [esp + 0x34], 0x10
xor eax, eax
mov edx, dword [edi]
xor ebx, ebx
add edx, eax
inc eax
add ecx, 4
cmp eax, 0x10
mov bl, byte [edx + ebp]
mov dword [ecx - 4], ebx
jl 0x415ca8
mov eax, dword [esp + 0x34]
add edi, 4
dec eax
mov dword [esp + 0x34], eax
jne 0x415ca6
mov eax, dword [0x439620]
test eax, eax
je 0x415d46
mov edx, dword [esp + 0xdc0]
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x58]
push esi
push eax
mov eax, dword [edx + 0x104]
push ecx
push 2
push eax
call fcn.004120d0
mov eax, dword [esp + 0x6c]
add esp, 0x14
test eax, eax
je 0x415d46
cmp dword [eax], 0
jne 0x415d23
mov edi, dword [esp + 0xdc4]
mov ebp, dword [esp + 0x20]
xor eax, eax
mov ebx, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
jmp 0x415e07
mov ecx, dword [eax + 4]
mov edi, dword [esp + 0xdc4]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
mov edx, dword [eax + 8]
mov ebx, 1
mov dword [esp + 0x1c], edx
jmp 0x415e07
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0xdc4]
push eax
push ebp
lea ecx, [esp + 0x9c0]
push edi
push ecx
call fcn.004176f0
add esp, 0x10
test eax, eax
je 0x415d80
xor eax, eax
mov ebx, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
jmp 0x415e07
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x18]
lea eax, [esp + 0x1c]
push edx
push eax
push ecx
push ebp
lea edx, [esp + 0x9c8]
push edi
push edx
call fcn.0041a810
mov ebx, eax
add esp, 0x18
test ebx, ebx
je 0x415e07
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
push eax
push ecx
push edx
push ebp
lea eax, [esp + 0x9c8]
push edi
push eax
call fcn.004175a0
add esp, 0x18
test eax, eax
je 0x415dd6
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov eax, dword [0x433ed4]
test eax, eax
je 0x415e07
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
push ecx
push edx
push eax
push ebp
lea ecx, [esp + 0x9c8]
push edi
push ecx
call fcn.00417620
mov ebx, eax
add esp, 0x18
neg ebx
sbb ebx, ebx
inc ebx
mov edx, dword [0x44a8bc]
mov ecx, dword [esp + 0x2c]
lea eax, [ebp*4]
mov dword [esp + 0x24], eax
mov eax, dword [eax + edx]
test ebx, ebx
mov byte [eax + ecx], bl
jne 0x415f8a
mov ecx, dword [esp + 0x60]
mov eax, dword [0x449ea0]
inc ecx
test eax, eax
mov dword [esp + 0x60], ecx
je 0x415e59
test byte [0x449ea4], 1
je 0x415e59
mov edx, dword [0x44a964]
push 0x4349ec
push edx
call fcn.0041f590
add esp, 8
mov eax, dword [0x449f1c]
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0xdc0]
mov ebp, dword [esp + 0x28]
mov edx, dword [ecx + eax]
mov eax, dword [edi + 0x140]
add edx, ebp
push edx
mov edx, dword [ecx + eax]
add edx, ebp
push edx
call fcn.00401000
mov ecx, dword [0x449f1c]
mov eax, dword [esp + 0x2c]
lea ebx, [ebp + 0x80]
add esp, 8
mov edx, dword [eax + ecx]
mov ecx, dword [edi + 0x140]
add edx, ebx
push edx
mov edx, dword [eax + ecx]
add edx, ebx
push edx
call fcn.00401000
mov ecx, dword [0x449f1c]
mov eax, dword [esp + 0x2c]
add esp, 8
mov edx, dword [eax + ecx + 4]
mov ecx, dword [edi + 0x140]
add edx, ebp
push edx
mov edx, dword [eax + ecx + 4]
add edx, ebp
push edx
call fcn.00401000
mov ecx, dword [0x449f1c]
mov eax, dword [esp + 0x2c]
add esp, 8
mov edx, dword [eax + ecx + 4]
mov ecx, dword [edi + 0x140]
add edx, ebx
push edx
mov edx, dword [eax + ecx + 4]
add edx, ebx
push edx
call fcn.00401000
mov eax, dword [0x449ea0]
add esp, 8
test eax, eax
je 0x415f22
test byte [0x449ea4], 1
je 0x415f22
mov eax, dword [0x44a964]
push 0x4349f0
push eax
call fcn.0041f590
add esp, 8
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
mov ecx, dword [0x449f24]
mov eax, dword [esp + 0xdc0]
sar edi, 1
shl edi, 2
sar ebx, 1
mov edx, dword [edi + ecx]
mov ecx, dword [eax + 0x148]
shl ebx, 7
add edx, ebx
push edx
mov edx, dword [ecx + edi]
add edx, ebx
push edx
call fcn.00401000
mov eax, dword [0x449f20]
mov edx, dword [esp + 0xdc8]
add esp, 8
mov ecx, dword [edi + eax]
mov eax, dword [edx + 0x144]
add ecx, ebx
push ecx
mov ecx, dword [eax + edi]
add ecx, ebx
push ecx
call fcn.00401000
mov eax, dword [esp + 0x34]
add esp, 8
jmp 0x4160d7
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x18]
inc ecx
lea edx, [esp + 0x14]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0xdc8]
push ecx
push edx
push ebp
push edi
push eax
mov dword [esp + 0x30], 0x3f
call fcn.0041cbd0
mov eax, dword [0x44a8a0]
mov ecx, dword [esp + 0x34]
add esp, 0x1c
lea edx, [ecx + eax + 1]
test edx, edx
jge 0x415fee
push 0x180
push 0x4349f4
push str.motionXsearchRangeP1___0
call fcn.0041f820
mov eax, dword [0x44a8a0]
add esp, 0xc
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + eax + 1]
test edx, edx
jge 0x416016
push 0x181
push 0x434a1c
push str.motionYsearchRangeP1___0
call fcn.0041f820
mov eax, dword [0x44a8a0]
add esp, 0xc
mov ecx, dword [0x449fe8]
test ecx, ecx
je 0x416098
mov ecx, dword [esp + 0x18]
lea edx, [ecx + eax + 1]
lea ecx, [eax + eax + 2]
cmp edx, ecx
jle 0x41604c
push 0x18c
push 0x434a44
push str.motionXsearchRangeP1___2searchRangeP2
call fcn.0041f820
mov eax, dword [0x44a8a0]
add esp, 0xc
mov edx, dword [esp + 0x1c]
lea ecx, [edx + eax + 1]
lea edx, [eax + eax + 2]
cmp ecx, edx
jle 0x416078
push 0x18d
push str.pframe.c
push str.motionYsearchRangeP1___2searchRangeP2
call fcn.0041f820
mov eax, dword [0x44a8a0]
add esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add ecx, eax
add edx, eax
mov eax, dword [0x449fa0]
mov ecx, dword [eax + ecx*4 + 4]
lea eax, [ecx + edx*4 + 4]
mov ecx, dword [ecx + edx*4 + 4]
inc ecx
mov dword [eax], ecx
mov edx, dword [0x44a8bc]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov bl, byte [esp + 0x14]
mov edx, dword [ecx + edx]
mov ebp, dword [esp + 0x28]
mov byte [edx + eax + 1], bl
mov edx, dword [0x44a8bc]
mov edi, dword [esp + 0x18]
mov edx, dword [ecx + edx]
mov dword [edx + eax + 4], edi
mov edx, dword [0x44a8bc]
mov ecx, dword [ecx + edx]
mov edx, dword [esp + 0x1c]
mov dword [ecx + eax + 8], edx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x10]
inc ecx
add edx, 2
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x78]
add ebp, 0x100
add eax, 0x28
cmp edx, ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], eax
jl 0x415c79
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x38]
add edx, 2
add ebx, 0x40
cmp edx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], ebx
jl 0x415c61
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x20], ebp
jle 0x416f0f
jmp 0x416143
xor ebp, ebp
cmp ecx, ebp
mov dword [esp + 0x10], ebp
jle 0x416efa
mov ebx, dword [esp + 0xdbc]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
jmp 0x41616f
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0xdbc]
mov ebp, dword [0x44a8c0]
mov eax, ecx
cdq
idiv ebp
test edx, edx
mov dword [esp + 0x94], edx
jne 0x41620c
test ecx, ecx
je 0x41620c
mov eax, dword [0x439620]
test eax, eax
je 0x4161c1
lea eax, [esp + 0x58]
push esi
push eax
mov eax, ecx
cdq
idiv ebp
mov ecx, dword [esp + 0xdc8]
mov edx, dword [ecx + 0x104]
push eax
push 1
push edx
call fcn.004120d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4161c1
mov esi, eax
push ebx
call fcn.00402800
add esp, 4
mov eax, edi
xor ebp, ebp
sar eax, 1
push ebp
push ebp
inc eax
push esi
push eax
push ebx
call fcn.00402780
mov dword [esp + 0x60], ebp
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x24]
mov eax, pe_nt_image_headers32
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x68], eax
mov eax, ebp
sar eax, 1
add esp, 0x14
inc eax
mov dword [esp + 0x3c], eax
jmp 0x416210
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x70], 1
jne 0x416262
mov edx, dword [esp + 0xdc0]
mov ecx, dword [ebx + 4]
lea eax, [ebp + 1]
mov dword [esp + 0x6c], ecx
mov edx, dword [edx + 0x140]
mov ecx, ebp
shl eax, 7
mov ebx, dword [edx + edi*4 + 4]
mov edx, dword [edx + edi*4]
shl ecx, 7
lea ebp, [ebx + eax]
add ebx, ecx
push ebp
add eax, edx
push ebx
push eax
mov eax, dword [0x449f30]
add edx, ecx
push edx
push eax
call fcn.00412a60
add esp, 0x14
test eax, eax
jle 0x41625e
mov esi, eax
mov ebp, dword [esp + 0x10]
mov eax, dword [0x439620]
test eax, eax
je 0x416295
mov eax, dword [esp + 0xdc0]
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x58]
push esi
push ecx
mov ecx, dword [eax + 0x104]
push edx
push 2
push ecx
call fcn.004120d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x416295
mov esi, eax
mov edx, dword [0x44a8bc]
lea eax, [ebp + ebp*4]
shl eax, 2
mov ecx, dword [edx + edi*4]
cmp byte [eax + ecx], 0
jne 0x4166ff
xor eax, eax
mov ebx, ebp
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
lea edx, [edi + 1]
shl ebx, 7
inc ebp
mov dword [esp + 0x38], edx
sar eax, 1
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], eax
shl ebp, 7
sar edi, 1
shl eax, 7
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], eax
mov ecx, dword [0x449f1c]
mov edx, dword [esp + 0x20]
push 1
lea eax, [esp + 0x3bc]
push esi
push eax
mov eax, dword [ecx + edx*4]
add eax, ebx
push eax
call fcn.004015a0
add esp, 0x10
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [0x449f1c]
sete cl
mov edi, ecx
mov ecx, dword [esp + 0x20]
push 1
lea edx, [esp + 0x43c]
push esi
push edx
mov edx, dword [eax + ecx*4]
add edx, ebp
push edx
call fcn.004015a0
add esp, 0x10
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [0x449f1c]
sete cl
or edi, ecx
mov ecx, dword [esp + 0x38]
push 1
lea edx, [esp + 0x4bc]
push esi
push edx
mov edx, dword [eax + ecx*4]
add edx, ebx
push edx
call fcn.004015a0
add esp, 0x10
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [0x449f1c]
sete cl
or edi, ecx
mov ecx, dword [esp + 0x38]
push 1
lea edx, [esp + 0x53c]
push esi
push edx
mov edx, dword [eax + ecx*4]
add edx, ebp
push edx
call fcn.004015a0
add esp, 0x10
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [0x449f24]
sete cl
or edi, ecx
mov ecx, dword [esp + 0x2c]
push 1
lea edx, [esp + 0x5bc]
push esi
push edx
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x40]
add edx, ecx
push edx
call fcn.004015a0
add esp, 0x10
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [0x449f20]
sete cl
push 1
lea edx, [esp + 0x63c]
push esi
or edi, ecx
push edx
mov ecx, dword [esp + 0x38]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x40]
add edx, ecx
push edx
call fcn.004015a0
add esp, 0x10
xor ecx, ecx
cmp eax, 0xffffffff
sete cl
or edi, ecx
je 0x416410
cmp esi, 0x1f
je 0x416410
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x4c], 1
inc ecx
inc esi
mov dword [esp + 0x48], ecx
jmp 0x416412
xor edi, edi
test edi, edi
jne 0x4162e4
push 1
push edi
push edi
push edi
push edi
push edi
mov edx, dword [esp + 0x54]
push edi
push edi
mov ebx, dword [esp + 0xddc]
push edi
push edi
push edi
push edi
push edi
push edi
push esi
push edx
push 2
push ebx
call fcn.00402810
movsx ecx, word [esp + 0x400]
add esp, 0x48
lea eax, [esp + 0x54]
push ebx
push eax
push ecx
call fcn.004149d0
add esp, 0xc
lea edx, [esp + 0x3b8]
push ebx
push edx
call fcn.00401720
movsx ecx, word [esp + 0x440]
add esp, 8
lea eax, [esp + 0x54]
push ebx
push eax
push ecx
call fcn.004149d0
add esp, 0xc
lea edx, [esp + 0x438]
push ebx
push edx
call fcn.00401720
movsx ecx, word [esp + 0x4c0]
add esp, 8
lea eax, [esp + 0x54]
push ebx
push eax
push ecx
call fcn.004149d0
add esp, 0xc
lea edx, [esp + 0x4b8]
push ebx
push edx
call fcn.00401720
movsx ecx, word [esp + 0x540]
add esp, 8
lea eax, [esp + 0x54]
push ebx
push eax
push ecx
call fcn.004149d0
add esp, 0xc
lea edx, [esp + 0x538]
push ebx
push edx
call fcn.00401720
movsx ecx, word [esp + 0x5c0]
add esp, 8
lea eax, [esp + 0x84]
push ebx
push eax
push ecx
call fcn.00414a50
add esp, 0xc
lea edx, [esp + 0x5b8]
push ebx
push edx
call fcn.00401720
movsx ecx, word [esp + 0x640]
add esp, 8
lea eax, [esp + 0x80]
push ebx
push eax
push ecx
call fcn.00414a50
add esp, 0xc
lea edx, [esp + 0x638]
push ebx
push edx
call fcn.00401720
mov eax, dword [esp + 0x54]
add esp, 8
cmp eax, edi
je 0x416543
sub esi, dword [esp + 0x48]
mov eax, dword [ebx + 4]
mov ebp, dword [esp + 0x68]
mov edx, dword [esp + 0x74]
mov ecx, eax
sub ecx, ebp
mov dword [esp + 0x68], eax
mov eax, dword [0x449f18]
add edx, ecx
cmp eax, edi
mov dword [esp + 0x3c], 1
mov dword [esp + 0x74], edx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], edi
je 0x416e93
push 1
lea edx, [esp + 0xbc]
push esi
lea eax, [esp + 0x3c0]
push edx
push eax
call fcn.004014b0
add esp, 0x10
lea ecx, [esp + 0x138]
lea edx, [esp + 0x438]
push 1
push esi
push ecx
push edx
call fcn.004014b0
add esp, 0x10
lea eax, [esp + 0x1b8]
lea ecx, [esp + 0x4b8]
push 1
push esi
push eax
push ecx
call fcn.004014b0
add esp, 0x10
lea edx, [esp + 0x238]
lea eax, [esp + 0x538]
push 1
push esi
push edx
push eax
call fcn.004014b0
add esp, 0x10
lea ecx, [esp + 0x2b8]
lea edx, [esp + 0x5b8]
push 1
push esi
push ecx
push edx
call fcn.004014b0
add esp, 0x10
lea eax, [esp + 0x338]
lea ecx, [esp + 0x638]
push 1
push esi
push eax
push ecx
call fcn.004014b0
add esp, 0x10
lea edi, [esp + 0xb8]
mov ebp, 6
push edi
call fcn.0040b390
add esp, 4
add edi, 0x80
dec ebp
jne 0x416627
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0xdc0]
mov ebp, dword [esp + 0x20]
push edx
mov ecx, dword [edi + 0x128]
lea eax, [esp + 0xbc]
push ebp
push eax
push ecx
call fcn.0041e220
mov edx, dword [esp + 0x34]
mov ecx, dword [edi + 0x128]
add esp, 0x10
lea eax, [esp + 0x138]
push edx
push ebp
push eax
push ecx
call fcn.0041e220
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x48]
mov ecx, dword [edi + 0x128]
add esp, 0x10
lea eax, [esp + 0x1b8]
push edx
push ebp
push eax
push ecx
call fcn.0041e220
mov edx, dword [esp + 0x34]
mov ecx, dword [edi + 0x128]
add esp, 0x10
lea eax, [esp + 0x238]
push edx
push ebp
push eax
push ecx
call fcn.0041e220
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [edi + 0x130]
add esp, 0x10
lea eax, [esp + 0x2b8]
push edx
push ebp
push eax
push ecx
call fcn.0041e220
mov edx, dword [esp + 0x38]
mov ecx, dword [edi + 0x12c]
add esp, 0x10
lea eax, [esp + 0x338]
push edx
push ebp
push eax
push ecx
call fcn.0041e220
add esp, 0x10
jmp 0x416e91
mov ecx, pe_nt_image_headers32
mov ebp, dword [0x44a8b4]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [edx + edi*4]
mov dword [esp + 0x24], ebp
movsx ecx, byte [eax + ecx + 1]
mov dword [esp + 0x14], ecx
mov ecx, dword [edx + edi*4]
mov ecx, dword [eax + ecx + 4]
mov dword [esp + 0x18], ecx
mov edx, dword [edx + edi*4]
mov edi, dword [eax + edx + 8]
mov eax, dword [0x44a898]
test eax, eax
mov dword [esp + 0x1c], edi
je 0x416765
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov edi, eax
mov eax, ecx
cdq
sub eax, edx
mov dword [esp + 0x1c], edi
sar eax, 1
mov ecx, eax
mov dword [esp + 0x18], ecx
mov ebx, dword [esp + 0x4c]
mov eax, ecx
mov edx, edi
mov edi, dword [esp + 0x48]
sub eax, ebx
lea ebx, [ebp + 3]
sub edx, edi
or edi, 0xffffffff
mov ecx, ebx
mov dword [esp + 0x34], ebx
shl edi, cl
cmp eax, edi
jge 0x416795
lea ecx, [ebp + 4]
mov ebp, 1
shl ebp, cl
add ebp, eax
jmp 0x4167bd
mov ecx, 1
mov dword [esp + 0x64], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x64]
shl ebx, cl
dec ebx
cmp eax, ebx
jle 0x4167b7
lea ecx, [ebp + 4]
mov ebx, 1
shl ebx, cl
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov ebp, eax
cmp edx, edi
jge 0x4167d3
mov eax, dword [esp + 0x24]
mov edi, 1
lea ecx, [eax + 4]
shl edi, cl
add edi, edx
jmp 0x4167f3
mov eax, 1
mov ecx, ebx
shl eax, cl
dec eax
cmp edx, eax
jle 0x4167f1
mov ecx, dword [esp + 0x24]
mov eax, 1
add ecx, 4
shl eax, cl
sub edx, eax
mov edi, edx
test ebp, ebp
jl 0x41682c
mov ecx, dword [esp + 0x24]
mov ebx, 1
dec ecx
mov eax, ebp
shl ebx, cl
cdq
idiv ebx
mov edx, ebx
imul edx, eax
cmp edx, ebp
jge 0x416812
inc eax
mov dword [esp + 0x28], eax
mov eax, 1
sub eax, dword [esp + 0x28]
imul eax, ebx
lea ecx, [eax + ebp - 1]
mov dword [esp + 0x34], ecx
jmp 0x41685c
mov edx, dword [esp + 0x24]
mov ebx, 1
mov eax, ebp
lea ecx, [edx - 1]
shl ebx, cl
cdq
idiv ebx
mov ecx, ebx
imul ecx, eax
cmp ecx, ebp
jle 0x416849
dec eax
mov edx, eax
mov dword [esp + 0x28], eax
lea eax, [edx + 1]
imul eax, ebx
sub eax, ebp
dec eax
mov dword [esp + 0x34], eax
mov eax, edi
test edi, edi
cdq
jl 0x416883
idiv ebx
mov ecx, ebx
imul ecx, eax
cmp ecx, edi
jge 0x41686f
inc eax
mov edx, 1
mov dword [esp + 0x2c], eax
sub edx, eax
imul edx, ebx
lea ebp, [edx + edi - 1]
jmp 0x41689c
idiv ebx
mov ecx, ebx
imul ecx, eax
cmp ecx, edi
jle 0x41688f
dec eax
lea ebp, [eax + 1]
mov dword [esp + 0x2c], eax
imul ebp, ebx
sub ebp, edi
dec ebp
mov edx, dword [0x44a898]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x64], ebp
test edx, edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], ecx
je 0x4168c7
lea edx, [ecx + ecx]
add eax, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
test byte [esp + 0x14], 0x20
je 0x416922
mov ebx, dword [esp + 0x10]
mov eax, dword [0x449f1c]
mov edi, dword [esp + 0x20]
push 0
lea ecx, [esp + 0x6bc]
push esi
mov edx, ebx
push ecx
mov ecx, dword [eax + edi*4]
shl edx, 7
add ecx, edx
push ecx
call fcn.004015a0
add esp, 0x10
cmp eax, 0xffffffff
je 0x416909
test eax, eax
jne 0x41692a
xor dword [esp + 0x14], 0x20
jmp 0x41692a
cmp esi, 0x1f
je 0x41692a
mov eax, dword [esp + 0x30]
inc esi
inc eax
mov dword [esp + 0x44], 1
mov dword [esp + 0x30], eax
jmp 0x4168c7
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
test byte [esp + 0x14], 0x10
je 0x416968
mov ecx, dword [0x449f1c]
push 0
lea edx, [esp + 0x73c]
push esi
lea eax, [ebx + 1]
push edx
mov edx, dword [ecx + edi*4]
shl eax, 7
add edx, eax
push edx
call fcn.004015a0
add esp, 0x10
cmp eax, 0xffffffff
je 0x417173
test eax, eax
jne 0x416968
xor dword [esp + 0x14], 0x10
test byte [esp + 0x14], 8
je 0x4169c0
mov edx, dword [0x449f1c]
push 0
lea eax, [esp + 0x7bc]
push esi
mov ecx, ebx
push eax
mov eax, dword [edx + edi*4 + 4]
shl ecx, 7
add eax, ecx
push eax
call fcn.004015a0
add esp, 0x10
cmp eax, 0xffffffff
je 0x4169a4
test eax, eax
jne 0x4169c0
xor dword [esp + 0x14], 8
jmp 0x4169c0
cmp esi, 0x1f
je 0x4169c0
mov eax, dword [esp + 0x30]
inc esi
inc eax
mov dword [esp + 0x44], 1
mov dword [esp + 0x30], eax
jmp 0x4168c7
test byte [esp + 0x14], 4
je 0x416a18
mov eax, dword [0x449f1c]
push 0
lea ecx, [esp + 0x83c]
push esi
lea edx, [ebx + 1]
push ecx
mov ecx, dword [eax + edi*4 + 4]
shl edx, 7
add ecx, edx
push ecx
call fcn.004015a0
add esp, 0x10
cmp eax, 0xffffffff
je 0x4169fc
test eax, eax
jne 0x416a18
xor dword [esp + 0x14], 4
jmp 0x416a18
cmp esi, 0x1f
je 0x416a18
mov eax, dword [esp + 0x30]
inc esi
inc eax
mov dword [esp + 0x44], 1
mov dword [esp + 0x30], eax
jmp 0x4168c7
test byte [esp + 0x14], 2
je 0x416a75
push 0
lea edx, [esp + 0x8bc]
push esi
mov eax, edi
push edx
mov edx, dword [0x449f24]
mov ecx, ebx
sar eax, 1
sar ecx, 1
mov eax, dword [edx + eax*4]
shl ecx, 7
add eax, ecx
push eax
call fcn.004015a0
add esp, 0x10
cmp eax, 0xffffffff
je 0x416a59
test eax, eax
jne 0x416a75
xor dword [esp + 0x14], 2
jmp 0x416a75
cmp esi, 0x1f
je 0x416a75
mov eax, dword [esp + 0x30]
inc esi
inc eax
mov dword [esp + 0x44], 1
mov dword [esp + 0x30], eax
jmp 0x4168c7
test byte [esp + 0x14], 1
je 0x416ad0
push 0
lea ecx, [esp + 0x93c]
push esi
mov edx, edi
push ecx
mov ecx, dword [0x449f20]
mov eax, ebx
sar edx, 1
sar eax, 1
mov edx, dword [ecx + edx*4]
shl eax, 7
add edx, eax
push edx
call fcn.004015a0
add esp, 0x10
cmp eax, 0xffffffff
jne 0x416ac7
cmp esi, 0x1f
je 0x416ad0
mov eax, dword [esp + 0x30]
inc esi
inc eax
mov dword [esp + 0x44], 1
mov dword [esp + 0x30], eax
jmp 0x4168c7
test eax, eax
jne 0x416ad0
xor dword [esp + 0x14], 1
mov eax, dword [0x449f18]
test eax, eax
je 0x416d37
mov ebp, 5
xor ebx, ebx
mov eax, 1
mov ecx, ebp
shl eax, cl
mov ecx, dword [esp + 0x14]
test ecx, eax
je 0x416b1b
lea edi, [esp + ebx + 0xb8]
push 0
push esi
lea edx, [esp + ebx + 0x6c0]
push edi
push edx
call fcn.004014b0
add esp, 0x10
push edi
call fcn.0040b390
add esp, 4
jmp 0x416b2b
mov ecx, 0x20
xor eax, eax
lea edi, [esp + ebx + 0xb8]
rep stosd dword es:[edi], eax
dec ebp
add ebx, 0x80
cmp ebp, 0xffffffff
jg 0x416ae4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xdc4]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
push eax
mov eax, dword [edx + 0x128]
push ecx
push edi
push ebp
lea ecx, [esp + 0xc8]
push eax
push ecx
call fcn.0041def0
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xddc]
add esp, 0x18
lea ebx, [edi + 1]
push edx
mov edx, dword [ecx + 0x128]
push eax
push ebx
push ebp
lea eax, [esp + 0x148]
push edx
push eax
call fcn.0041def0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add esp, 0x18
lea eax, [ebp + 1]
mov dword [esp + 0x38], eax
push ecx
push edx
push edi
push eax
mov eax, dword [esp + 0xdd4]
lea edx, [esp + 0x1c8]
mov ecx, dword [eax + 0x128]
push ecx
push edx
call fcn.0041def0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x50]
add esp, 0x18
push eax
mov eax, dword [esp + 0xdc8]
push ecx
push ebx
mov ecx, dword [eax + 0x128]
push edx
lea edx, [esp + 0x248]
push ecx
push edx
call fcn.0041def0
mov eax, dword [esp + 0x30]
add esp, 0x18
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, dword [esp + 0x20]
cdq
sub eax, edx
lea edx, [esp + 0x2bc]
sar eax, 1
push eax
mov eax, dword [esp + 0xdcc]
sar edi, 1
mov ecx, dword [eax + 0x130]
push edi
sar ebp, 1
push ebp
push ecx
push edx
call fcn.0041def0
mov eax, dword [esp + 0x30]
add esp, 0x18
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, dword [esp + 0x20]
cdq
sub eax, edx
lea edx, [esp + 0x33c]
sar eax, 1
push eax
mov eax, dword [esp + 0xdcc]
push edi
push ebp
mov ecx, dword [eax + 0x12c]
push ecx
push edx
call fcn.0041def0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
add esp, 0x18
lea edx, [esp + 0xb8]
push eax
mov eax, dword [esp + 0xdc4]
push ecx
push edx
mov ecx, dword [eax + 0x128]
push ecx
call fcn.0041e220
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0xdd0]
add esp, 0x10
lea eax, [esp + 0x138]
push ebx
push edx
mov edx, dword [ecx + 0x128]
push eax
push edx
call fcn.0041e220
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
add esp, 0x10
lea edx, [esp + 0x1b8]
push eax
mov eax, dword [esp + 0xdc4]
push ecx
push edx
mov ecx, dword [eax + 0x128]
push ecx
call fcn.0041e220
mov edx, dword [esp + 0x48]
add esp, 0x10
lea eax, [esp + 0x238]
push ebx
mov ebx, dword [esp + 0xdc4]
push edx
push eax
mov ecx, dword [ebx + 0x128]
push ecx
call fcn.0041e220
mov eax, dword [ebx + 0x130]
add esp, 0x10
lea edx, [esp + 0x2b8]
push edi
push ebp
push edx
push eax
call fcn.0041e220
mov edx, dword [ebx + 0x12c]
add esp, 0x10
lea ecx, [esp + 0x338]
push edi
push ebp
push ecx
push edx
call fcn.0041e220
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
add esp, 0x10
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x416df4
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x416df4
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x416ddb
cmp edi, dword [esp + 0x98]
jl 0x416d6d
cmp ebx, dword [esp + 0x90]
jge 0x416dac
mov eax, dword [esp + 0x94]
mov edx, dword [0x44a8c0]
lea ecx, [eax + 1]
cmp ecx, edx
je 0x416dac
test eax, eax
je 0x416dac
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0xdbc]
inc edx
inc ecx
dec eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x50], eax
jmp 0x416e3e
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push 0
push 0
mov ecx, dword [esp + 0x3c]
push 0
push 0
push 0
push edx
mov edx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x58]
push 1
push 0
push 0
push ebp
push ecx
push 1
push edx
push esi
push eax
jmp 0x416e24
push 0
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
jmp 0x416e17
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push 0
push eax
mov eax, dword [esp + 0x3c]
push 0
push 0
push 0
push ecx
push edx
push 1
push 0
push 0
push ebp
push eax
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x6c]
push 1
push ecx
push esi
push edx
mov edi, dword [esp + 0xdfc]
push 2
push edi
call fcn.00402810
add esp, 0x48
mov dword [esp + 0x3c], 1
lea ebx, [esp + 0x6b8]
mov ebp, 5
mov eax, 1
mov ecx, ebp
shl eax, cl
mov ecx, dword [esp + 0x14]
test ecx, eax
je 0x416e65
push edi
push ebx
call fcn.00401850
add esp, 8
dec ebp
add ebx, 0x80
cmp ebp, 0xffffffff
jg 0x416e4a
mov edi, dword [edi + 4]
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0xdbc]
mov edx, edi
mov dword [esp + 0x68], edi
sub edx, ecx
add eax, edx
mov dword [esp + 0x7c], eax
xor edi, edi
cmp dword [esp + 0x44], edi
je 0x416ea7
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], edi
sub esi, eax
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x70]
inc ecx
cmp eax, 1
mov dword [esp + 0x40], ecx
jne 0x416edc
mov eax, dword [ebx + 4]
mov ebp, dword [esp + 0x6c]
sub eax, ebp
push eax
call fcn.00412a30
mov ecx, dword [ebx + 4]
add esp, 4
mov dword [esp + 0x6c], ecx
push 3
call fcn.00412980
add esp, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
add eax, 2
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x416160
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x20]
add edx, 2
cmp edx, eax
mov dword [esp + 0x20], edx
jl 0x416141
xor ebp, ebp
cmp dword [0x449f10], ebp
je 0x416f5f
mov ebx, dword [esp + 0xdc0]
lea edx, [esp + 0xa0]
lea eax, [esp + 0xac]
push edx
push eax
push ebx
call fcn.00414ad0
fld dword [esp + 0xb8]
fadd dword [0x449f54]
add esp, 0xc
fstp dword [0x449f54]
fld dword [esp + 0xa0]
fadd dword [0x449f58]
fstp dword [0x449f58]
jmp 0x416f66
mov ebx, dword [esp + 0xdc0]
mov edi, dword [esp + 0xdbc]
push edi
call fcn.00402800
mov eax, dword [esp + 0x74]
add esp, 4
cmp eax, 1
jne 0x416f89
push 3
call fcn.004127d0
add esp, 4
call fcn.00415620
mov edx, dword [esp + 0x9c]
mov ecx, dword [0x449f50]
mov esi, eax
mov eax, dword [0x449fc4]
sub esi, edx
add ecx, esi
cmp eax, ebp
mov dword [0x449f50], ecx
jne 0x4170b1
cmp dword [0x449fe4], ebp
je 0x416feb
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x8c]
sub eax, ecx
mov edx, dword [ebx + 0x104]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, dword [0x4390fc]
shl ecx, 1
push ecx
push edx
push 0x434ab4
push eax
call fcn.0041f590
add esp, 0x10
cmp dword [0x449fc4], ebp
jne 0x4170b1
cmp dword [0x435864], ebp
je 0x4170b1
cmp dword [0x449fd8], ebp
jne 0x4170b1
mov eax, esi
mov ecx, dword [esp + 0x5c]
cdq
idiv dword [0x44a8a8]
mov edx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [ebx + 0x104]
push edx
push eax
push ecx
push str.FRAME__d__P_:__I_BLOCKS:___d___P_BLOCKS:___d___SKIPPED:___d____ld_seconds__n
push 0x435dd8
call fcn.0041f590
mov eax, dword [0x449f10]
add esp, 0x1c
cmp eax, ebp
je 0x4170b1
fld dword [esp + 0xa8]
sub esp, 8
mov edx, dword [ebx + 0x104]
fstp qword [esp]
fld dword [esp + 0xac]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0xb0]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0xcc]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0xd0]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0xd4]
sub esp, 8
fstp qword [esp]
push edx
push 0x434b0c
push 0x435dd8
call fcn.0041f590
add esp, 0x3c
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x8c]
mov ecx, dword [0x449f4c]
mov edi, dword [0x449f38]
sub eax, edx
mov edx, dword [esp + 0x50]
add ecx, eax
mov eax, dword [0x449f34]
mov esi, dword [0x449f3c]
mov dword [0x449f4c], ecx
mov ecx, dword [esp + 0x60]
add edi, edx
mov edx, dword [0x449f40]
add eax, ecx
mov ecx, dword [esp + 0x74]
mov dword [0x449f34], eax
mov eax, dword [esp + 0x5c]
add edx, ecx
mov ecx, dword [0x449f44]
mov dword [0x449f40], edx
mov edx, dword [esp + 0x7c]
add esi, eax
mov eax, dword [0x4ec718]
add ecx, edx
cmp eax, 1
mov dword [0x449f38], edi
mov dword [0x449f3c], esi
mov dword [0x449f44], ecx
jne 0x417168
mov eax, dword [ebx + 0x104]
push eax
call fcn.00403eb0
add esp, 4
test eax, eax
je 0x417168
mov eax, dword [0x449fb8]
push ebx
cmp eax, ebp
je 0x417151
call fcn.0041e630
jmp 0x417156
call fcn.00415250
mov ecx, dword [ebx + 0x104]
add esp, 4
push ecx
call fcn.0041e5f0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xda8
ret
cmp esi, 0x1f
je 0x416968
mov eax, dword [esp + 0x30]
inc esi
inc eax
mov dword [esp + 0x44], 1
mov dword [esp + 0x30], eax
jmp 0x4168c7