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

Disassembly:
sub esp, 0x4c
push ebx
push ebp
mov ecx, dword [esp + 0x58]
push esi
mov esi, dword [esp + 0x64]
push edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0x70
mov eax, dword [esi + 0x154]
mov dword [esp + 0x44], eax
mov eax, dword [esi]
cmp ecx, eax
jg 0x45f58d
cmp ecx, dword [esi + 4]
jl 0x45f58d
mov edx, dword [esp + 0x64]
mov eax, dword [esi + 8]
cmp edx, eax
jg 0x45f58d
cmp edx, dword [esi + 0xc]
jl 0x45f58d
mov eax, dword [esp + 0x6c]
cmp eax, 1
mov eax, dword [esi + 0xdc]
jne 0x45ec87
test eax, eax
je 0x45ec77
mov eax, dword [esi + 0x58]
mov ebp, dword [esi + 0x54]
mov dword [esp + 0x10], eax
mov edi, ecx
mov ebx, edx
jmp 0x45ec9f
mov eax, dword [esi + 0x30]
mov ebp, dword [esi + 0x2c]
mov dword [esp + 0x10], eax
mov edi, ecx
mov ebx, edx
jmp 0x45ec9f
test eax, eax
je 0x45ec93
mov edi, dword [esi + 0x4c]
mov ebx, dword [esi + 0x50]
jmp 0x45ec99
mov edi, dword [esi + 0x24]
mov ebx, dword [esi + 0x28]
mov ebp, ecx
mov dword [esp + 0x10], edx
mov eax, dword [esi + 0xdc]
test eax, eax
jne 0x45ed25
mov ecx, edi
mov eax, dword [esi + 0xd0]
and ecx, 1
mov edx, ebx
add ecx, ecx
and edx, 1
or ecx, edx
mov edx, ebx
sar edx, 1
imul edx, eax
mov ecx, dword [esi + ecx*4 + 0xa0]
mov dword [esp + 0x38], edi
add ecx, edx
mov edx, edi
sar edx, 1
add ecx, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x68], ecx
mov ecx, ebp
and ecx, 1
and edx, 1
add ecx, ecx
mov dword [esp + 0x3c], ebx
or ecx, edx
mov edx, dword [esp + 0x10]
sar edx, 1
imul edx, eax
mov eax, dword [esi + ecx*4 + 0xe4]
mov ecx, ebp
add eax, edx
mov edx, dword [esp + 0x6c]
sar ecx, 1
add eax, ecx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x34], eax
lea eax, [esi + edx*8 + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
jmp 0x45ed86
push esi
push 0
push ebx
push edi
call fcn.004506d0
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x20]
push esi
push 1
lea edx, [esi + ecx*8 + 0x44]
push eax
push ebp
mov dword [esp + 0x68], edx
call fcn.004506d0
mov dword [esp + 0x54], eax
mov eax, edi
cdq
sub eax, edx
add esp, 0x20
sar eax, 1
mov dword [esp + 0x38], eax
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x3c], eax
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x10]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0xd8]
mov edx, dword [esi + 0xdc]
xor ecx, edx
mov edx, dword [esi + 0x98]
shl eax, cl
shl edi, cl
shl ebx, cl
shl ebp, cl
mov ecx, dword [esi + 0x100]
sub eax, ecx
sub edi, edx
mov edx, dword [esi + 0x9c]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0xd4]
sub ebx, edx
mov edx, dword [esi + 0xfc]
lea ecx, [eax - 1]
sub ebp, edx
mov dword [esp + 0x30], ecx
lea ecx, [eax - 1]
mov eax, edi
mov dword [esp + 0x28], ecx
cdq
xor eax, edx
sub eax, edx
neg eax
sar eax, cl
mov dword [esp + 0x20], eax
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
neg eax
sar eax, cl
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx*4 + 0x472194]
mov edx, dword [eax*4 + 0x472194]
mov eax, ebp
add ecx, edx
cdq
xor eax, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x30]
sub eax, edx
neg eax
sar eax, cl
mov ecx, dword [esp + 0x28]
mov edx, dword [eax*4 + 0x472194]
mov eax, dword [esp + 0x2c]
add ecx, edx
cdq
xor eax, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x30]
sub eax, edx
neg eax
sar eax, cl
mov ecx, dword [esp + 0x28]
add ecx, dword [eax*4 + 0x472194]
neg ebp
mov eax, ecx
mov ecx, dword [esi + 0xd4]
sbb ebp, ebp
and ebp, ecx
add eax, ebp
mov edx, eax
mov eax, dword [esp + 0x2c]
neg eax
sbb eax, eax
and eax, ecx
add edx, eax
neg edi
sbb edi, edi
and edi, ecx
add edx, edi
neg ebx
sbb ebx, ebx
and ebx, ecx
lea ebx, [edx + ebx + 2]
lea eax, [esi + 0x170]
shl ebx, 4
xor edx, edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 5
mov dword [esp + 0x2c], eax
jmp 0x45ee9b
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esi + 0xd0]
mov eax, edx
shr eax, 1
imul eax, ecx
and edx, 1
add eax, edx
mov edx, dword [esi + 0x10]
shl eax, 3
cmp ebx, edx
jge 0x45f58d
push ecx
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x48]
lea edx, [eax + ecx]
mov ecx, dword [esp + 0x6c]
push edx
lea edx, [eax + ecx]
mov ecx, dword [esi + 0xb8]
add ecx, eax
push edx
push ecx
push edi
call dword [0x4e28f4]
mov edx, dword [esi + 0x188]
mov ecx, dword [esp + 0x40]
mov eax, dword [esi + 0x16c]
mov ebx, dword [esi + 0x15c]
mov ebp, dword [esi + 0x154]
mov dword [esp + 0x6c], edx
mov edx, dword [ecx]
mov ecx, dword [esi + 0x158]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x168]
push edi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ebx
mov dword [esp + 0x38], ecx
add ebp, 0x100
call dword [0x4e28c0]
add esp, 0x18
test ebx, ebx
je 0x45ef50
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
push edx
push eax
lea eax, [edi + 0x80]
push edi
push eax
call dword [0x4e28d0]
jmp 0x45ef68
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ecx
push edx
lea eax, [edi + 0x80]
push edi
push eax
call dword [0x4e28e4]
add esp, 0x10
cmp eax, 3
jge 0x45ef99
cmp word [edi + 0x82], 0
jne 0x45ef99
cmp word [edi + 0x90], 0
jne 0x45ef99
cmp word [edi + 0x80], 0
jne 0x45ef99
push 0x10
xor ebx, ebx
push 0x472198
jmp 0x45f015
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x4c]
push ecx
or ebx, eax
lea eax, [edi + 0x80]
push eax
mov dword [esp + 0x1c], ebx
call fcn.0043f270
mov ecx, dword [esp + 0x20]
mov ebx, eax
mov eax, dword [esp + 0x58]
add esp, 8
shl ebx, 4
add ebx, ecx
mov dword [esp + 0x18], 0
test eax, eax
je 0x45eff7
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
push edx
push eax
lea eax, [edi + 0x80]
push eax
push ebp
call dword [0x4e28d8]
jmp 0x45f00f
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ecx
lea eax, [edi + 0x80]
push edx
push eax
push ebp
call dword [0x4e28dc]
add esp, 0x10
push 0x10
push ebp
push edi
call dword [0x4e2a04]
imul eax, dword [esp + 0x60]
xor edx, edx
mov ebp, dword [esp + 0x1c]
div dword [esp + 0x64]
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
add esp, 0xc
add edi, 4
mov dword [esp + 0x2c], edi
add eax, ebx
add ebp, eax
mov eax, dword [esp + 0x28]
inc eax
dec edx
cmp eax, 4
mov dword [esp + 0x10], ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], edx
jb 0x45ee93
mov eax, dword [esp + 0x38]
mov ecx, eax
and ecx, 3
sar eax, 1
add eax, dword [ecx*4 + 0x4715e8]
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov edx, eax
and edx, 3
sar eax, 1
add eax, dword [edx*4 + 0x4715e8]
mov edx, eax
mov eax, dword [esp + 0x40]
mov edi, eax
and edi, 3
sar eax, 1
add eax, dword [edi*4 + 0x4715e8]
mov ebx, eax
mov eax, dword [esp + 0x24]
mov edi, eax
and edi, 3
sar eax, 1
mov ebp, dword [edi*4 + 0x4715e8]
mov edi, dword [esi + 0xd0]
add eax, ebp
mov ebp, edx
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0xc4]
mov dword [esp + 0x68], eax
mov eax, ecx
sar eax, 1
shr edi, 1
mov dword [esp + 0x3c], eax
mov eax, edi
sar ebp, 1
imul eax, ebp
mov dword [esp + 0x4c], ebp
mov ebp, dword [esi + 0xb0]
and ecx, 1
and edx, 1
add eax, ebp
mov ebp, dword [esp + 0x3c]
lea ecx, [edx + ecx*2]
add eax, ebp
mov dword [esp + 0x34], ecx
sub ecx, 0
je 0x45f146
dec ecx
je 0x45f129
dec ecx
mov ecx, dword [esi + 0x94]
push ecx
push edi
mov edi, dword [esp + 0x70]
push eax
push edi
je 0x45f11a
call dword [0x4e2940]
add esp, 0x10
mov dword [esp + 0x68], edi
jmp 0x45f14a
call dword [0x4e2934]
add esp, 0x10
mov dword [esp + 0x68], edi
jmp 0x45f14a
mov ecx, dword [esi + 0x94]
push ecx
push edi
mov edi, dword [esp + 0x70]
push eax
push edi
call dword [0x4e2938]
add esp, 0x10
mov dword [esp + 0x68], edi
jmp 0x45f14a
mov dword [esp + 0x68], eax
mov ecx, dword [esi + 0xd0]
mov edx, dword [esp + 0x24]
mov eax, ebx
mov ebp, edx
sar eax, 1
shr ecx, 1
mov dword [esp + 0x38], eax
mov eax, ecx
sar ebp, 1
imul eax, ebp
mov edi, dword [esi + 0xc4]
mov dword [esp + 0x30], ebp
mov ebp, dword [esi + 0xf4]
and ebx, 1
and edx, 1
add eax, ebp
mov ebp, dword [esp + 0x38]
add edi, 0x10
lea edx, [edx + ebx*2]
add eax, ebp
mov dword [esp + 0x2c], edx
sub edx, 0
je 0x45f1c9
dec edx
je 0x45f1b4
dec edx
mov edx, dword [esi + 0x94]
push edx
push ecx
push eax
push edi
je 0x45f1ac
call dword [0x4e2940]
jmp 0x45f1c4
call dword [0x4e2934]
jmp 0x45f1c4
mov edx, dword [esi + 0x94]
push edx
push ecx
push eax
push edi
call dword [0x4e2938]
add esp, 0x10
mov eax, edi
mov ecx, dword [esi + 0xd0]
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x44]
shr ecx, 1
push ecx
push eax
mov eax, dword [esi + 0xbc]
push edx
push eax
push edi
call dword [0x4e28f4]
mov ecx, dword [esi + 0x188]
mov edx, dword [esi + 0x180]
mov ebp, dword [esi + 0x16c]
mov eax, dword [esi + 0x168]
mov ebx, dword [esi + 0x154]
mov dword [esp + 0x64], ecx
mov ecx, dword [esi + 0x15c]
mov dword [esp + 0x68], edx
mov edx, dword [esi + 0x158]
push edi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x70], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x80], edx
add ebx, 0x100
call dword [0x4e28c0]
mov eax, dword [esp + 0x5c]
add esp, 0x18
test eax, eax
push ebp
je 0x45f25d
mov eax, dword [esp + 0x6c]
push eax
lea eax, [edi + 0x80]
push edi
push eax
call dword [0x4e28d0]
jmp 0x45f270
mov ecx, dword [esp + 0x6c]
lea eax, [edi + 0x80]
push ecx
push edi
push eax
call dword [0x4e28e4]
add esp, 0x10
cmp eax, 3
jge 0x45f2a1
cmp word [edi + 0x82], 0
jne 0x45f2a1
cmp word [edi + 0x90], 0
jne 0x45f2a1
cmp word [edi + 0x80], 0
jne 0x45f2a1
push 0x10
xor ebp, ebp
push 0x472198
jmp 0x45f312
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x58]
or al, 2
push edx
mov dword [esp + 0x18], eax
lea eax, [edi + 0x80]
push eax
call fcn.0043f270
mov ecx, dword [esp + 0x20]
mov ebp, eax
mov eax, dword [esp + 0x4c]
add esp, 8
shl ebp, 4
add ebp, ecx
mov dword [esp + 0x18], 0
test eax, eax
je 0x45f2f4
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
push eax
lea eax, [edi + 0x80]
push ecx
push eax
push ebx
call dword [0x4e28d8]
jmp 0x45f30c
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x68]
push edx
push eax
lea eax, [edi + 0x80]
push eax
push ebx
call dword [0x4e28dc]
add esp, 0x10
push 0x10
push ebx
push edi
call dword [0x4e2a04]
imul eax, dword [esp + 0x60]
xor edx, edx
add esp, 0xc
div dword [esp + 0x50]
mov ecx, eax
mov eax, dword [esp + 0x10]
add ecx, ebp
add eax, ecx
mov ecx, dword [esi + 0x10]
cmp eax, ecx
mov dword [esp + 0x10], eax
jge 0x45f58d
mov ecx, dword [esi + 0xd0]
mov edx, dword [esi + 0xb4]
shr ecx, 1
mov eax, ecx
mov ebp, dword [esi + 0x94]
imul eax, dword [esp + 0x4c]
mov ebx, dword [esi + 0xc4]
add eax, edx
mov edx, dword [esp + 0x3c]
add eax, edx
mov edx, dword [esp + 0x34]
sub edx, 0
je 0x45f3a9
push ebp
push ecx
push eax
dec edx
push ebx
je 0x45f39a
dec edx
je 0x45f38b
call dword [0x4e2940]
add esp, 0x10
mov dword [esp + 0x68], ebx
jmp 0x45f3ad
call dword [0x4e2934]
add esp, 0x10
mov dword [esp + 0x68], ebx
jmp 0x45f3ad
call dword [0x4e2938]
add esp, 0x10
mov dword [esp + 0x68], ebx
jmp 0x45f3ad
mov dword [esp + 0x68], eax
mov ecx, dword [esi + 0xd0]
mov edx, dword [esi + 0xf8]
shr ecx, 1
mov eax, ecx
mov ebx, dword [esi + 0xc4]
imul eax, dword [esp + 0x30]
mov ebp, dword [esi + 0x94]
add eax, edx
mov edx, dword [esp + 0x38]
add ebx, 0x10
add eax, edx
mov edx, dword [esp + 0x2c]
sub edx, 0
je 0x45f407
push ebp
push ecx
push eax
dec edx
push ebx
je 0x45f3fc
dec edx
je 0x45f3f4
call dword [0x4e2940]
jmp 0x45f402
call dword [0x4e2934]
jmp 0x45f402
call dword [0x4e2938]
add esp, 0x10
mov eax, ebx
mov edx, dword [esi + 0xd0]
mov ecx, dword [esi + 0xc0]
shr edx, 1
push edx
push eax
mov eax, dword [esp + 0x70]
push eax
push ecx
push edi
call dword [0x4e28f4]
mov edx, dword [esi + 0x188]
mov eax, dword [esi + 0x184]
mov ebx, dword [esi + 0x16c]
mov ecx, dword [esi + 0x168]
mov ebp, dword [esi + 0x154]
mov dword [esp + 0x64], edx
mov edx, dword [esi + 0x15c]
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0x158]
push edi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x80], eax
add ebp, 0x100
call dword [0x4e28c0]
mov eax, dword [esp + 0x5c]
add esp, 0x18
test eax, eax
push ebx
lea eax, [edi + 0x80]
je 0x45f497
mov ecx, dword [esp + 0x6c]
push ecx
push edi
push eax
call dword [0x4e28d0]
jmp 0x45f4a4
mov edx, dword [esp + 0x6c]
push edx
push edi
push eax
call dword [0x4e28e4]
add esp, 0x10
cmp eax, 3
jge 0x45f4d5
cmp word [edi + 0x82], 0
jne 0x45f4d5
cmp word [edi + 0x90], 0
jne 0x45f4d5
cmp word [edi + 0x80], 0
jne 0x45f4d5
push 0x10
xor ebx, ebx
push 0x472198
jmp 0x45f53f
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x14]
push eax
lea eax, [edi + 0x80]
or ebx, 1
push eax
mov dword [esp + 0x1c], ebx
call fcn.0043f270
mov ecx, dword [esp + 0x20]
mov ebx, eax
mov eax, dword [esp + 0x4c]
add esp, 8
shl ebx, 4
add ebx, ecx
test eax, eax
je 0x45f521
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x68]
push ecx
lea eax, [edi + 0x80]
push edx
push eax
push ebp
call dword [0x4e28d8]
jmp 0x45f539
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
push eax
lea eax, [edi + 0x80]
push ecx
push eax
push ebp
call dword [0x4e28dc]
add esp, 0x10
push 0x10
push ebp
push edi
call dword [0x4e2a04]
imul eax, dword [esp + 0x60]
xor edx, edx
mov ecx, dword [esi + 0x10]
div dword [esp + 0x5c]
add esp, 0xc
mov edx, eax
mov eax, dword [esp + 0x10]
add edx, ebx
add eax, edx
cmp eax, ecx
jge 0x45f58d
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x48]
mov dword [eax], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], edx
mov eax, dword [esp + 0x6c]
mov dword [esi + 0x84], eax
mov dword [esi + 0x160], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret