Function at 0x45eeb0
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 0x45f83d
cmp ecx, dword [esi + 4]
jl 0x45f83d
mov edx, dword [esp + 0x64]
mov eax, dword [esi + 8]
cmp edx, eax
jg 0x45f83d
cmp edx, dword [esi + 0xc]
jl 0x45f83d
mov eax, dword [esp + 0x6c]
cmp eax, 1
mov eax, dword [esi + 0xdc]
jne 0x45ef37
test eax, eax
je 0x45ef27
mov eax, dword [esi + 0x58]
mov ebp, dword [esi + 0x54]
mov dword [esp + 0x10], eax
mov edi, ecx
mov ebx, edx
jmp 0x45ef4f
mov eax, dword [esi + 0x30]
mov ebp, dword [esi + 0x2c]
mov dword [esp + 0x10], eax
mov edi, ecx
mov ebx, edx
jmp 0x45ef4f
test eax, eax
je 0x45ef43
mov edi, dword [esi + 0x4c]
mov ebx, dword [esi + 0x50]
jmp 0x45ef49
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 0x45efd5
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 0x45f036
push esi
push 0
push ebx
push edi
call fcn.00450980
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.00450980
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 + 0x4721f4]
mov edx, dword [eax*4 + 0x4721f4]
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 + 0x4721f4]
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 + 0x4721f4]
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 0x45f14b
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 0x45f83d
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 [0x4e2994]
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 [0x4e2960]
add esp, 0x18
test ebx, ebx
je 0x45f200
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
push edx
push eax
lea eax, [edi + 0x80]
push edi
push eax
call dword [0x4e2970]
jmp 0x45f218
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ecx
push edx
lea eax, [edi + 0x80]
push edi
push eax
call dword [0x4e2984]
add esp, 0x10
cmp eax, 3
jge 0x45f249
cmp word [edi + 0x82], 0
jne 0x45f249
cmp word [edi + 0x90], 0
jne 0x45f249
cmp word [edi + 0x80], 0
jne 0x45f249
push 0x10
xor ebx, ebx
push 0x4721f8
jmp 0x45f2c5
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.0043f520
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 0x45f2a7
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
push edx
push eax
lea eax, [edi + 0x80]
push eax
push ebp
call dword [0x4e2978]
jmp 0x45f2bf
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ecx
lea eax, [edi + 0x80]
push edx
push eax
push ebp
call dword [0x4e297c]
add esp, 0x10
push 0x10
push ebp
push edi
call dword [0x4e2aa4]
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 0x45f143
mov eax, dword [esp + 0x38]
mov ecx, eax
and ecx, 3
sar eax, 1
add eax, dword [ecx*4 + 0x471648]
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov edx, eax
and edx, 3
sar eax, 1
add eax, dword [edx*4 + 0x471648]
mov edx, eax
mov eax, dword [esp + 0x40]
mov edi, eax
and edi, 3
sar eax, 1
add eax, dword [edi*4 + 0x471648]
mov ebx, eax
mov eax, dword [esp + 0x24]
mov edi, eax
and edi, 3
sar eax, 1
mov ebp, dword [edi*4 + 0x471648]
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 0x45f3f6
dec ecx
je 0x45f3d9
dec ecx
mov ecx, dword [esi + 0x94]
push ecx
push edi
mov edi, dword [esp + 0x70]
push eax
push edi
je 0x45f3ca
call dword [0x4e29e0]
add esp, 0x10
mov dword [esp + 0x68], edi
jmp 0x45f3fa
call dword [0x4e29d4]
add esp, 0x10
mov dword [esp + 0x68], edi
jmp 0x45f3fa
mov ecx, dword [esi + 0x94]
push ecx
push edi
mov edi, dword [esp + 0x70]
push eax
push edi
call dword [0x4e29d8]
add esp, 0x10
mov dword [esp + 0x68], edi
jmp 0x45f3fa
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 0x45f479
dec edx
je 0x45f464
dec edx
mov edx, dword [esi + 0x94]
push edx
push ecx
push eax
push edi
je 0x45f45c
call dword [0x4e29e0]
jmp 0x45f474
call dword [0x4e29d4]
jmp 0x45f474
mov edx, dword [esi + 0x94]
push edx
push ecx
push eax
push edi
call dword [0x4e29d8]
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 [0x4e2994]
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 [0x4e2960]
mov eax, dword [esp + 0x5c]
add esp, 0x18
test eax, eax
push ebp
je 0x45f50d
mov eax, dword [esp + 0x6c]
push eax
lea eax, [edi + 0x80]
push edi
push eax
call dword [0x4e2970]
jmp 0x45f520
mov ecx, dword [esp + 0x6c]
lea eax, [edi + 0x80]
push ecx
push edi
push eax
call dword [0x4e2984]
add esp, 0x10
cmp eax, 3
jge 0x45f551
cmp word [edi + 0x82], 0
jne 0x45f551
cmp word [edi + 0x90], 0
jne 0x45f551
cmp word [edi + 0x80], 0
jne 0x45f551
push 0x10
xor ebp, ebp
push 0x4721f8
jmp 0x45f5c2
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.0043f520
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 0x45f5a4
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
push eax
lea eax, [edi + 0x80]
push ecx
push eax
push ebx
call dword [0x4e2978]
jmp 0x45f5bc
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x68]
push edx
push eax
lea eax, [edi + 0x80]
push eax
push ebx
call dword [0x4e297c]
add esp, 0x10
push 0x10
push ebx
push edi
call dword [0x4e2aa4]
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 0x45f83d
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 0x45f659
push ebp
push ecx
push eax
dec edx
push ebx
je 0x45f64a
dec edx
je 0x45f63b
call dword [0x4e29e0]
add esp, 0x10
mov dword [esp + 0x68], ebx
jmp 0x45f65d
call dword [0x4e29d4]
add esp, 0x10
mov dword [esp + 0x68], ebx
jmp 0x45f65d
call dword [0x4e29d8]
add esp, 0x10
mov dword [esp + 0x68], ebx
jmp 0x45f65d
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 0x45f6b7
push ebp
push ecx
push eax
dec edx
push ebx
je 0x45f6ac
dec edx
je 0x45f6a4
call dword [0x4e29e0]
jmp 0x45f6b2
call dword [0x4e29d4]
jmp 0x45f6b2
call dword [0x4e29d8]
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 [0x4e2994]
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 [0x4e2960]
mov eax, dword [esp + 0x5c]
add esp, 0x18
test eax, eax
push ebx
lea eax, [edi + 0x80]
je 0x45f747
mov ecx, dword [esp + 0x6c]
push ecx
push edi
push eax
call dword [0x4e2970]
jmp 0x45f754
mov edx, dword [esp + 0x6c]
push edx
push edi
push eax
call dword [0x4e2984]
add esp, 0x10
cmp eax, 3
jge 0x45f785
cmp word [edi + 0x82], 0
jne 0x45f785
cmp word [edi + 0x90], 0
jne 0x45f785
cmp word [edi + 0x80], 0
jne 0x45f785
push 0x10
xor ebx, ebx
push 0x4721f8
jmp 0x45f7ef
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.0043f520
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 0x45f7d1
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x68]
push ecx
lea eax, [edi + 0x80]
push edx
push eax
push ebp
call dword [0x4e2978]
jmp 0x45f7e9
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
push eax
lea eax, [edi + 0x80]
push ecx
push eax
push ebp
call dword [0x4e297c]
add esp, 0x10
push 0x10
push ebp
push edi
call dword [0x4e2aa4]
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 0x45f83d
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