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

Disassembly:
sub esp, 0x60
push esi
mov esi, eax
mov al, byte [0x6aac00]
test al, al
je 0x46f408
push esi
call fcn.00473b20
mov ecx, eax
add esp, 4
cmp ecx, 0xffffffff
mov dword [esp + 0x18], ecx
je 0x46f408
push ebx
mov ebx, dword [esp + 0x6c]
push ebp
and eax, 0xffff
push edi
mov edi, dword [0x86b840]
mov edx, dword [edi + 0x34]
shl eax, 9
add eax, edx
cmp ebx, ecx
mov edx, dword [eax + 0x20]
mov dword [esp + 0x14], edx
jne 0x46eed7
inc word [eax + 0xb0]
inc word [eax + 0xae]
xor ebp, ebp
or ecx, 0xffffffff
cmp ebx, ecx
mov word [eax + 0x96], bp
mov word [eax + 0x9a], cx
mov word [eax + 0x98], bp
je 0x46ef11
mov ecx, dword [esp + 0x7c]
call fcn.0045be00
or ecx, 0xffffffff
test al, al
mov byte [esp + 0x13], 0
jne 0x46ef16
mov byte [esp + 0x13], 1
mov eax, dword [0x6eb40c]
mov eax, dword [eax + 0xc]
lea edx, [eax - 0x78]
add eax, 0xffffff4c
and esi, 0xffff
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edx
mov edx, dword [0x851c30]
mov edx, dword [edx + 0x34]
mov eax, esi
lea eax, [eax + eax*2]
mov ebx, dword [edx + eax*4 + 8]
mov eax, dword [ebx + 0x43c]
xor esi, esi
cmp eax, ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ebp
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
je 0x46efe7
mov edx, eax
sar edx, 0x10
cmp ax, bp
jl 0x46efe7
cmp ax, word [edi + 0x20]
jge 0x46efe7
movsx ecx, word [edi + 0x22]
movsx eax, ax
imul ecx, eax
add ecx, dword [edi + 0x34]
mov cx, word [ecx]
cmp cx, bp
je 0x46efe7
cmp dx, bp
je 0x46efc1
cmp cx, dx
jne 0x46efe7
lea ecx, [ebx + 0x430]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 8]
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov esi, 1
mov ecx, dword [ebx + 0x44c]
cmp ecx, 0xffffffff
je 0x46f047
mov edx, ecx
sar edx, 0x10
cmp cx, bp
jl 0x46f047
cmp cx, word [edi + 0x20]
jge 0x46f047
movsx eax, word [edi + 0x22]
movsx ecx, cx
imul eax, ecx
add eax, dword [edi + 0x34]
mov ax, word [eax]
cmp ax, bp
je 0x46f047
cmp dx, bp
je 0x46f021
cmp ax, dx
jne 0x46f047
mov eax, esi
shl eax, 4
lea ecx, [esp + eax + 0x30]
lea edx, [ebx + 0x440]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
inc esi
mov ecx, dword [ebx + 0x45c]
cmp ecx, 0xffffffff
je 0x46f0a7
mov edx, ecx
sar edx, 0x10
cmp cx, bp
jl 0x46f0a7
cmp cx, word [edi + 0x20]
jge 0x46f0a7
movsx eax, word [edi + 0x22]
movsx ecx, cx
imul eax, ecx
add eax, dword [edi + 0x34]
mov ax, word [eax]
cmp ax, bp
je 0x46f0a7
cmp dx, bp
je 0x46f081
cmp ax, dx
jne 0x46f0a7
mov eax, esi
shl eax, 4
lea ecx, [esp + eax + 0x30]
lea edx, [ebx + 0x450]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
inc esi
mov ecx, dword [ebx + 0x46c]
cmp ecx, 0xffffffff
je 0x46f104
mov edx, ecx
sar edx, 0x10
cmp cx, bp
jl 0x46f104
cmp cx, word [edi + 0x20]
jge 0x46f104
movsx eax, word [edi + 0x22]
movsx ecx, cx
imul eax, ecx
add eax, dword [edi + 0x34]
mov ax, word [eax]
cmp ax, bp
je 0x46f104
cmp dx, bp
je 0x46f0e1
cmp ax, dx
jne 0x46f104
lea edx, [ebx + 0x460]
mov ecx, dword [edx]
shl esi, 4
lea eax, [esp + esi + 0x30]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
fld dword [0x66c51c]
lea eax, [ebx + 0x430]
mov ecx, 0x10
lea esi, [esp + 0x30]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
or ebp, 0xffffffff
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], 0xffffffff
xor edi, edi
mov esi, eax
mov eax, dword [esi + 0xc]
cmp eax, dword [esp + 0x74]
jne 0x46f13f
mov dword [esp + 0x1c], edi
jmp 0x46f1b8
cmp word [esp + 0x1c], di
je 0x46f1b8
mov al, byte [esp + 0x13]
test al, al
je 0x46f1d1
mov eax, dword [0x6eb3c0]
test eax, eax
mov cx, word [esi + 0xc]
je 0x46f169
cmp word [esp + 0x14], cx
setne al
jmp 0x46f1b4
cmp word [esp + 0x14], 0
jl 0x46f1b8
cmp word [esp + 0x14], 0xa
jge 0x46f1b8
test cx, cx
jl 0x46f1b8
cmp cx, 0xa
jge 0x46f1b8
movsx eax, word [esp + 0x14]
lea edx, [eax + eax*4]
movsx eax, cx
lea edx, [eax + edx*2]
mov ecx, edx
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [0x6aa32c]
sar edx, 5
and eax, dword [ecx + edx*4 + 0xa4]
neg eax
sbb al, al
inc al
test al, al
je 0x46f1d1
mov edx, dword [esp + 0x20]
cmp dword [esi], edx
jbe 0x46f1d1
fcom dword [esi + 4]
fnstsw ax
test ah, 5
jp 0x46f1d1
fstp st(0)
mov ebp, edi
fld dword [esi + 4]
inc edi
add esi, 0x10
cmp di, 4
jl 0x46f130
cmp bp, 0xffff
fstp st(0)
mov byte [esp + 0x20], 0
jne 0x46f1f6
mov ebp, dword [esp + 0x1c]
cmp bp, 0xffff
je 0x46f217
movsx eax, bp
shl eax, 4
mov ecx, dword [eax + ebx + 0x43c]
add eax, ebx
mov dword [esp + 0x18], ecx
fld dword [eax + 0x434]
fmul dword [0x66c510]
jmp 0x46f225
mov edx, dword [esp + 0x74]
fld dword [0x66c40c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x18]
cmp edx, 0xffffffff
je 0x46f318
mov eax, dword [0x86b840]
mov ecx, dword [eax + 0x34]
mov eax, dword [0x6eb3c0]
and edx, 0xffff
shl edx, 9
add edx, ecx
test eax, eax
mov cx, word [edx + 0x20]
je 0x46f25e
mov ebx, dword [esp + 0x14]
cmp bx, cx
setne al
jmp 0x46f2ad
cmp word [esp + 0x14], 0
jl 0x46f2d2
cmp word [esp + 0x14], 0xa
jge 0x46f2d2
test cx, cx
jl 0x46f2d2
cmp cx, 0xa
jge 0x46f2d2
movsx eax, word [esp + 0x14]
mov ebx, dword [esp + 0x14]
lea eax, [eax + eax*4]
movsx ecx, cx
lea esi, [ecx + eax*2]
mov ecx, esi
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [0x6aa32c]
sar esi, 5
and eax, dword [ecx + esi*4 + 0xa4]
neg eax
sbb al, al
inc al
test al, al
jne 0x46f2d6
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
inc word [edx + 0xac]
cmp ecx, eax
mov byte [esp + 0x20], 1
je 0x46f31c
inc word [edx + 0xc0]
jmp 0x46f31c
mov ebx, dword [esp + 0x14]
inc word [edx + 0x9c]
movsx eax, word [edx + 0x9a]
mov ecx, dword [esp + 0x28]
inc word [edx + 0x96]
cmp eax, ecx
jl 0x46f2fc
inc word [edx + 0x98]
jmp 0x46f305
mov word [edx + 0x98], 1
mov ecx, dword [0x6eb40c]
mov ax, word [ecx + 0xc]
mov word [edx + 0x9a], ax
jmp 0x46f31c
mov ebx, dword [esp + 0x14]
fcom dword [0x66c40c]
fnstsw ax
test ah, 0x41
jne 0x46f3e8
mov ebp, dword [esp + 0x2c]
xor edi, edi
add ebp, 0xc
cmp di, word [esp + 0x1c]
je 0x46f34b
fcom dword [ebp - 8]
fnstsw ax
test ah, 5
jp 0x46f3da
mov eax, dword [ebp]
cmp eax, 0xffffffff
je 0x46f3da
cmp eax, dword [esp + 0x18]
je 0x46f3da
mov edx, dword [0x86b840]
mov ecx, dword [edx + 0x34]
and eax, 0xffff
shl eax, 9
add eax, ecx
mov esi, eax
mov eax, dword [0x6eb3c0]
test eax, eax
mov cx, word [esi + 0x20]
je 0x46f38b
cmp bx, cx
setne al
jmp 0x46f3cf
test bx, bx
jl 0x46f3d3
cmp bx, 0xa
jge 0x46f3d3
test cx, cx
jl 0x46f3d3
cmp cx, 0xa
jge 0x46f3d3
movsx ecx, cx
movsx eax, bx
lea eax, [eax + eax*4]
lea edx, [ecx + eax*2]
mov ecx, edx
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [0x6aa32c]
sar edx, 5
and eax, dword [ecx + edx*4 + 0xa4]
neg eax
sbb al, al
inc al
test al, al
je 0x46f3da
inc word [esi + 0xa4]
inc edi
add ebp, 0x10
cmp di, 4
jl 0x46f336
mov edx, dword [esp + 0x20]
fstp st(0)
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x24]
call fcn.00460120
add esp, 0xc
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x60
ret