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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x100
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x120]
mov dword [esp + 0xf0], eax
mov ecx, dword [esp + 0x124]
mov eax, dword [esp + 0x128]
mov ebp, dword [esp + 0x11c]
test ebp, 0x8010000
mov dword [esp + 0xac], edx
mov edx, 0
mov esi, dword [esp + 0x114]
mov dword [esp + 0x94], ecx
mov dword [esp + 0xa8], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x74], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x50], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], edx
je 0x46a25a
test ebp, 0x10000
je 0x46a253
lea eax, [esp + 0x133]
and eax, 0xfffffffc
movsx edx, byte [eax]
jmp 0x46a25f
mov edx, 0x2c
jmp 0x46a25f
mov edx, 0x2e
cmp dword [esp + 0xf0], 0
jle 0x46b777
mov edi, ebp
mov eax, ebp
and edi, 0x80
and eax, 0x80000000
mov ebx, edi
shl edi, 0x18
and edi, eax
shl ebx, 4
shr edi, 0x13
or ebx, edi
mov dword [esp + 0xa0], eax
test ebp, 0x20
je 0x46b770
mov eax, dword [esp + 0xf0]
movsx ecx, byte [esi]
add ecx, 0xfffffff7
cmp ecx, 0x20
jae 0x46a2ce
mov edi, 1
shl edi, cl
test edi, 0x80001f
je 0x46a2ce
inc esi
dec eax
jne 0x46a2a5
mov dword [esp + 0xf0], eax
mov edi, esi
jmp 0x46a2f4
mov dword [esp + 0xf0], eax
mov edi, esi
movsx eax, byte [esi]
cmp eax, 0x2d
jne 0x46a2e4
or ebx, 8
jmp 0x46a2e9
cmp eax, 0x2b
jne 0x46a2f4
dec dword [esp + 0xf0]
or ebx, 2
inc esi
xor eax, eax
fldz
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
cmp dword [esp + 0xf0], 0
je 0x46a7a1
mov eax, ebp
mov ecx, ebx
and eax, 0x10
mov ebx, edx
mov dword [esp + 0xb4], eax
mov eax, ebp
and eax, 0x100
mov dword [esp + 0xe0], eax
mov eax, ebp
and eax, 0x1000
mov dword [esp + 0xdc], eax
mov eax, ebp
and eax, 2
mov dword [esp + 0xa4], eax
mov eax, ebp
and eax, 0x40000000
mov dword [esp + 0xb0], eax
mov eax, ebp
and eax, 8
mov dword [esp + 0xbc], eax
mov eax, ebp
and eax, 4
mov dword [esp + 0xc0], eax
mov eax, ebp
and eax, 0x40
mov dword [esp + 0xb8], eax
mov eax, ebp
and eax, 1
mov dword [esp + 0xc4], eax
mov eax, ebp
and eax, 0x800
mov dword [esp + 0xd4], 9
mov dword [esp + 0xd0], 2
mov dword [esp + 0xcc], 1
mov dword [esp + 0xc8], 0
mov dword [esp + 0xd8], eax
mov dword [esp + 0x98], ebp
movsx edx, byte [esi]
lea eax, [edx - 9]
cmp eax, 0x6f
ja case.0x46a3f6.10
jmp dword [eax*4 + 0x4e1cc0]
cmp dword [esp + 0xb4], 0
jne 0x46a78a
jmp case.0x46a3f6.10
cmp dword [esp + 0xe0], 0
je case.0x46a3f6.10
test ecx, 0x200
jne case.0x46a3f6.10
cmp dword [esp + 0xf8], 0
jne case.0x46a3f6.10
cmp dword [esp + 0xc8], 1
jne case.0x46a3f6.10
xor ecx, 4
mov dword [esp + 0xd4], 8
or ecx, 0x200
mov dword [esp + 0xd0], 1
mov dword [esp + 0xcc], 3
jmp 0x46a78a
mov eax, ecx
and eax, 0x200
or eax, dword [esp + 0xdc]
jne case.0x46a3f6.10
jmp 0x46b3a8
test ecx, 0x200
je case.0x46a3f6.10
jmp 0x46b3a8
test ecx, 0x800
je case.0x46a3f6.10
mov ebp, dword [esp + 0xc8]
mov eax, ecx
or ebp, dword [esp + 0xf8]
and eax, 0x201
or ebp, eax
jne case.0x46a3f6.10
mov eax, dword [esp + 0xf0]
mov ebp, 0x4e1624
mov dword [esp + 0x10], esi
test eax, eax
jle 0x46b673
mov dword [esp + 8], ebx
mov dword [esp], edx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0xf0]
movsx edx, byte [ebp]
test edx, edx
je 0x46b65c
movsx eax, byte [esi]
or edx, 0x20
or eax, 0x20
inc ebp
cmp eax, edx
jne 0x46b5c9
dec ebx
inc esi
test ebx, ebx
jg 0x46a4f2
mov dword [esp + 0xf0], ebx
mov edx, dword [esp]
mov eax, dword [esp + 4]
mov ebx, dword [esp + 8]
movsx ebp, byte [ebp]
test ebp, ebp
je 0x46b4b3
mov esi, dword [esp + 0x10]
mov dword [esp + 0xf0], eax
jmp case.0x46a3f6.10
test ecx, 0x800
je case.0x46a3f6.10
mov ebp, dword [esp + 0xc8]
mov eax, ecx
or ebp, dword [esp + 0xf8]
and eax, 0x201
or ebp, eax
jne case.0x46a3f6.10
mov eax, str.Infinity
mov ebp, esi
cmp dword [esp + 0xf0], 0
jle 0x46a633
mov dword [esp + 8], ebx
mov dword [esp], edx
mov dword [esp + 0xc], ebp
mov ebx, dword [esp + 0xf0]
movsx ebp, byte [eax]
test ebp, ebp
je 0x46b5f3
movsx edx, byte [esi]
or ebp, 0x20
or edx, 0x20
cmp edx, ebp
jne 0x46b5dc
dec ebx
inc eax
inc esi
test ebx, ebx
jg 0x46a594
mov dword [esp + 0xf0], ebx
mov edx, dword [esp]
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 8]
cmp byte [eax], 0
jne 0x46a633
fstp st(0)
mov edi, esi
test cl, 8
je 0x46a5df
fld dword [0x4e2bdc]
jmp 0x46a5e5
fld dword [0x4e2bd8]
and ecx, 0xfffffff7
mov eax, ecx
or eax, 0xc000000
cmp dword [esp + 0xb0], 0
je 0x46a5fb
mov ecx, eax
cmp dword [esp + 0xa4], 0
je case.0x46a3f6.10
cmp dword [esp + 0xf0], 0
je case.0x46a3f6.10
mov eax, dword [esp + 0xf0]
cmp byte [esi], 0x20
jne 0x46a627
inc esi
dec eax
jne 0x46a61e
mov dword [esp + 0xf0], eax
jmp case.0x46a3f6.10
cmp byte [eax - 1], 0x66
je 0x46a5ce
mov esi, ebp
neg ebp
add eax, ebp
mov dword [esp + 0xf0], eax
jmp case.0x46a3f6.10
test ecx, 0x200
jne 0x46a67f
jmp 0x46b608
test ecx, 0x200
jne 0x46a67f
cmp dword [esp + 0xdc], 0
jne case.0x46a3f6.10
jmp 0x46b608
test ecx, 0x200
je case.0x46a3f6.10
or edx, 0x20
add edx, 0xffffffa9
jmp 0x46a68a
add edx, 0xffffffd0
or ecx, 4
mov ebp, ecx
xor eax, eax
and ebp, 0x201
cmp ebp, 0x200
mov ebp, dword [esp + 0xfc]
sete al
sub ebp, eax
mov eax, dword [esp + 0xf4]
inc ebp
inc dword [esp + 0xf8]
mov dword [esp + 0xfc], ebp
cmp eax, dword [esp + 0xd4]
je 0x46b616
mov ebp, dword [esp + 0xec]
mov eax, ebp
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0xcc]
shl eax, cl
inc dword [esp + 0xf4]
mov ecx, dword [esp + 0x9c]
lea eax, [eax + ebp*8]
add eax, edx
mov dword [esp + 0xec], eax
jmp 0x46a78a
cmp dword [esp + 0xf8], 0
jne case.0x46a3f6.49
mov eax, ecx
or ecx, 4
and eax, 1
add dword [esp + 0xfc], eax
xor eax, 1
add dword [esp + 0xc8], eax
jmp 0x46a78a
cmp dword [esp + 0xbc], 0
jne 0x46a78a
jmp case.0x46a3f6.10
cmp dword [esp + 0xc0], 0
jne 0x46a78a
jmp case.0x46a3f6.10
cmp dword [esp + 0xd8], 0
jne case.0x46a3f6.10
jmp 0x46b67d
cmp dword [esp + 0xa4], 0
jne 0x46a78a
jmp 0x46b693
cmp dword [esp + 0xc4], 0
jne 0x46a78a
cmp edx, ebx
jne 0x46b762
test cl, 1
jne 0x46b762
xor eax, eax
or ecx, 1
mov dword [esp + 0xfc], eax
inc esi
dec dword [esp + 0xf0]
jne 0x46a3e7
mov ebp, dword [esp + 0x98]
mov ebx, ecx
mov dword [esp + 0xb0], esi
mov dword [esp + 8], eax
mov dword [esp + 4], edx
test bl, 4
mov eax, dword [esp + 0xb0]
jne 0x46a7be
mov eax, edi
test bl, 0x40
je 0x46a7c5
mov eax, esi
mov dword [esp + 0xb0], eax
test ebp, 0x8000
je 0x46a804
cmp dword [esp + 0xa0], 0
je 0x46a7ef
cmp dword [esp + 0xf0], 0
je 0x46a804
cmp byte [esi], 0
jne 0x46a7f9
jmp 0x46a804
cmp dword [esp + 0xf0], 0
je 0x46a804
or ebx, 0x3000000
jmp 0x46b360
cmp dword [esp + 0xf8], 0
jne 0x46a849
mov eax, ebx
and eax, 0xc
cmp eax, 0xc
jne 0x46a828
fchs
fstp dword [esp + 0x94]
fld dword [esp + 0x94]
mov eax, ebp
mov edx, ebx
and eax, 0x28000
or edx, 0x3000000
cmp eax, 0x28000
jne 0x46b360
mov ebx, edx
jmp 0x46b360
fstp st(0)
test bl, 0x10
je 0x46a885
cmp dword [esp + 8], 6
ja 0x46b295
mov eax, dword [esp + 4]
mov edi, eax
neg edi
test ebx, 0x80
mov edx, dword [esp + 0x94]
jne 0x46a874
mov edi, eax
test ebp, 0x400
jne 0x46a881
mov edx, 0
sub edi, edx
jmp 0x46a88e
mov edi, dword [esp + 0x94]
neg edi
mov eax, ebx
and eax, 1
test ebx, 0x200
je 0x46ab14
mov ecx, dword [esp + 0xfc]
neg ecx
mov edx, dword [esp + 0xf8]
add ecx, edx
lea edi, [edi + ecx*4]
mov ecx, dword [esp + 0xac]
shl ecx, 2
neg ecx
add ecx, edi
test eax, eax
je 0x46a8c8
mov ecx, edi
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0xf4]
shl ecx, 2
neg ecx
shl dword [esp + 0xec], cl
cmp edx, 8
ja 0x46a931
mov dword [esp + 0xc], 0
cmp dword [esp + 0xec], 0
jle 0x46a916
mov eax, dword [esp + 0xec]
mov edx, dword [esp + 0xc]
add eax, eax
inc edx
test eax, eax
jg 0x46a904
mov dword [esp + 0xec], eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xec]
mov dword [esp + 0x58], eax
mov dword [esp + 0xe4], 1
jmp 0x46aafd
mov eax, dword [esp + 0xe4]
inc eax
mov edx, dword [esp + 0xec]
test edx, edx
mov dword [esp + 0xe4], eax
mov dword [esp + eax*4 + 0x14], edx
jne 0x46a95e
dec eax
cmp dword [esp + eax*4 + 0x14], 0
je 0x46a94f
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0xc], edx
test eax, eax
jle 0x46aa74
add eax, eax
inc edx
test eax, eax
jg 0x46a970
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], eax
cmp dword [esp + 0xc], 0
je 0x46aa74
mov dword [esp + 0x58], eax
cmp dword [esp + 0xe4], 1
jbe 0x46aafd
mov eax, dword [esp + 0xe4]
lea edi, [eax - 1]
mov edx, edi
shr edx, 0x1f
add edx, edi
sar edx, 1
test edx, edx
jbe 0x46b6ab
mov ecx, dword [esp + 0xc]
xor eax, eax
neg ecx
mov dword [esp + 0x9c], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp], edi
mov dword [esp + 0x98], ebp
mov ebx, ecx
mov edx, dword [esp + eax*8 + 0x1c]
mov ecx, ebx
mov ebp, edx
shr ebp, cl
mov edi, dword [esp + 0xc]
mov ecx, edi
or dword [esp + eax*8 + 0x58], ebp
mov ebp, dword [esp + eax*8 + 0x20]
mov esi, ebp
shl edx, cl
mov ecx, ebx
shr esi, cl
mov ecx, edi
shl ebp, cl
or edx, esi
mov dword [esp + eax*8 + 0x5c], edx
mov dword [esp + eax*8 + 0x60], ebp
inc eax
cmp eax, dword [esp + 8]
jb 0x46a9da
mov ebx, dword [esp + 0x9c]
lea eax, [eax + eax + 1]
mov esi, dword [esp + 4]
mov edi, dword [esp]
mov ebp, dword [esp + 0x98]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
lea edx, [eax - 1]
cmp edi, edx
jbe 0x46aafd
mov dword [esp + 4], esi
mov esi, eax
mov edx, dword [esp + 0xc]
mov ecx, edx
mov dword [esp + 0x9c], ebx
neg ecx
mov ebx, dword [esp + esi*4 + 0x18]
mov eax, ebx
shr eax, cl
mov ecx, edx
shl ebx, cl
or dword [esp + esi*4 + 0x54], eax
mov dword [esp + esi*4 + 0x58], ebx
mov ebx, dword [esp + 0x9c]
mov esi, dword [esp + 4]
jmp 0x46aafd
cmp dword [esp + 0xe4], 0
je 0x46aafd
cmp dword [esp + 0xe4], 0x18
jle 0x46b6b8
mov ecx, dword [esp + 0xe4]
mov dword [esp + 4], esi
lea esi, [esp + 0x54]
mov dword [esp + 0x9c], ebx
lea ebx, [esp + 0x14]
sub esi, ebx
lea edi, [ecx*4]
xor edx, edx
cmp esi, edi
mov dword [esp], edi
setg dl
neg esi
xor eax, eax
cmp esi, edi
mov ebx, dword [esp + 0x9c]
setg al
mov esi, dword [esp + 4]
or edx, eax
je 0x46b6b8
mov eax, ecx
lea edi, [eax*4]
neg edi
lea edx, [esp + eax*4 + 0x54]
lea eax, [esp + eax*4 + 0x14]
push dword [esp]
lea eax, [eax + edi + 4]
push eax
lea edx, [edx + edi + 4]
push edx
call fcn.004bfac0
add esp, 0xc
mov eax, dword [esp + 0xac]
sub eax, dword [esp + 0xc]
mov dword [esp + 0xac], eax
jmp 0x46ae82
test eax, eax
je 0x46ab21
sub edi, dword [esp + 0xfc]
jmp 0x46ab28
sub edi, dword [esp + 0xac]
mov eax, dword [esp + 0xf8]
add eax, edi
cmp eax, 0xffffffd3
jl 0x46b295
cmp eax, 0x27
jg 0x46b295
mov ecx, dword [esp + 0xf8]
lea eax, [ecx - 0x1b]
test eax, eax
lea edx, [edi + ecx - 0x1b]
jg 0x46ab57
mov edx, edi
mov dword [esp], edx
cmp ecx, 9
ja 0x46ab8b
mov eax, dword [esp + 0xec]
mov dword [esp + 0x94], eax
fild dword [esp + 0x94]
shr eax, 0x1f
fadd qword [eax*8 + 0x4e1ca0]
fstp qword [esp + 8]
fld qword [esp + 8]
jmp 0x46ac98
fild dword [esp + 0x18]
mov eax, dword [esp + 0x18]
shr eax, 0x1f
cmp dword [esp + 0xe4], 2
fadd qword [eax*8 + 0x4e1ca0]
fstp qword [esp + 8]
fld qword [esp + 8]
jb 0x46ac5d
fld qword [0x4e2f80]
mov eax, dword [esp + 0xe4]
dec eax
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
mov dword [esp + 0xe4], eax
test edx, edx
jbe 0x46b744
xor eax, eax
nop
lea esi, [esi]
jmp 0x46abe4
faddp st(2)
fild dword [esp + eax*8 + 0x1c]
fxch st(1)
fmul st(2), st(0)
fild dword [esp + eax*8 + 0x20]
mov edi, dword [esp + eax*8 + 0x1c]
shr edi, 0x1f
fxch st(2)
fadd qword [edi*8 + 0x4e1ca0]
fstp qword [esp + 8]
fld qword [esp + 8]
mov edi, dword [esp + eax*8 + 0x20]
inc eax
shr edi, 0x1f
faddp st(3)
fmul st(2), st(0)
fxch st(1)
fadd qword [edi*8 + 0x4e1ca0]
fstp qword [esp + 8]
cmp eax, edx
fld qword [esp + 8]
jb 0x46abe2
faddp st(2)
lea edx, [eax + eax + 1]
lea eax, [edx - 1]
cmp eax, dword [esp + 0xe4]
jae 0x46b78a
fmulp st(1)
fild dword [esp + edx*4 + 0x18]
mov eax, dword [esp + edx*4 + 0x18]
shr eax, 0x1f
fadd qword [eax*8 + 0x4e1ca0]
fstp qword [esp + 8]
fld qword [esp + 8]
faddp st(1)
mov edx, dword [esp + 0xec]
mov dword [esp + 0x94], edx
fild dword [esp + 0x94]
shr edx, 0x1f
mov eax, dword [esp + 0xf4]
fxch st(1)
fmul qword [eax*8 + 0x4e2f38]
fxch st(1)
fadd qword [edx*8 + 0x4e1ca0]
fstp qword [esp + 8]
fld qword [esp + 8]
faddp st(1)
cmp dword [esp], 0xffffffd1
jle 0x46acaa
mov eax, dword [esp]
fmul qword [eax*8 + 0x4e2f38]
jmp 0x46ad02
mov eax, dword [esp]
mov ecx, eax
neg ecx
mov dword [esp + 0x9c], ebx
mov ebx, ecx
sar ebx, 3
mov dword [esp + 4], esi
movzx edx, word [ebx*2 + 0x4e3160]
lea esi, [ebx + 1]
shr edx, 5
cmp edx, ecx
jl 0x46acd5
mov esi, ebx
movzx edx, word [esi*2 + 0x4e3160]
mov edi, edx
shr edx, 5
and edi, 0x1f
add eax, edx
mov ebx, dword [esp + 0x9c]
mov esi, dword [esp + 4]
fld qword [edi*8 + 0x4e30c0]
fmul qword [eax*8 + 0x4e2f38]
fmulp st(1)
test ebp, 0x400000
je 0x46ad17
fstp qword [esp]
and dword [esp], 0xefffffff
fld qword [esp]
fld st(0)
fstp qword [esp + 8]
fld qword [esp + 8]
fcomp qword [0x4e2b18]
fnstsw ax
sahf
jbe 0x46ad33
fstp st(0)
jmp 0x46b295
fld qword [0x4e2b20]
fld st(1)
fstp qword [esp + 8]
fld qword [esp + 8]
fcompp
fnstsw ax
sahf
jae 0x46b34b
jp 0x46b34b
test ebp, 0x10000000
jne 0x46ad2c
fld qword [0x4e2b28]
fld st(1)
fstp qword [esp + 8]
fld qword [esp + 8]
fcompp
fnstsw ax
sahf
jae 0x46ad7c
jp 0x46ad7c
fstp st(0)
jmp 0x46b295
fstp qword [esp]
mov edx, dword [esp + 4]
mov dword [esp + 0xc], edx
and edx, 0x7ff00000
shr edx, 0x14
mov eax, dword [esp]
test edx, edx
mov dword [esp + 8], eax
mov dword [esp + 0xac], edx
je 0x46adc8
mov edx, dword [esp + 0xc]
mov edi, eax
or edx, 0xfff00000
mov eax, edi
shl edx, 0xb
shr eax, 0x15
shl edi, 0xb
or edx, eax
mov dword [esp + 0xc], edx
mov dword [esp + 8], edi
jmp 0x46ae4f
cmp dword [esp + 0xc], 0
je 0x46ae1d
mov eax, dword [esp + 0xc]
shl eax, 0xc
mov dword [esp + 0xc], eax
test eax, eax
mov dword [esp], 0
jle 0x46adf6
mov edx, dword [esp]
add eax, eax
inc edx
test eax, eax
jg 0x46ade8
mov dword [esp + 0xc], eax
mov dword [esp], edx
mov eax, dword [esp]
sub dword [esp + 0xac], eax
add eax, 0xc
mov ecx, eax
mov edi, dword [esp + 8]
neg ecx
mov edx, edi
shr edx, cl
mov ecx, eax
shl edi, cl
or dword [esp + 0xc], edx
mov dword [esp + 8], edi
jmp 0x46ae4f
mov edx, eax
xor eax, eax
mov dword [esp + 0xc], edx
test edx, edx
jle 0x46ae34
add edx, edx
inc eax
test edx, edx
jg 0x46ae29
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xac]
sub edx, eax
add edx, 0xffffffec
mov dword [esp + 0xac], edx
mov dword [esp + 8], 0
mov edx, dword [esp + 0xac]
add edx, 0xfffffc02
xor eax, eax
mov dword [esp + 0xac], edx
mov edx, dword [esp + 8]
test edx, edx
mov edi, dword [esp + 0xc]
setne al
inc eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edx
mov eax, ebp
shr eax, 0x16
and eax, 7
mov edx, dword [esp + 0xa0]
or edx, eax
jne 0x46ae9a
mov eax, 6
mov edx, eax
and edx, 2
test al, 4
je 0x46aeba
test edx, edx
mov edx, 0xaaaa
jne 0x46aeb1
mov edx, 0xfa
mov dword [esp + 0x94], edx
jmp 0x46aee0
test edx, edx
je 0x46aecb
mov dword [esp + 0x94], 0xfa00
jmp 0x46aee0
mov edx, 0xa8a8
test al, 1
je 0x46aed9
mov edx, 0
mov dword [esp + 0x94], edx
cmp eax, 2
je 0x46aeea
cmp eax, 4
jne 0x46aef1
mov edx, 1
jmp 0x46aef3
xor edx, edx
mov eax, dword [esp + 0xac]
lea edi, [eax + 0x95]
mov dword [esp + 0xa4], edi
cmp edi, 0x18
jle 0x46af19
mov dword [esp + 0xa4], 0x18
jmp 0x46af27
cmp dword [esp + 0xa4], 0
js 0x46b295
mov edi, dword [esp + 0xa4]
mov eax, edi
and edi, 0x1f
xor ecx, ecx
cmp ecx, edi
mov dword [esp + 0xa4], edi
adc ecx, 0
sar eax, 5
mov dword [esp + 0xa0], eax
mov dword [esp + 0x9c], ecx
add eax, ecx
mov dword [esp + 0x98], eax
cmp eax, dword [esp + 0xe4]
jbe 0x46af6c
test edx, edx
je 0x46b265
cmp dword [esp + 0x98], 0
je 0x46b222
cmp dword [esp + 0xa4], 0
mov edx, dword [esp + eax*4 + 0x54]
mov dword [esp + 4], edx
je 0x46b0a3
mov eax, edi
neg eax
mov edi, edx
mov edx, edi
lea ecx, [eax + 0x1f]
add eax, 0x20
shr edx, cl
and edx, 1
mov dword [esp], ecx
mov ecx, eax
mov dword [esp + 0x10], edx
mov edx, 1
shl edx, cl
mov eax, edi
mov dword [esp + 8], edx
mov edx, 1
shr eax, cl
mov ecx, dword [esp]
and eax, 1
shl edx, cl
dec edx
mov dword [esp + 0xc], eax
and edx, edi
mov eax, dword [esp + 0xe4]
or dword [esp + 0xe8], edx
cmp eax, dword [esp + 0x98]
jbe 0x46b19c
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
lea edi, [eax + edx + 1]
cmp edi, dword [esp + 0xe4]
ja 0x46b19c
xor edx, edx
cmp edx, dword [esp + 0xa4]
mov eax, dword [esp + 0xe4]
adc edx, 0
sub eax, dword [esp + 0xa0]
sub eax, edx
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
mov dword [esp + 0xe4], eax
test edx, edx
jbe 0x46b74e
xor eax, eax
xor ecx, ecx
cmp eax, dword [esp + 0xa4]
adc ecx, 0
add ecx, dword [esp + 0xa0]
lea edi, [esp + ecx*4 + 0x54]
mov ecx, dword [esp + 0xe8]
or ecx, dword [edi + eax*8 + 4]
or ecx, dword [edi + eax*8 + 8]
inc eax
cmp eax, edx
jb 0x46b05d
mov dword [esp + 0xe8], ecx
lea edx, [eax + eax + 1]
lea eax, [edx - 1]
cmp eax, dword [esp + 0xe4]
jae 0x46b19c
add edx, dword [esp + 0x98]
mov eax, dword [esp + 0xe8]
or eax, dword [esp + edx*4 + 0x54]
mov dword [esp + 0xe8], eax
jmp 0x46b19c
mov edx, eax
mov eax, dword [esp + 4]
and eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [esp + edx*4 + 0x58]
mov edi, eax
add eax, eax
or dword [esp + 0xe8], eax
mov edx, ecx
mov eax, dword [esp + 0xa0]
shr edi, 0x1f
mov dword [esp + 0x10], edi
lea eax, [eax + edx + 1]
cmp eax, dword [esp + 0xe4]
jae 0x46b194
mov eax, dword [esp + 0xa0]
lea edi, [eax + edx + 2]
cmp edi, dword [esp + 0xe4]
ja 0x46b194
xor edx, edx
cmp edx, dword [esp + 0xa4]
mov eax, dword [esp + 0xe4]
adc edx, 0
sub eax, dword [esp + 0xa0]
sub eax, edx
dec eax
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
mov dword [esp + 0xe4], eax
test edx, edx
jbe 0x46b758
xor eax, eax
xor ecx, ecx
cmp eax, dword [esp + 0xa4]
adc ecx, 0
add ecx, dword [esp + 0xa0]
lea edi, [esp + ecx*4 + 0x54]
mov ecx, dword [esp + 0xe8]
or ecx, dword [edi + eax*8 + 8]
or ecx, dword [edi + eax*8 + 0xc]
inc eax
cmp eax, edx
jb 0x46b14d
mov dword [esp + 0xe8], ecx
lea edx, [eax + eax + 1]
mov dword [esp + 8], 1
lea eax, [edx - 1]
cmp eax, dword [esp + 0xe4]
jae 0x46b19c
add edx, dword [esp + 0x98]
mov eax, dword [esp + 0xe8]
or eax, dword [esp + edx*4 + 0x58]
mov dword [esp + 0xe8], eax
jmp 0x46b19c
mov dword [esp + 8], 1
mov edx, ebx
xor eax, eax
and edx, 8
cmp dword [esp + 0xe8], 0
mov edi, dword [esp + 0x10]
setne al
lea ecx, [edx + eax*4]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x94]
lea edi, [edi + eax*2]
add ecx, edi
shr edx, cl
test dl, 1
je 0x46b265
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
add eax, edx
mov dword [esp + 4], eax
cmp eax, edx
jae 0x46b238
mov edx, dword [esp + 0x98]
mov edi, dword [esp + 0xa0]
mov dword [esp + edx*4 + 0x54], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x54], 0
lea edi, [edi + eax - 1]
lea edx, [esp + edi*4 + 0x54]
mov eax, dword [edx]
cmp eax, 0xffffffff
jne 0x46b21e
dec edi
lea edx, [esp + edi*4 + 0x54]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x46b212
test edi, edi
jne 0x46b233
inc dword [esp + 0xac]
mov dword [esp + 0x58], 0x80000000
jmp 0x46b265
inc eax
mov dword [edx], eax
jmp 0x46b265
cmp dword [esp + 0xa4], 0
je 0x46b25a
mov edi, dword [esp + 0x98]
mov eax, edx
dec eax
not eax
mov edx, dword [esp + 4]
and edx, eax
mov dword [esp + edi*4 + 0x54], edx
jmp 0x46b265
mov edx, dword [esp + 0x98]
mov dword [esp + edx*4 + 0x54], eax
cmp dword [esp + 0xac], 0x80
jg 0x46b295
cmp dword [esp + 0xac], 0xffffff82
jg 0x46b316
cmp dword [esp + 0xac], 0xffffff6c
jl 0x46b295
test ebp, 0x10000000
je 0x46b2f0
test ebx, 0x80
je 0x46b2ca
test bl, 8
je 0x46b2aa
fld dword [0x4e2bcc]
jmp 0x46b2b0
fld dword [0x4e2bc8]
mov eax, ebx
or eax, 0x9000000
test ebp, 0x4000
je 0x46b360
mov ebx, eax
jmp 0x46b360
test bl, 8
je 0x46b2d7
fld dword [0x4e2bdc]
jmp 0x46b2dd
fld dword [0x4e2bd8]
mov eax, ebx
or eax, 0x8000000
test ebp, 0x2000
je 0x46b360
mov ebx, eax
jmp 0x46b360
mov edx, ebx
mov ecx, dword [esp + 0xac]
or edx, 0x9000000
neg ecx
test ebp, 0x4000
mov eax, dword [esp + 0x58]
je 0x46b30f
mov ebx, edx
add ecx, 0xb
shr eax, cl
jmp 0x46b334
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xac]
shr eax, 8
shl edx, 0x17
and eax, 0xff7fffff
add edx, 0x3f000000
or eax, edx
mov edx, eax
or edx, 0x80000000
test bl, 8
jne 0x46b343
mov edx, eax
mov dword [esp], edx
fld dword [esp]
jmp 0x46b360
fstp dword [esp + 0x94]
test bl, 8
fld dword [esp + 0x94]
je 0x46b360
fchs
cmp dword [esp + 0xa8], 0
je 0x46b38d
test ebp, 0x40000
je 0x46b384
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xb0]
mov dword [edx], eax
jmp 0x46b38d
mov eax, dword [esp + 0xa8]
mov dword [eax], esi
mov eax, dword [esp + 0x12c]
test eax, eax
je 0x46b39d
shr ebx, 0x18
mov dword [eax], ebx
add esp, 0x100
pop ebp
pop ebx
pop edi
pop esi
ret
mov ebp, dword [esp + 0x98]
mov ebx, ecx
mov dword [esp + 0xb0], esi
inc esi
xor eax, eax
mov dword [esp + 8], eax
mov dword [esp + 4], eax
dec dword [esp + 0xf0]
je 0x46a7b0
mov dword [esp], edi
mov dword [esp + 0x98], ebp
mov edi, eax
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0xbc]
movsx eax, byte [esi]
or ebx, 0x10
lea ecx, [eax - 9]
cmp ecx, 0x56
ja case.default.0x46b3f9
jmp dword [ecx*4 + 0x4e1e80]
cmp dword [esp + 0xb4], 0
jne 0x46b47a
jmp case.default.0x46b3f9
or ebx, 0x40
lea ecx, [edi + edi]
inc edx
lea edi, [ecx + edi*8]
lea edi, [edi + eax - 0x30]
jmp 0x46b47a
test edx, edx
jne case.0x46b3f9.49
or ebx, 0x40
jmp 0x46b47a
test ebp, ebp
jne 0x46b47a
jmp case.default.0x46b3f9
or ebx, 0x80
jmp case.0x46b3f9.43
cmp dword [esp + 0xc0], 0
jne 0x46b47a
jmp case.default.0x46b3f9
mov eax, ebx
and eax, 0x20
or eax, edx
jne case.default.0x46b3f9
or ebx, 0x20
jmp 0x46b47a
cmp dword [esp + 0xa4], 0
jne 0x46b47a
jmp 0x46b49f
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov edi, dword [esp]
mov ebp, dword [esp + 0x98]
jmp 0x46a7b0
cmp dword [esp + 0xc4], 0
je case.default.0x46b3f9
inc esi
dec dword [esp + 0xf0]
jne 0x46b3e7
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov edi, dword [esp]
mov ebp, dword [esp + 0x98]
jmp 0x46a7b0
cmp dword [esp + 0xb8], 0
je case.default.0x46b3f9
mov eax, 0x30
jmp case.0x46b3f9.48
fstp st(0)
mov ebp, dword [esp + 0x98]
mov ebx, ecx
mov eax, ebx
and eax, 0x1800
mov dword [esp + 8], eax
cmp eax, 0x800
jne 0x46b4d8
fld dword [0x4e2bd4]
jmp 0x46b523
push dword [esp + 0xf0]
push esi
call fcn.0046b940
add esp, 8
mov dword [esp + 4], edx
fld dword [esp + 4]
sub dword [esp + 0xf0], eax
jns 0x46b50a
fstp st(0)
fld dword [0x4e2bd4]
xor eax, eax
mov dword [esp + 0xf0], eax
add esi, eax
test bl, 2
je 0x46b523
test bl, 8
jne 0x46b523
fstp dword [esp]
and dword [esp], 0x7fffffff
fld dword [esp]
cmp dword [esp + 0xa4], 0
je 0x46b54e
cmp dword [esp + 0xf0], 0
je 0x46b54e
mov eax, dword [esp + 0xf0]
cmp byte [esi], 0x20
jne 0x46b547
inc esi
dec eax
jne 0x46b53e
mov dword [esp + 0xf0], eax
cmp dword [esp + 8], 0x800
jne 0x46b564
cmp dword [esp + 0xf0], 0
jne 0x46b573
jmp 0x46b584
cmp byte [esi], 0
je 0x46b584
cmp dword [esp + 0xf0], 0
je 0x46b584
mov eax, ebx
or eax, 0x3000000
test ebp, 0x8000
je 0x46b584
mov ebx, eax
and ebx, 0xfffffff7
mov edx, ebx
or edx, 0xa000000
cmp dword [esp + 0xb0], 0
jne 0x46b59b
mov edx, ebx
cmp dword [esp + 0xa8], 0
je 0x46b5ae
mov eax, dword [esp + 0xa8]
mov dword [eax], esi
mov eax, dword [esp + 0x12c]
test eax, eax
je 0x46b5be
shr edx, 0x18
mov dword [eax], edx
add esp, 0x100
pop ebp
pop ebx
pop edi
pop esi
ret
mov dword [esp + 0xf0], ebx
mov edx, dword [esp]
mov ebx, dword [esp + 8]
jmp case.0x46a3f6.10
mov dword [esp + 0xf0], ebx
mov edx, dword [esp]
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 8]
jmp 0x46a633
fstp st(0)
mov dword [esp + 0xf0], ebx
mov edx, dword [esp]
mov ebx, dword [esp + 8]
jmp 0x46a5d0
mov ebp, dword [esp + 0x98]
mov ebx, ecx
jmp 0x46b3b1
mov eax, dword [esp + 0xe4]
cmp eax, dword [esp + 0xd0]
jae 0x46b650
inc eax
mov ebp, dword [esp + 0xec]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xec], edx
mov dword [esp + eax*4 + 0x14], ebp
mov dword [esp + 0xf4], 1
jmp 0x46a78a
or dword [esp + 0xe8], edx
jmp 0x46a78a
fstp st(0)
mov dword [esp + 0xf0], ebx
mov ebx, ecx
mov ebp, dword [esp + 0x98]
jmp 0x46b4be
mov ebp, 0x4e
jmp 0x46a52c
mov ebp, dword [esp + 0x98]
mov ebx, ecx
inc dword [esp + 0xf0]
dec esi
jmp 0x46b3b1
cmp dword [esp + 0xb8], 0
je case.0x46a3f6.10
mov edx, 0x30
jmp case.0x46a3f6.48
mov dword [esp + 8], 1
jmp 0x46aa2c
mov eax, dword [esp + 0xe4]
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
test ecx, ecx
jbe 0x46b73d
xor edx, edx
mov dword [esp + 4], esi
mov dword [esp + 0x98], ebp
lea edi, [esp + eax*4 + 0x54]
lea eax, [esp + eax*4 + 0x14]
mov esi, edx
mov ebp, eax
mov eax, edi
mov edi, dword [esi + ebp]
inc edx
mov dword [esi + eax], edi
mov edi, dword [esi + ebp - 4]
mov dword [esi + eax - 4], edi
add esi, 0xfffffff8
cmp edx, ecx
jb 0x46b6e7
mov esi, dword [esp + 4]
lea edx, [edx + edx + 1]
mov ebp, dword [esp + 0x98]
lea eax, [edx - 1]
cmp eax, dword [esp + 0xe4]
jae 0x46aafd
shl edx, 2
mov eax, dword [esp + 0xe4]
neg edx
lea edi, [esp + eax*4 + 0x14]
mov edi, dword [edx + edi + 4]
lea eax, [esp + eax*4 + 0x54]
mov dword [edx + eax + 4], edi
jmp 0x46aafd
mov edx, 1
jmp 0x46b70c
mov edx, 1
jmp 0x46ac2f
mov edx, 1
jmp 0x46b075
mov edx, 1
jmp 0x46b165
mov ebp, dword [esp + 0x98]
mov ebx, ecx
jmp 0x46a7a1
mov edi, esi
jmp 0x46a2d7
mov dword [esp + 0xb0], eax
mov ebx, 0x6000000
fldz
jmp 0x46b360
fstp st(0)
jmp 0x46ac5d