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

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x24
mov eax, dword [ecx + 0xec]
push ebx
push ebp
push esi
cmp eax, 0x10
push edi
jne 0x46e3a0
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x68]
imul edi, esi
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x58]
add eax, edi
mov ebx, dword [ecx]
push esi
mov ebp, dword [edx]
shl eax, 4
add ebx, eax
add ebp, eax
push ebx
push ebp
call dword [0x4fe6f0]
lea eax, [ebx + 8]
push esi
lea ecx, [ebp + 8]
push eax
push ecx
call dword [0x4fe6f0]
lea edx, [ebx + esi*8]
push esi
lea eax, [ebp + esi*8]
push edx
push eax
call dword [0x4fe6f0]
lea ecx, [ebx + esi*8 + 8]
push esi
lea edx, [ebp + esi*8 + 8]
push ecx
push edx
call dword [0x4fe6f0]
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x88]
shr edi, 1
mov ecx, dword [ebp + 4]
add edi, eax
mov eax, dword [ebx + 4]
shl edi, 3
shr esi, 1
add eax, edi
push esi
add ecx, edi
push eax
push ecx
call dword [0x4fe6f0]
mov edx, dword [ebx + 8]
mov eax, dword [ebp + 8]
add edx, edi
push esi
add eax, edi
push edx
push eax
call dword [0x4fe6f0]
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
xor ebx, ebx
cmp eax, ebx
je 0x46e7fe
cmp eax, 1
je 0x46e7fe
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x14], ebx
cmp edi, ebx
mov dword [esp + 0x18], ebx
je 0x46e3cf
add ecx, 0x124
mov dword [esp + 0x54], ecx
jmp 0x46e3d3
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], edx
jmp 0x46e3f1
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x6c]
mov eax, dword [ecx + ebx*8]
mov ecx, dword [ecx + ebx*8 + 4]
test edi, edi
mov dword [esp + 0x38], eax
je 0x46e405
cdq
sub eax, edx
sar eax, 1
mov edx, dword [esp + 0x14]
add edx, eax
mov eax, ecx
test edi, edi
mov dword [esp + 0x14], edx
je 0x46e41a
cdq
sub eax, edx
sar eax, 1
mov edx, dword [esp + 0x18]
mov ebp, ebx
add edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x3c]
sar ebp, 1
add eax, eax
and ebx, 1
add ebp, eax
lea eax, [edx + edx]
add ebx, eax
mov eax, dword [esp + 0x50]
shl ebp, 3
mov edx, dword [eax]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], edx
mov edx, dword [eax]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], edx
mov edx, dword [eax]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x58]
mov edi, dword [eax]
mov eax, dword [edx]
mov dword [esp + 0x68], edi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x6c]
shl ebx, 3
test eax, eax
mov dword [esp + 0x24], ebx
je 0x46e6f7
mov eax, dword [esp + 0x38]
mov edx, ecx
or edx, eax
test dl, 3
je 0x46e6d8
lea eax, [ecx + ebp*4]
mov edx, dword [esp + 0x38]
sar eax, 2
imul eax, esi
mov dword [esp + 0x20], eax
lea eax, [edx + ebx*4]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x20]
sar eax, 2
add edx, ebx
mov edi, dword [0x495280]
add eax, edx
mov edx, dword [esp + 0x74]
and ecx, 3
lea ebx, [edx + 0x20]
mov edx, dword [esp + 0x38]
shl ecx, 2
and edx, 3
or ecx, edx
cmp ecx, 0xf
ja case.default.0x46e4dd
jmp dword [ecx*4 + 0x46ebac]
push esi
push eax
mov eax, dword [esp + 0x7c]
push eax
call dword [0x4fe6f0]
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x30]
add esp, 0xc
jmp 0x46e799
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x1c]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x46e799
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x18]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x46e799
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x20]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x46e799
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x28]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x46e799
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x1c]
jmp 0x46e5bf
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x18]
jmp 0x46e5bf
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x20]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
push edx
push esi
push 8
push ebx
push eax
call dword [edi + 0x28]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x4c]
add esp, 0x28
jmp 0x46e799
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x24]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x46e799
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x1c]
jmp 0x46e638
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x18]
jmp 0x46e638
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x20]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
push edx
push esi
push 8
push ebx
push eax
call dword [edi + 0x24]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x4c]
add esp, 0x28
jmp 0x46e799
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x2c]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x46e799
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x1c]
jmp 0x46e6b1
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x18]
jmp 0x46e6b1
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x20]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
push edx
push esi
push 8
push ebx
push eax
call dword [edi + 0x2c]
add esp, 0x28
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x24]
jmp 0x46e799
mov eax, ecx
cdq
and edx, 3
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0x38]
cdq
and edx, 3
add eax, edx
sar ecx, 2
sar eax, 2
jmp 0x46e78e
mov edx, dword [esp + 0x38]
mov eax, ecx
and edx, 1
and eax, 1
lea eax, [eax + edx*2]
sub eax, 0
je 0x46e77c
dec eax
je 0x46e75a
dec eax
je 0x46e736
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x38]
cdq
sub eax, edx
mov edi, eax
lea eax, [ecx - 1]
sar edi, 1
add edi, ebp
mov ecx, dword [esp + 0x20]
imul edi, esi
cdq
sub eax, edx
add ecx, edi
sar eax, 1
add eax, ecx
jmp 0x46e797
mov eax, ecx
mov ecx, dword [esp + 0x28]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
mov edi, eax
sar edi, 1
add edi, ebp
lea eax, [edx - 1]
imul edi, esi
cdq
sub eax, edx
add ecx, edi
sar eax, 1
add eax, ecx
jmp 0x46e797
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x2c]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x38]
sar edi, 1
add edi, ebp
imul edi, esi
cdq
sub eax, edx
add ecx, edi
sar eax, 1
add eax, ecx
jmp 0x46e797
mov eax, ecx
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x38]
cdq
sub eax, edx
sar ecx, 1
sar eax, 1
add ecx, ebp
imul ecx, esi
add edi, ecx
add eax, edi
add eax, ebx
imul ebp, esi
mov edi, dword [esp + 0x30]
push esi
add ebp, edi
mov edi, dword [esp + 0x20]
add ebp, ebx
push eax
push ebp
push edi
call dword [0x4fe6ec]
mov eax, dword [esp + 0x20]
add esp, 0x10
inc eax
add edi, 0x80
cmp eax, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edi
jl 0x46e3e5
mov eax, dword [esp + 0x14]
mov edx, eax
and edx, 0xf
sar eax, 3
add eax, dword [edx*4 + 0x482c60]
mov ecx, eax
mov eax, dword [esp + 0x18]
mov edx, eax
and edx, 0xf
sar eax, 3
mov edi, dword [edx*4 + 0x482c60]
jmp 0x46eb68
cmp dword [ecx + 0x1dc], ebx
je 0x46e91e
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x68]
mov ebx, esi
mov eax, dword [esp + 0x3c]
imul ebx, edi
mov ebp, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x70], ebx
add ebx, eax
mov ecx, dword [ebp]
mov eax, dword [edx]
shl ebx, 4
add ecx, ebx
push edi
push ecx
mov ecx, dword [esp + 0x64]
add eax, ebx
push eax
push ecx
call dword [0x4fe6ec]
mov edx, dword [ebp]
mov ecx, dword [esp + 0x68]
push edi
lea eax, [edx + ebx + 8]
mov edx, dword [ecx]
push eax
lea eax, [ebx + edx + 8]
mov ebx, dword [esp + 0x74]
push eax
lea ecx, [ebx + 0x80]
push ecx
call dword [0x4fe6ec]
shl esi, 4
add esi, 8
mov edx, dword [esp + 0x5c]
imul esi, edi
mov ecx, dword [esp + 0x78]
mov eax, dword [ebp]
shl edx, 4
add esi, edx
mov edx, dword [ecx]
add eax, esi
push edi
push eax
add edx, esi
lea eax, [ebx + 0x100]
push edx
push eax
call dword [0x4fe6ec]
mov ecx, dword [ebp]
mov eax, dword [esp + 0x88]
push edi
lea edx, [esi + ecx + 8]
mov ecx, dword [eax]
push edx
lea eax, [ebx + 0x180]
lea edx, [esi + ecx + 8]
push edx
push eax
call dword [0x4fe6ec]
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0x7c]
add esp, 0x40
lea edx, [ecx*8]
mov ecx, dword [ebp + 4]
shr edx, 1
shr edi, 1
lea esi, [edx + eax*8]
mov edx, dword [esp + 0x58]
add ecx, esi
push edi
mov eax, dword [edx + 4]
push ecx
add eax, esi
lea ecx, [ebx + 0x200]
push eax
push ecx
call dword [0x4fe6ec]
mov edx, dword [ebp + 8]
push edi
add edx, esi
mov eax, dword [esp + 0x6c]
push edx
add ebx, 0x280
mov ecx, dword [eax + 8]
add ecx, esi
push ecx
push ebx
call dword [0x4fe6ec]
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edx, dword [esp + 0x6c]
cmp edx, ebx
je 0x46e93c
mov eax, dword [ecx + 0x124]
mov edi, dword [ecx + 0x128]
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], edi
jmp 0x46e94b
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], ecx
mov edi, ecx
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov esi, dword [esi]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x4c]
shl ebx, 4
mov ecx, dword [ecx]
mov dword [esp + 0x50], esi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x68]
mov ecx, dword [ecx]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x44]
shl ebp, 4
mov ecx, dword [ecx]
test edx, edx
mov edx, edi
je 0x46e9fb
or edx, eax
test dl, 3
je 0x46e9cf
mov edx, dword [esp + 0x70]
push edx
push esi
push edi
mov edi, dword [esp + 0x80]
push eax
push ebx
lea eax, [edi + 0x60]
push ebp
push eax
lea edx, [edi + 0x40]
lea eax, [edi + 0x20]
push edx
push eax
push ecx
mov ecx, ebx
mov edx, edi
imul ecx, esi
sub edx, ecx
sub edx, ebp
push edx
call fcn.00470430
add esp, 0x2c
jmp 0x46eaa5
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, ebx
imul eax, esi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
cdq
and edx, 3
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x68]
sar edi, 2
jmp 0x46ea9f
and eax, 1
and edx, 1
lea eax, [edx + eax*2]
sub eax, 0
je 0x46ea80
dec eax
je 0x46ea5c
dec eax
je 0x46ea36
lea eax, [edi - 1]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
mov ecx, eax
sar ecx, 1
add ecx, ebx
lea eax, [edx - 1]
imul ecx, esi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x30]
sar edi, 1
add eax, ecx
add edi, eax
jmp 0x46eaa3
mov eax, edi
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
mov ecx, eax
sar ecx, 1
add ecx, ebx
lea eax, [edx - 1]
imul ecx, esi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x4c]
sar edi, 1
add eax, ecx
add edi, eax
jmp 0x46eaa3
lea eax, [edi - 1]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x38]
sar ecx, 1
add ecx, ebx
imul ecx, esi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x2c]
sar edi, 1
add eax, ecx
add edi, eax
jmp 0x46eaa3
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, ebx
imul eax, esi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x68]
sar edi, 1
add ecx, eax
add edi, ecx
add edi, ebp
mov edx, ebx
mov eax, dword [esp + 0x50]
imul edx, esi
add edx, eax
push esi
push edi
lea eax, [edx + ebp]
mov dword [esp + 0x70], eax
push eax
mov eax, dword [esp + 0x68]
push eax
call dword [0x4fe6ec]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x6c]
lea ecx, [edi + 8]
push esi
add edx, 8
push ecx
add eax, 0x80
push edx
push eax
call dword [0x4fe6ec]
add ebx, 8
mov ecx, dword [esp + 0x70]
imul ebx, esi
add ebx, ecx
lea ecx, [edi + esi*8]
add ebp, ebx
mov ebx, dword [esp + 0x7c]
push esi
push ecx
lea edx, [ebx + 0x100]
push ebp
push edx
call dword [0x4fe6ec]
lea eax, [edi + esi*8 + 8]
push esi
add ebp, 8
push eax
add ebx, 0x180
push ebp
push ebx
call dword [0x4fe6ec]
mov eax, dword [esp + 0xac]
add esp, 0x40
test eax, eax
je 0x46eb42
mov eax, dword [esp + 0x38]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, dword [esp + 0x54]
cdq
sub eax, edx
sar eax, 1
jmp 0x46eb4a
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov edx, ecx
and edx, 3
sar ecx, 1
mov edi, dword [edx*4 + 0x482cc0]
mov edx, eax
and edx, 3
add ecx, edi
sar eax, 1
mov edi, dword [edx*4 + 0x482cc0]
mov edx, dword [esp + 0x70]
add eax, edi
push edx
mov edx, dword [esp + 0x60]
shr esi, 1
add edx, 0x200
push esi
push edx
mov edx, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push edx
push eax
push ecx
call fcn.0046ebf0
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret