Function at 0x45ef60
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 0x45f8ed
cmp ecx, dword [esi + 4]
jl 0x45f8ed
mov edx, dword [esp + 0x64]
mov eax, dword [esi + 8]
cmp edx, eax
jg 0x45f8ed
cmp edx, dword [esi + 0xc]
jl 0x45f8ed
mov eax, dword [esp + 0x6c]
cmp eax, 1
mov eax, dword [esi + 0xdc]
jne 0x45efe7
test eax, eax
je 0x45efd7
mov eax, dword [esi + 0x58]
mov ebp, dword [esi + 0x54]
mov dword [esp + 0x10], eax
mov edi, ecx
mov ebx, edx
jmp 0x45efff
mov eax, dword [esi + 0x30]
mov ebp, dword [esi + 0x2c]
mov dword [esp + 0x10], eax
mov edi, ecx
mov ebx, edx
jmp 0x45efff
test eax, eax
je 0x45eff3
mov edi, dword [esi + 0x4c]
mov ebx, dword [esi + 0x50]
jmp 0x45eff9
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 0x45f085
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 0x45f0e6
push esi
push 0
push ebx
push edi
call fcn.00450a30
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.00450a30
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 + 0x4721e4]
mov edx, dword [eax*4 + 0x4721e4]
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 + 0x4721e4]
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 + 0x4721e4]
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 0x45f1fb
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 0x45f8ed
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 [0x4e29f4]
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 [0x4e29c0]
add esp, 0x18
test ebx, ebx
je 0x45f2b0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
push edx
push eax
lea eax, [edi + 0x80]
push edi
push eax
call dword [0x4e29d0]
jmp 0x45f2c8
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ecx
push edx
lea eax, [edi + 0x80]
push edi
push eax
call dword [0x4e29e4]
add esp, 0x10
cmp eax, 3
jge 0x45f2f9
cmp word [edi + 0x82], 0
jne 0x45f2f9
cmp word [edi + 0x90], 0
jne 0x45f2f9
cmp word [edi + 0x80], 0
jne 0x45f2f9
push 0x10
xor ebx, ebx
push 0x4721e8
jmp 0x45f375
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.0043f5d0
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 0x45f357
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
push edx
push eax
lea eax, [edi + 0x80]
push eax
push ebp
call dword [0x4e29d8]
jmp 0x45f36f
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ecx
lea eax, [edi + 0x80]
push edx
push eax
push ebp
call dword [0x4e29dc]
add esp, 0x10
push 0x10
push ebp
push edi
call dword [0x4e2b04]
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 0x45f1f3
mov eax, dword [esp + 0x38]
mov ecx, eax
and ecx, 3
sar eax, 1
add eax, dword [ecx*4 + 0x471638]
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov edx, eax
and edx, 3
sar eax, 1
add eax, dword [edx*4 + 0x471638]
mov edx, eax
mov eax, dword [esp + 0x40]
mov edi, eax
and edi, 3
sar eax, 1
add eax, dword [edi*4 + 0x471638]
mov ebx, eax
mov eax, dword [esp + 0x24]
mov edi, eax
and edi, 3
sar eax, 1
mov ebp, dword [edi*4 + 0x471638]
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 0x45f4a6
dec ecx
je 0x45f489
dec ecx
mov ecx, dword [esi + 0x94]
push ecx
push edi
mov edi, dword [esp + 0x70]
push eax
push edi
je 0x45f47a
call dword [0x4e2a40]
add esp, 0x10
mov dword [esp + 0x68], edi
jmp 0x45f4aa
call dword [0x4e2a34]
add esp, 0x10
mov dword [esp + 0x68], edi
jmp 0x45f4aa
mov ecx, dword [esi + 0x94]
push ecx
push edi
mov edi, dword [esp + 0x70]
push eax
push edi
call dword [0x4e2a38]
add esp, 0x10
mov dword [esp + 0x68], edi
jmp 0x45f4aa
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 0x45f529
dec edx
je 0x45f514
dec edx
mov edx, dword [esi + 0x94]
push edx
push ecx
push eax
push edi
je 0x45f50c
call dword [0x4e2a40]
jmp 0x45f524
call dword [0x4e2a34]
jmp 0x45f524
mov edx, dword [esi + 0x94]
push edx
push ecx
push eax
push edi
call dword [0x4e2a38]
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 [0x4e29f4]
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 [0x4e29c0]
mov eax, dword [esp + 0x5c]
add esp, 0x18
test eax, eax
push ebp
je 0x45f5bd
mov eax, dword [esp + 0x6c]
push eax
lea eax, [edi + 0x80]
push edi
push eax
call dword [0x4e29d0]
jmp 0x45f5d0
mov ecx, dword [esp + 0x6c]
lea eax, [edi + 0x80]
push ecx
push edi
push eax
call dword [0x4e29e4]
add esp, 0x10
cmp eax, 3
jge 0x45f601
cmp word [edi + 0x82], 0
jne 0x45f601
cmp word [edi + 0x90], 0
jne 0x45f601
cmp word [edi + 0x80], 0
jne 0x45f601
push 0x10
xor ebp, ebp
push 0x4721e8
jmp 0x45f672
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.0043f5d0
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 0x45f654
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
push eax
lea eax, [edi + 0x80]
push ecx
push eax
push ebx
call dword [0x4e29d8]
jmp 0x45f66c
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x68]
push edx
push eax
lea eax, [edi + 0x80]
push eax
push ebx
call dword [0x4e29dc]
add esp, 0x10
push 0x10
push ebx
push edi
call dword [0x4e2b04]
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 0x45f8ed
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 0x45f709
push ebp
push ecx
push eax
dec edx
push ebx
je 0x45f6fa
dec edx
je 0x45f6eb
call dword [0x4e2a40]
add esp, 0x10
mov dword [esp + 0x68], ebx
jmp 0x45f70d
call dword [0x4e2a34]
add esp, 0x10
mov dword [esp + 0x68], ebx
jmp 0x45f70d
call dword [0x4e2a38]
add esp, 0x10
mov dword [esp + 0x68], ebx
jmp 0x45f70d
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 0x45f767
push ebp
push ecx
push eax
dec edx
push ebx
je 0x45f75c
dec edx
je 0x45f754
call dword [0x4e2a40]
jmp 0x45f762
call dword [0x4e2a34]
jmp 0x45f762
call dword [0x4e2a38]
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 [0x4e29f4]
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 [0x4e29c0]
mov eax, dword [esp + 0x5c]
add esp, 0x18
test eax, eax
push ebx
lea eax, [edi + 0x80]
je 0x45f7f7
mov ecx, dword [esp + 0x6c]
push ecx
push edi
push eax
call dword [0x4e29d0]
jmp 0x45f804
mov edx, dword [esp + 0x6c]
push edx
push edi
push eax
call dword [0x4e29e4]
add esp, 0x10
cmp eax, 3
jge 0x45f835
cmp word [edi + 0x82], 0
jne 0x45f835
cmp word [edi + 0x90], 0
jne 0x45f835
cmp word [edi + 0x80], 0
jne 0x45f835
push 0x10
xor ebx, ebx
push 0x4721e8
jmp 0x45f89f
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.0043f5d0
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 0x45f881
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x68]
push ecx
lea eax, [edi + 0x80]
push edx
push eax
push ebp
call dword [0x4e29d8]
jmp 0x45f899
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
push eax
lea eax, [edi + 0x80]
push ecx
push eax
push ebp
call dword [0x4e29dc]
add esp, 0x10
push 0x10
push ebp
push edi
call dword [0x4e2b04]
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 0x45f8ed
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