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

Disassembly:
sub esp, 0x20
mov ecx, dword [esp + 0x38]
push ebx
push ebp
push esi
mov eax, dword [ecx + 4]
push edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0xec]
cmp edx, 0x10
jne 0x45210c
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x64]
imul edi, esi
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
push esi
mov ebx, dword [edx]
lea eax, [edi + ecx]
mov ecx, dword [esp + 0x58]
shl eax, 4
mov ebp, dword [ecx]
add ebx, eax
add ebp, eax
push ebx
push ebp
call dword [0x4e28f0]
lea edx, [ebx + 8]
push esi
lea eax, [ebp + 8]
push edx
push eax
call dword [0x4e28f0]
lea ecx, [ebx + esi*8]
push esi
lea edx, [ebp + esi*8]
push ecx
push edx
call dword [0x4e28f0]
lea eax, [ebx + esi*8 + 8]
push esi
lea ecx, [ebp + esi*8 + 8]
push eax
push ecx
call dword [0x4e28f0]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x84]
shr edi, 1
mov eax, dword [ebp + 4]
add edi, ebx
mov ebx, dword [esp + 0x70]
shl edi, 3
mov edx, dword [ebx + 4]
add eax, edi
shr esi, 1
add edx, edi
push esi
push edx
push eax
call dword [0x4e28f0]
mov ecx, dword [ebx + 8]
mov edx, dword [ebp + 8]
add ecx, edi
push esi
add edx, edi
push ecx
push edx
call dword [0x4e28f0]
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
xor ebx, ebx
cmp edx, ebx
je 0x452359
cmp edx, 1
je 0x452359
mov edi, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
cmp edi, ebx
mov dword [esp + 0x1c], ebx
je 0x45213a
add eax, 0x124
mov dword [esp + 0x50], eax
jmp 0x45213e
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], ecx
jmp 0x45215c
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x68]
mov ebp, dword [eax + ebx*8]
mov ecx, dword [eax + ebx*8 + 4]
test edi, edi
mov dword [esp + 0x34], ecx
mov eax, ebp
je 0x452172
cdq
sub eax, edx
sar eax, 1
mov edx, dword [esp + 0x18]
add edx, eax
mov eax, ecx
test edi, edi
mov dword [esp + 0x18], edx
je 0x452187
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x3c]
mov edi, ebx
add ecx, eax
sar edi, 1
lea eax, [edx + edx]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x4c]
add edi, eax
mov eax, dword [esp + 0x38]
and ebx, 1
mov edx, dword [ecx]
add eax, eax
add ebx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x44]
mov ecx, dword [eax]
mov eax, dword [edx]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov eax, dword [edx]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [ecx]
shl edi, 3
shl ebx, 3
test eax, eax
je 0x45224e
mov eax, dword [esp + 0x34]
mov edx, eax
or edx, ebp
test dl, 3
je 0x452228
mov edx, dword [esp + 0x6c]
push edx
push esi
push eax
push ebp
mov ebp, dword [esp + 0x20]
push edi
push ebx
lea eax, [ebp + 0x60]
lea edx, [ebp + 0x40]
push eax
lea eax, [ebp + 0x20]
push edx
push eax
push ecx
mov ecx, edi
imul ecx, esi
mov edx, ebp
sub edx, ecx
sub edx, ebx
push edx
call fcn.00452900
add esp, 0x2c
mov eax, ebp
jmp 0x4522f0
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, edi
imul eax, esi
mov dword [esp + 0x64], eax
mov eax, ebp
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x64]
sar eax, 2
jmp 0x4522ea
mov edx, dword [esp + 0x34]
mov eax, ebp
and eax, 1
and edx, 1
lea eax, [edx + eax*2]
sub eax, 0
je 0x4522cd
dec eax
je 0x4522a9
dec eax
mov eax, dword [esp + 0x34]
je 0x45228b
dec eax
mov ecx, dword [esp + 0x64]
cdq
sub eax, edx
sar eax, 1
add eax, edi
imul eax, esi
mov dword [esp + 0x34], eax
lea eax, [ebp - 1]
cdq
sub eax, edx
mov edx, dword [esp + 0x34]
jmp 0x4522e8
cdq
sub eax, edx
mov ecx, dword [esp + 0x24]
sar eax, 1
add eax, edi
imul eax, esi
mov dword [esp + 0x64], eax
lea eax, [ebp - 1]
cdq
sub eax, edx
mov edx, dword [esp + 0x64]
jmp 0x4522e8
mov ecx, dword [esp + 0x34]
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x28]
cdq
sub eax, edx
sar eax, 1
add eax, edi
imul eax, esi
mov dword [esp + 0x64], eax
mov eax, ebp
cdq
sub eax, edx
mov edx, dword [esp + 0x64]
jmp 0x4522e8
mov eax, dword [esp + 0x34]
cdq
sub eax, edx
sar eax, 1
add eax, edi
imul eax, esi
mov dword [esp + 0x64], eax
mov eax, ebp
cdq
sub eax, edx
mov edx, dword [esp + 0x64]
sar eax, 1
add ecx, edx
add eax, ecx
add eax, ebx
imul edi, esi
mov ebp, dword [esp + 0x2c]
push esi
add edi, ebp
push eax
add edi, ebx
push edi
mov edi, dword [esp + 0x2c]
push edi
call dword [0x4e28ec]
mov eax, dword [esp + 0x24]
add esp, 0x10
inc eax
add edi, 0x80
cmp eax, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edi
jl 0x452150
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x58]
mov edx, eax
and edx, 0xf
sar eax, 3
add eax, dword [edx*4 + 0x471588]
mov edx, eax
mov eax, dword [esp + 0x1c]
mov ecx, eax
and ecx, 0xf
sar eax, 3
add eax, dword [ecx*4 + 0x471588]
jmp 0x452881
cmp dword [eax + 0x1a8], ebx
je 0x452479
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x64]
mov ebx, esi
mov edx, dword [esp + 0x38]
imul ebx, edi
mov ebp, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x6c], ebx
add ebx, edx
mov eax, dword [ebp]
mov edx, dword [ecx]
shl ebx, 4
add eax, ebx
push edi
push eax
mov eax, dword [esp + 0x60]
add edx, ebx
push edx
push eax
call dword [0x4e28ec]
mov ecx, dword [ebp]
mov eax, dword [esp + 0x64]
push edi
lea edx, [ebx + ecx + 8]
mov ecx, dword [eax]
push edx
lea edx, [ecx + ebx + 8]
mov ebx, dword [esp + 0x70]
push edx
lea eax, [ebx + 0x80]
push eax
call dword [0x4e28ec]
shl esi, 4
add esi, 8
mov ecx, dword [esp + 0x58]
imul esi, edi
mov eax, dword [esp + 0x74]
mov edx, dword [ebp]
shl ecx, 4
add esi, ecx
mov ecx, dword [eax]
add edx, esi
push edi
push edx
add ecx, esi
lea edx, [ebx + 0x100]
push ecx
push edx
call dword [0x4e28ec]
mov eax, dword [ebp]
mov edx, dword [esp + 0x84]
push edi
lea ecx, [esi + eax + 8]
mov eax, dword [edx]
push ecx
lea edx, [ebx + 0x180]
lea ecx, [eax + esi + 8]
push ecx
push edx
call dword [0x4e28ec]
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x78]
add esp, 0x40
lea ecx, [eax*8]
mov eax, dword [ebp + 4]
shr ecx, 1
shr edi, 1
lea esi, [ecx + edx*8]
mov ecx, dword [esp + 0x54]
add eax, esi
push edi
mov edx, dword [ecx + 4]
push eax
add edx, esi
lea eax, [ebx + 0x200]
push edx
push eax
call dword [0x4e28ec]
mov ecx, dword [ebp + 8]
push edi
add ecx, esi
mov edx, dword [esp + 0x68]
push ecx
add ebx, 0x280
mov eax, dword [edx + 8]
add eax, esi
push eax
push ebx
call dword [0x4e28ec]
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
cmp dword [esp + 0x68], ebx
je 0x452495
mov edx, dword [eax + 0x124]
mov edi, dword [eax + 0x128]
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], edi
jmp 0x4524a4
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], eax
mov edi, eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x4c]
mov ecx, dword [ecx]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esi]
mov ebx, dword [esp + 0x38]
mov edx, dword [edx]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x68]
mov ecx, dword [ecx]
shl ebp, 4
shl ebx, 4
test esi, esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x50], ebx
je 0x452796
mov esi, dword [esp + 0x48]
mov edx, edi
or edx, esi
mov esi, dword [esp + 0x64]
test dl, 3
je 0x452767
mov eax, dword [esp + 0x34]
mov edi, dword [0x478c68]
lea edx, [eax + ebp*4]
mov eax, dword [esp + 0x48]
sar edx, 2
imul edx, esi
lea ebx, [eax + ebx*4]
mov eax, dword [esp + 0x34]
add ecx, edx
mov edx, dword [esp + 0x48]
and eax, 3
and edx, 3
sar ebx, 2
shl eax, 2
add ebx, ecx
mov ecx, dword [esp + 0x10]
or eax, edx
cmp eax, 0xf
lea ebp, [ecx + 0x20]
ja case.default.0x452541
jmp dword [eax*4 + 0x4528bc]
mov edi, dword [esp + 0x10]
push esi
push ebx
push edi
call dword [0x4e28f0]
lea eax, [ebx + 8]
push esi
lea ecx, [edi + 8]
push eax
push ecx
call dword [0x4e28f0]
lea edx, [ebx + esi*8]
push esi
lea eax, [edi + esi*8]
push edx
push eax
call dword [0x4e28f0]
lea ecx, [ebx + esi*8 + 8]
push esi
lea edx, [edi + esi*8 + 8]
push ecx
push edx
call dword [0x4e28f0]
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x5c]
add esp, 0x30
jmp 0x4527b7
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x10]
push eax
push esi
push 0x10
push ebx
push ecx
call dword [edi + 4]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
add esp, 0x14
jmp 0x4527b7
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x10]
push edx
push esi
push 0x10
push ebx
push eax
call dword [edi]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
add esp, 0x14
jmp 0x4527b7
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x10]
push ecx
push esi
push 0x10
push ebx
push edx
call dword [edi + 8]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
add esp, 0x14
jmp 0x4527b7
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x10]
push eax
push esi
push 0x10
push ebx
push ecx
call dword [edi + 0x10]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
add esp, 0x14
jmp 0x4527b7
mov edx, dword [esp + 0x6c]
push edx
push esi
push 0x11
push ebx
push ebp
call dword [edi + 4]
jmp 0x452654
mov edx, dword [esp + 0x6c]
push edx
push esi
push 0x11
push ebx
push ebp
call dword [edi]
jmp 0x452654
mov edx, dword [esp + 0x6c]
push edx
push esi
push 0x11
push ebx
push ebp
call dword [edi + 8]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x24]
push eax
push esi
push 0x10
push ebp
push ecx
call dword [edi + 0x10]
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x54]
add esp, 0x28
jmp 0x4527b7
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x10]
push edx
push esi
push 0x10
push ebx
push eax
call dword [edi + 0xc]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
add esp, 0x14
jmp 0x4527b7
mov ecx, dword [esp + 0x6c]
push ecx
push esi
push 0x11
push ebx
push ebp
call dword [edi + 4]
jmp 0x4526cb
mov ecx, dword [esp + 0x6c]
push ecx
push esi
push 0x11
push ebx
push ebp
call dword [edi]
jmp 0x4526cb
mov ecx, dword [esp + 0x6c]
push ecx
push esi
push 0x11
push ebx
push ebp
call dword [edi + 8]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x24]
push edx
push esi
push 0x10
push ebp
push eax
call dword [edi + 0xc]
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x54]
add esp, 0x28
jmp 0x4527b7
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x10]
push ecx
push esi
push 0x10
push ebx
push edx
call dword [edi + 0x14]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
add esp, 0x14
jmp 0x4527b7
mov eax, dword [esp + 0x6c]
push eax
push esi
push 0x11
push ebx
push ebp
call dword [edi + 4]
jmp 0x452742
mov eax, dword [esp + 0x6c]
push eax
push esi
push 0x11
push ebx
push ebp
call dword [edi]
jmp 0x452742
mov eax, dword [esp + 0x6c]
push eax
push esi
push 0x11
push ebx
push ebp
call dword [edi + 8]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x24]
push ecx
push esi
push 0x10
push ebp
push edx
call dword [edi + 0x14]
add esp, 0x28
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x2c]
jmp 0x4527b7
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, ebp
imul eax, esi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x48]
cdq
and edx, 3
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x64]
sar edi, 2
add ecx, eax
add edi, ecx
add edi, ebx
jmp 0x4527b7
mov esi, dword [esp + 0x64]
push esi
push edi
mov edi, dword [esp + 0x50]
push edi
push 1
push ebp
push ebx
push edx
push eax
mov eax, dword [esp + 0x64]
push eax
push ecx
call fcn.00452b90
add esp, 0x28
mov edi, eax
mov ecx, ebp
mov eax, dword [esp + 0x4c]
imul ecx, esi
mov edx, dword [esp + 0x58]
add ecx, eax
push esi
push edi
lea eax, [ecx + ebx]
push eax
push edx
mov dword [esp + 0x74], eax
call dword [0x4e28ec]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x68]
lea eax, [edi + 8]
push esi
add ecx, 8
push eax
add edx, 0x80
push ecx
push edx
call dword [0x4e28ec]
add ebp, 8
mov eax, dword [esp + 0x6c]
imul ebp, esi
add ebp, eax
lea eax, [edi + esi*8]
add ebx, ebp
mov ebp, dword [esp + 0x78]
push esi
push eax
lea ecx, [ebp + 0x100]
push ebx
push ecx
call dword [0x4e28ec]
lea edx, [edi + esi*8 + 8]
push esi
add ebx, 8
push edx
lea eax, [ebp + 0x180]
push ebx
push eax
call dword [0x4e28ec]
mov eax, dword [esp + 0xa8]
add esp, 0x40
test eax, eax
mov eax, dword [esp + 0x48]
je 0x45285d
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x34]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x34]
mov edx, eax
and edx, 3
sar eax, 1
add eax, dword [edx*4 + 0x4715e8]
mov edx, eax
mov eax, ecx
and eax, 3
sar ecx, 1
add ecx, dword [eax*4 + 0x4715e8]
mov eax, ecx
mov ecx, dword [esp + 0x6c]
add ebp, 0x200
shr esi, 1
push ecx
mov ecx, dword [esp + 0x14]
push esi
push ebp
push ecx
mov ecx, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x54]
push ecx
push eax
push edx
call fcn.00452c40
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret