Function at 0x466e10
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 0x46779d
cmp ecx, dword [esi + 4]
jl 0x46779d
mov edx, dword [esp + 0x64]
mov eax, dword [esi + 8]
cmp edx, eax
jg 0x46779d
cmp edx, dword [esi + 0xc]
jl 0x46779d
mov eax, dword [esp + 0x6c]
cmp eax, 1
mov eax, dword [esi + 0xdc]
jne 0x466e97
test eax, eax
je 0x466e87
mov eax, dword [esi + 0x58]
mov ebp, dword [esi + 0x54]
mov dword [esp + 0x10], eax
mov edi, ecx
mov ebx, edx
jmp 0x466eaf
mov eax, dword [esi + 0x30]
mov ebp, dword [esi + 0x2c]
mov dword [esp + 0x10], eax
mov edi, ecx
mov ebx, edx
jmp 0x466eaf
test eax, eax
je 0x466ea3
mov edi, dword [esi + 0x4c]
mov ebx, dword [esi + 0x50]
jmp 0x466ea9
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 0x466f35
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 0x466f96
push esi
push 0
push ebx
push edi
call fcn.004588e0
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.004588e0
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 + 0x408194]
mov edx, dword [eax*4 + 0x408194]
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 + 0x408194]
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 + 0x408194]
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 0x4670ab
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 0x46779d
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 [0x4ee5f4]
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 [fcn.004ee5c0]
add esp, 0x18
test ebx, ebx
je 0x467160
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
push edx
push eax
lea eax, [edi + 0x80]
push edi
push eax
call dword [0x4ee5d0]
jmp 0x467178
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ecx
push edx
lea eax, [edi + 0x80]
push edi
push eax
call dword [0x4ee5e4]
add esp, 0x10
cmp eax, 3
jge 0x4671a9
cmp word [edi + 0x82], 0
jne 0x4671a9
cmp word [edi + 0x90], 0
jne 0x4671a9
cmp word [edi + 0x80], 0
jne 0x4671a9
push 0x10
xor ebx, ebx
push 0x408198
jmp 0x467225
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.00447480
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 0x467207
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
push edx
push eax
lea eax, [edi + 0x80]
push eax
push ebp
call dword [0x4ee5d8]
jmp 0x46721f
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ecx
lea eax, [edi + 0x80]
push edx
push eax
push ebp
call dword [0x4ee5dc]
add esp, 0x10
push 0x10
push ebp
push edi
call dword [0x4ee704]
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 0x4670a3
mov eax, dword [esp + 0x38]
mov ecx, eax
and ecx, 3
sar eax, 1
add eax, dword [ecx*4 + 0x4075e8]
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov edx, eax
and edx, 3
sar eax, 1
add eax, dword [edx*4 + 0x4075e8]
mov edx, eax
mov eax, dword [esp + 0x40]
mov edi, eax
and edi, 3
sar eax, 1
add eax, dword [edi*4 + 0x4075e8]
mov ebx, eax
mov eax, dword [esp + 0x24]
mov edi, eax
and edi, 3
sar eax, 1
mov ebp, dword [edi*4 + 0x4075e8]
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 0x467356
dec ecx
je 0x467339
dec ecx
mov ecx, dword [esi + 0x94]
push ecx
push edi
mov edi, dword [esp + 0x70]
push eax
push edi
je 0x46732a
call dword [fcn.004ee640]
add esp, 0x10
mov dword [esp + 0x68], edi
jmp 0x46735a
call dword [fcn.004ee634]
add esp, 0x10
mov dword [esp + 0x68], edi
jmp 0x46735a
mov ecx, dword [esi + 0x94]
push ecx
push edi
mov edi, dword [esp + 0x70]
push eax
push edi
call dword [fcn.004ee638]
add esp, 0x10
mov dword [esp + 0x68], edi
jmp 0x46735a
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 0x4673d9
dec edx
je 0x4673c4
dec edx
mov edx, dword [esi + 0x94]
push edx
push ecx
push eax
push edi
je 0x4673bc
call dword [fcn.004ee640]
jmp 0x4673d4
call dword [fcn.004ee634]
jmp 0x4673d4
mov edx, dword [esi + 0x94]
push edx
push ecx
push eax
push edi
call dword [fcn.004ee638]
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 [0x4ee5f4]
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 [fcn.004ee5c0]
mov eax, dword [esp + 0x5c]
add esp, 0x18
test eax, eax
push ebp
je 0x46746d
mov eax, dword [esp + 0x6c]
push eax
lea eax, [edi + 0x80]
push edi
push eax
call dword [0x4ee5d0]
jmp 0x467480
mov ecx, dword [esp + 0x6c]
lea eax, [edi + 0x80]
push ecx
push edi
push eax
call dword [0x4ee5e4]
add esp, 0x10
cmp eax, 3
jge 0x4674b1
cmp word [edi + 0x82], 0
jne 0x4674b1
cmp word [edi + 0x90], 0
jne 0x4674b1
cmp word [edi + 0x80], 0
jne 0x4674b1
push 0x10
xor ebp, ebp
push 0x408198
jmp 0x467522
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.00447480
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 0x467504
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
push eax
lea eax, [edi + 0x80]
push ecx
push eax
push ebx
call dword [0x4ee5d8]
jmp 0x46751c
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x68]
push edx
push eax
lea eax, [edi + 0x80]
push eax
push ebx
call dword [0x4ee5dc]
add esp, 0x10
push 0x10
push ebx
push edi
call dword [0x4ee704]
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 0x46779d
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 0x4675b9
push ebp
push ecx
push eax
dec edx
push ebx
je 0x4675aa
dec edx
je 0x46759b
call dword [fcn.004ee640]
add esp, 0x10
mov dword [esp + 0x68], ebx
jmp 0x4675bd
call dword [fcn.004ee634]
add esp, 0x10
mov dword [esp + 0x68], ebx
jmp 0x4675bd
call dword [fcn.004ee638]
add esp, 0x10
mov dword [esp + 0x68], ebx
jmp 0x4675bd
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 0x467617
push ebp
push ecx
push eax
dec edx
push ebx
je 0x46760c
dec edx
je 0x467604
call dword [fcn.004ee640]
jmp 0x467612
call dword [fcn.004ee634]
jmp 0x467612
call dword [fcn.004ee638]
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 [0x4ee5f4]
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 [fcn.004ee5c0]
mov eax, dword [esp + 0x5c]
add esp, 0x18
test eax, eax
push ebx
lea eax, [edi + 0x80]
je 0x4676a7
mov ecx, dword [esp + 0x6c]
push ecx
push edi
push eax
call dword [0x4ee5d0]
jmp 0x4676b4
mov edx, dword [esp + 0x6c]
push edx
push edi
push eax
call dword [0x4ee5e4]
add esp, 0x10
cmp eax, 3
jge 0x4676e5
cmp word [edi + 0x82], 0
jne 0x4676e5
cmp word [edi + 0x90], 0
jne 0x4676e5
cmp word [edi + 0x80], 0
jne 0x4676e5
push 0x10
xor ebx, ebx
push 0x408198
jmp 0x46774f
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.00447480
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 0x467731
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x68]
push ecx
lea eax, [edi + 0x80]
push edx
push eax
push ebp
call dword [0x4ee5d8]
jmp 0x467749
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
push eax
lea eax, [edi + 0x80]
push ecx
push eax
push ebp
call dword [0x4ee5dc]
add esp, 0x10
push 0x10
push ebp
push edi
call dword [0x4ee704]
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 0x46779d
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