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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov edx, dword [esp + 0xac]
mov dword [esp + 0x50], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov eax, dword [edx]
mov edi, eax
and eax, 7
and edi, 0xffffffcf
mov dword [edx], edi
xor edx, edx
cmp eax, 4
ja case.default.0x40783c
jmp dword [eax*4 + 0x40d2d8]
mov ebx, dword [esp + 0xc]
lea eax, [ecx + 1]
mov edx, ecx
shl edx, 5
mov dword [ebx + 0x10], eax
bsr eax, dword [ebx + ecx*4 + 0x14]
xor eax, 0x1f
sub edx, eax
add edx, 0x20
mov dword [ebp], edx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x5c], edx
sub esp, 0xc
push eax
call sym.___trailz_D2A
mov dword [esp + 0x90], eax
add esp, 0x10
test eax, eax
jne 0x4080bf
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x10]
test edx, edx
jne 0x4079b8
sub esp, 0xc
push eax
call sym.___Bfree_D2A
add esp, 0x10
mov edx, dword [esp + 0xb8]
mov dword [edx], 1
push eax
push 1
mov eax, dword [esp + 0xc4]
push eax
push 0x40d288
call sym.___nrv_alloc_D2A
add esp, 0x10
mov edx, eax
add esp, 0x8c
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xb8]
mov dword [eax], 0xffff8000
push eax
push 3
mov eax, dword [esp + 0xc4]
push eax
push 0x40d28a
jmp 0x4078c8
mov ebx, dword [esp + 0xb8]
mov dword [ebx], 0xffff8000
push eax
push 8
mov eax, dword [esp + 0xc4]
push eax
push str.Infinity
jmp 0x4078c8
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa8]
lea ebp, [esp + 0x84]
mov ecx, 0x20
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
xor eax, eax
jmp 0x407944
add ecx, ecx
inc eax
cmp ecx, dword [esp + 0x2c]
jl 0x407941
sub esp, 0xc
push eax
call sym.___Balloc_D2A
add esp, 0x10
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
dec eax
mov edx, dword [esp + 0xa8]
sar eax, 5
mov esi, dword [esp + 0xc]
add esi, 0x14
lea ecx, [edx + eax*4]
mov edx, esi
lea esi, [esi]
mov eax, dword [ebx]
add ebx, 4
mov dword [edx], eax
add edx, 4
cmp ebx, ecx
jbe 0x40797c
mov ecx, edx
sub ecx, esi
sar ecx, 2
dec ecx
mov eax, dword [esi + ecx*4]
test eax, eax
jne 0x407843
test ecx, ecx
jne 0x407991
mov edx, dword [esp + 0xc]
mov dword [edx + 0x10], 0
mov dword [ebp], 0
jmp 0x407862
push ebp
push ebp
lea eax, [esp + 0x88]
push eax
mov esi, dword [esp + 0x2c]
push esi
call sym.___b2d_D2A
mov ebx, dword [esp + 0xb4]
mov edx, dword [esp + 0x94]
fstp qword [esp + 0x88]
mov eax, dword [esp + 0x8c]
lea ecx, [ebx + edx - 1]
and eax, 0xfffff
mov dword [esp + 0x90], ecx
or eax, 0x3ff00000
lea esi, [esp + 0x88]
mov dword [esp + 0x8c], eax
mov eax, ecx
fld qword [esp + 0x88]
fld dword [0x40d298]
fsubp st(1)
push ecx
sar eax, 0x1f
mov ebx, ecx
fild dword [esp]
fxch st(1)
fmul qword [str.aCoc]
fxch st(1)
xor ebx, eax
sub ebx, eax
add esp, 0x14
fmul qword [0x40d2b0]
fxch st(1)
sub ebx, 0x435
fadd qword [0x40d2a8]
test ebx, ebx
faddp st(1)
jle 0x407a5f
push ebx
fild dword [esp]
fmul qword [0x40d2b8]
add esp, 4
faddp st(1)
fnstcw word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov ah, 0xc
mov word [esp + 0x6c], ax
fldz
fucomp st(1)
fnstsw ax
fldcw word [esp + 0x6c]
fist dword [esp + 0x40]
fldcw word [esp + 0x6e]
test ah, 0x45
jne 0x4080f8
fild dword [esp + 0x40]
fucompp
fnstsw ax
and ah, 0x45
xor ah, 0x40
mov ebx, dword [esp + 0x40]
setne al
and eax, 0xff
sub ebx, eax
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x38], 1
mov ebp, dword [esi + 4]
lea eax, [ebx + edx - 1]
shl eax, 0x14
add ebp, eax
mov dword [esi + 4], ebp
cmp dword [esp + 0x40], 0x16
ja 0x407af8
mov eax, dword [esp + 0x40]
fld qword [esp + 0x78]
fld qword [eax*8 + 0x40d308]
fucompp
fnstsw ax
test ah, 0x45
jne 0x407af0
mov esi, dword [esp + 0x40]
dec esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], 0
sub edx, ecx
mov ebx, edx
dec ebx
js 0x40846c
mov dword [esp + 0x64], 0
mov esi, ebx
mov ebx, dword [esp + 0x40]
test ebx, ebx
js 0x408479
mov edx, dword [esp + 0x40]
mov dword [esp + 0x60], 0
mov dword [esp + 0x24], edx
add esi, edx
cmp dword [esp + 0xb0], 0xa
setb al
and eax, 0xff
mov edx, dword [esp + 0xb0]
neg eax
and edx, eax
mov ebx, 1
mov dword [esp + 0xb0], edx
cmp dword [esp + 0xb0], 5
jle 0x407b6f
mov eax, dword [esp + 0xb0]
xor bl, bl
sub eax, 4
mov dword [esp + 0xb0], eax
mov dword [esp + 0x34], 1
cmp dword [esp + 0xb0], 5
ja case.default.0x407b88
mov eax, dword [esp + 0xb0]
jmp dword [eax*4 + 0x40d2ec]
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0xb4]
test eax, eax
jle 0x408932
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x80], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x50], edx
sub esp, 0xc
mov ebp, dword [esp + 0x8c]
push ebp
call sym.___rv_alloc_D2A
mov edx, dword [esp + 0xb0]
mov ebp, eax
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0xc]
dec eax
mov dword [esp + 0x38], eax
add esp, 0x10
test eax, eax
je 0x407c02
jl 0x408177
and edi, 8
je 0x407c02
mov edi, dword [esp + 0x28]
mov eax, 3
sub eax, edi
mov dword [esp + 0x28], eax
cmp dword [esp + 0x50], 0xe
setbe dl
test ebx, ebx
setne al
and eax, 0xff
test edx, eax
je 0x407d8c
mov edx, dword [esp + 0x28]
or edx, dword [esp + 0x40]
jne 0x407d8c
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x50]
fld qword [esp + 0x78]
xor ecx, ecx
mov dword [esp + 0x3c], ebx
fld st(0)
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], 2
test ebx, ebx
jle 0x408854
mov eax, ebx
sar ebx, 4
and eax, 0xf
test bl, 0x10
fld qword [eax*8 + 0x40d308]
je 0x407c7f
fxch st(2)
fdiv qword [0x40d428]
and ebx, 0xf
mov dword [esp + 0x54], 3
fst qword [esp + 0x78]
fxch st(2)
test ebx, ebx
je 0x407caa
mov edx, ecx
mov eax, ecx
test bl, 1
je 0x407c9c
mov ecx, dword [esp + 0x54]
fmul qword [edx*8 + 0x40d408]
inc ecx
mov dword [esp + 0x54], ecx
sar ebx, 1
lea ecx, [eax + 1]
jne 0x407c83
mov dword [esp + 0x80], edx
mov edi, dword [esp + 0x38]
test edi, edi
je 0x407d04
fld1
mov ebx, dword [esp + 0x50]
fucomp st(3)
fnstsw ax
test ah, 0x45
sete dl
test ebx, ebx
setg al
and eax, 0xff
test edx, eax
je 0x407d04
mov edx, dword [esp + 0x48]
test edx, edx
jle 0x408bc2
fxch st(2)
fmul dword [0x40d2c8]
mov eax, dword [esp + 0x40]
dec eax
mov edx, dword [esp + 0x48]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x54]
inc eax
mov dword [esp + 0x50], edx
fst qword [esp + 0x78]
fxch st(2)
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
fmul st(3)
fadd dword [0x40d2cc]
fstp qword [esp + 0x70]
mov eax, dword [esp + 0x74]
sub eax, 0x3400000
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x4085ba
fstp st(0)
fxch st(1)
fsub dword [0x40d2d0]
mov dword [esp + 0x80], ecx
fld qword [esp + 0x70]
fxch st(1)
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
fucom st(1)
fnstsw ax
test ah, 0x45
je 0x408a42
fxch st(1)
fchs
fucomp st(1)
fnstsw ax
test ah, 0x45
je 0x408207
fstp st(0)
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x4c]
fstp qword [esp + 0x78]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x40], edx
mov dword [esp + 0x50], ebx
mov eax, dword [esp + 0xa4]
xor eax, 0xffffffff
shr eax, 0x1f
cmp dword [esp + 0x40], 0xe
setle dl
test edx, eax
jne 0x4080ff
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x30], edx
mov edi, dword [esp + 0x60]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
test ecx, ecx
je 0x407e27
cmp dword [esp + 0xb0], 1
jle 0x4088e2
mov ebx, dword [esp + 0x50]
dec ebx
cmp dword [esp + 0x60], ebx
jl 0x40875d
mov edi, dword [esp + 0x60]
sub edi, ebx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x80], eax
test eax, eax
js 0x408a4f
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x64]
add edx, eax
add esi, eax
mov dword [esp + 0x64], edx
sub esp, 0xc
push 1
call sym.___i2b_D2A
mov dword [esp + 0x28], eax
add esp, 0x10
mov ebx, dword [esp + 0x30]
test ebx, ebx
setg dl
test esi, esi
setg al
and eax, 0xff
test edx, eax
je 0x407e67
mov eax, esi
cmp esi, dword [esp + 0x30]
jle 0x407e4a
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x30]
sub ecx, eax
sub edx, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x30], edx
sub esi, eax
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x407ebd
mov eax, dword [esp + 0x34]
test eax, eax
je 0x40870c
test edi, edi
jle 0x407eb1
push eax
push eax
push edi
mov eax, dword [esp + 0x24]
push eax
call sym.___pow5mult_D2A
mov dword [esp + 0x28], eax
pop ecx
pop ebx
mov edx, dword [esp + 0x14]
push edx
push eax
call sym.___mult_D2A
mov ebx, eax
pop eax
mov eax, dword [esp + 0x18]
push eax
call sym.___Bfree_D2A
mov dword [esp + 0x30], ebx
add esp, 0x10
mov ebx, dword [esp + 0x60]
sub ebx, edi
jne 0x40877e
sub esp, 0xc
push 1
call sym.___i2b_D2A
mov dword [esp + 0x24], eax
add esp, 0x10
mov ebx, dword [esp + 0x24]
test ebx, ebx
jle 0x407eea
push ecx
push ecx
mov edx, dword [esp + 0x2c]
push edx
push eax
call sym.___pow5mult_D2A
mov dword [esp + 0x24], eax
add esp, 0x10
xor ebx, ebx
cmp dword [esp + 0xb0], 1
jle 0x408729
mov edi, dword [esp + 0x24]
lea edx, [esi + 1]
test edi, edi
je 0x407f18
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x10]
bsr eax, dword [edx + eax*4 + 0x10]
mov edx, esi
xor eax, 0x1f
sub edx, eax
and edx, 0x1f
mov dword [esp + 0x80], edx
test edx, edx
je 0x407f34
mov eax, 0x20
sub eax, edx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x80]
cmp eax, 4
jle 0x40845b
sub eax, 4
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x30]
add ecx, eax
add edx, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x30], edx
add esi, eax
mov eax, dword [esp + 0x64]
test eax, eax
jle 0x407f84
push eax
push eax
mov eax, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x2c]
push eax
call sym.___lshift_D2A
mov dword [esp + 0x30], eax
add esp, 0x10
test esi, esi
jle 0x407f9c
push edi
push edi
push esi
mov esi, dword [esp + 0x20]
push esi
call sym.___lshift_D2A
mov dword [esp + 0x24], eax
add esp, 0x10
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x408566
mov ecx, dword [esp + 0x50]
test ecx, ecx
setle dl
cmp dword [esp + 0xb0], 2
setg al
and eax, 0xff
test edx, eax
je 0x4082a4
mov edx, dword [esp + 0x50]
test edx, edx
js 0x40815c
sub esp, 0x14
push 0
push 5
mov eax, dword [esp + 0x30]
push eax
call sym.___multadd_D2A
add esp, 0x18
mov dword [esp + 0x1c], eax
push eax
mov eax, dword [esp + 0x2c]
push eax
call sym.___cmp_D2A
add esp, 0x10
test eax, eax
jle 0x40815c
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], 0x20
mov ebp, ebx
mov byte [ebx], 0x31
inc ebp
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x40], eax
sub esp, 0xc
mov eax, dword [esp + 0x20]
push eax
call sym.___Bfree_D2A
add esp, 0x10
mov eax, dword [esp + 0x18]
test eax, eax
je 0x408067
mov eax, dword [esp + 0x1c]
test eax, eax
mov eax, dword [esp + 0x18]
setne dl
cmp dword [esp + 0x1c], eax
setne al
and eax, 0xff
test edx, eax
jne 0x40849a
sub esp, 0xc
mov edi, dword [esp + 0x24]
push edi
call sym.___Bfree_D2A
add esp, 0x10
sub esp, 0xc
mov esi, dword [esp + 0x2c]
push esi
call sym.___Bfree_D2A
mov byte [ebp], 0
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0xc8]
add esp, 0x10
inc eax
mov dword [edx], eax
mov ebx, dword [esp + 0xbc]
test ebx, ebx
je 0x40809d
mov ebx, dword [esp + 0xbc]
mov dword [ebx], ebp
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x44]
mov ecx, dword [eax]
or ecx, edx
mov edx, dword [esp + 0x10]
mov dword [eax], ecx
add esp, 0x8c
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
push esi
push esi
push eax
mov ebx, dword [esp + 0x2c]
push ebx
call sym.___rshift_D2A
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0x6c]
sub ecx, eax
add ebx, eax
mov dword [esp + 0x94], ecx
mov dword [esp + 0xb4], ebx
add esp, 0x10
jmp 0x407890
fstp st(0)
jmp 0x407aaa
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0xb4]
shr edx, 0x1f
fld qword [eax*8 + 0x40d308]
mov eax, dword [esp + 0x50]
test eax, eax
setle al
test eax, edx
je 0x408212
mov edi, dword [esp + 0x50]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
test edi, edi
js 0x408b81
fld dword [0x40d2d0]
fmulp st(1)
fld qword [esp + 0x78]
fxch st(1)
fucompp
fnstsw ax
test ah, 5
jne 0x408003
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x44], 0x10
xor edx, 0xffffffff
mov dword [esp + 0x40], edx
jmp 0x40801e
mov dword [esp + 0x28], 2
jmp 0x407bee
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0xb4]
add edx, eax
mov dword [esp + 0x48], edx
lea eax, [edx + 1]
mov dword [esp + 0x80], eax
mov dword [esp + 0x50], eax
test eax, eax
jg case.default.0x407b88
mov dword [esp + 0x80], 1
jmp case.default.0x407b88
fild dword [esp + 0x2c]
fmul qword [0x40d2c0]
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0xb4], 0
fldcw word [esp + 0x6c]
fistp dword [esp + 0x68]
fldcw word [esp + 0x6e]
mov eax, dword [esp + 0x68]
add eax, 3
mov dword [esp + 0x80], eax
jmp case.default.0x407b88
fstp st(1)
fstp qword [esp + 0x78]
jmp 0x40815c
fnstcw word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov ah, 0xc
mov dword [esp + 0x80], 1
fld qword [esp + 0x78]
fldz
mov word [esp + 0x6c], ax
jmp 0x40825d
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x50]
je 0x4086b8
fmul dword [0x40d2c8]
fxch st(1)
inc eax
mov dword [esp + 0x80], eax
fld st(1)
fdiv st(3)
fldcw word [esp + 0x6c]
fistp dword [esp + 0x68]
fldcw word [esp + 0x6e]
mov edx, dword [esp + 0x68]
push edx
fild dword [esp]
fmul st(3)
add esp, 4
lea eax, [edx + 0x30]
fsubp st(2)
fxch st(1)
fstp qword [esp + 0x78]
mov byte [ebp], al
inc ebp
fld qword [esp + 0x78]
fucom st(1)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
jne 0x40823c
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x408067
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4084af
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x4082d0
push eax
push eax
mov edi, dword [esp + 0x38]
push edi
mov esi, dword [esp + 0x24]
push esi
call sym.___lshift_D2A
mov dword [esp + 0x28], eax
add esp, 0x10
mov eax, dword [esp + 0x18]
test ebx, ebx
mov dword [esp + 0x1c], eax
jne 0x408ae1
mov dword [esp + 0x80], 1
jmp 0x4083db
sub esp, 0xc
push esi
call sym.___Bfree_D2A
add esp, 0x10
mov eax, dword [esp + 0xb0]
or eax, edi
jne 0x408329
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x28]
mov edx, dword [eax]
xor edx, 1
test ecx, ecx
sete al
and eax, 0xff
test eax, edx
jne 0x408b95
test ebx, ebx
js 0x4089a0
or ebx, dword [esp + 0xb0]
jne 0x40834a
mov eax, dword [esp + 0xa8]
test byte [eax], 1
je 0x4089a0
test edi, edi
setg dl
cmp dword [esp + 0x28], 2
setne al
and eax, 0xff
test edx, eax
jne 0x408b42
mov dl, byte [esp + 0x58]
mov byte [ebp], dl
inc ebp
mov ebx, dword [esp + 0x50]
cmp dword [esp + 0x80], ebx
je 0x40850e
push esi
push 0
push 0xa
mov ebx, dword [esp + 0x2c]
push ebx
call sym.___multadd_D2A
mov dword [esp + 0x30], eax
add esp, 0x10
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x1c], eax
je 0x408443
push edx
push 0
push 0xa
mov eax, dword [esp + 0x28]
push eax
call sym.___multadd_D2A
mov dword [esp + 0x2c], eax
add esp, 0xc
push 0
push 0xa
mov eax, dword [esp + 0x24]
push eax
call sym.___multadd_D2A
mov dword [esp + 0x28], eax
add esp, 0x10
mov eax, dword [esp + 0x80]
inc eax
mov dword [esp + 0x80], eax
push eax
push eax
mov eax, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x2c]
push eax
call sym.___quorem_D2A
add eax, 0x30
mov dword [esp + 0x68], eax
pop esi
pop edi
mov edi, 1
mov ebx, dword [esp + 0x24]
push ebx
mov ecx, dword [esp + 0x2c]
push ecx
call sym.___cmp_D2A
mov ebx, eax
pop eax
pop edx
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push eax
call sym.___diff_D2A
mov esi, eax
add esp, 0x10
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4082f0
push eax
push eax
push esi
mov edi, dword [esp + 0x2c]
push edi
call sym.___cmp_D2A
add esp, 0x10
mov edi, eax
jmp 0x4082f0
push ecx
push 0
push 0xa
push eax
call sym.___multadd_D2A
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
jmp 0x4083c9
cmp eax, 3
jg 0x407f64
add eax, 0x1c
jmp 0x407f47
neg ebx
xor esi, esi
mov dword [esp + 0x64], ebx
jmp 0x407b0d
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x64]
sub ecx, ebx
mov dword [esp + 0x24], 0
neg ebx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], ebx
jmp 0x407b2b
sub esp, 0xc
mov eax, dword [esp + 0x28]
push eax
call sym.___Bfree_D2A
add esp, 0x10
jmp 0x408057
mov dword [esp + 0x80], 1
jmp 0x4084e1
push edi
push 0
push 0xa
mov esi, dword [esp + 0x2c]
push esi
call sym.___multadd_D2A
mov dword [esp + 0x30], eax
add esp, 0x10
mov ebx, dword [esp + 0x80]
inc ebx
mov dword [esp + 0x80], ebx
push eax
push eax
mov ebx, ebp
mov eax, dword [esp + 0x1c]
inc ebp
push eax
mov eax, dword [esp + 0x2c]
push eax
call sym.___quorem_D2A
add eax, 0x30
mov dword [esp + 0x68], eax
add esp, 0x10
mov byte [ebx], al
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x80], edx
jl 0x4084bc
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x408942
cmp dword [esp + 0x28], 2
je 0x40897d
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x10]
cmp eax, 1
jle 0x408b25
mov dword [esp + 0x44], 0x20
dec ebp
cmp byte [ebp], 0x39
jne 0x4086ae
cmp ebp, dword [esp + 0x10]
jne 0x40853d
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x10]
mov ebp, eax
inc ebp
mov byte [eax], 0x31
jmp 0x40801e
push edx
push edx
mov eax, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x2c]
push eax
call sym.___cmp_D2A
add esp, 0x10
test eax, eax
jns 0x407fa8
mov eax, dword [esp + 0x40]
dec eax
mov dword [esp + 0x40], eax
push eax
push 0
push 0xa
mov eax, dword [esp + 0x2c]
push eax
call sym.___multadd_D2A
mov dword [esp + 0x30], eax
add esp, 0x10
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x408be6
mov eax, dword [esp + 0x48]
mov dword [esp + 0x50], eax
jmp 0x407fa8
mov eax, dword [esp + 0x34]
test eax, eax
je 0x408788
fld dword [0x40d2d4]
fnstcw word [esp + 0x6e]
fmul st(1)
mov edx, dword [esp + 0x50]
mov ax, word [esp + 0x6e]
mov dword [esp + 0x80], 0
mov ah, 0xc
fdiv qword [edx*8 + case.0x407b88.5]
mov word [esp + 0x6c], ax
fld dword [0x40d2c8]
fxch st(1)
fsub qword [esp + 0x70]
fstp qword [esp + 0x70]
jmp 0x408648
fld st(2)
fsub st(2)
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x45
je 0x4088d3
mov eax, dword [esp + 0x80]
inc eax
mov dword [esp + 0x80], eax
cmp eax, dword [esp + 0x50]
jge 0x408b88
fmul st(4)
fxch st(1)
fmul st(4)
fxch st(1)
fstp qword [esp + 0x70]
fxch st(3)
fld st(3)
fdiv st(2)
fldcw word [esp + 0x6c]
fistp dword [esp + 0x68]
fldcw word [esp + 0x6e]
mov edx, dword [esp + 0x68]
push edx
fild dword [esp]
fmul st(2)
add esp, 4
lea eax, [edx + 0x30]
fsubp st(4)
fxch st(3)
fstp qword [esp + 0x78]
mov byte [ebp], al
inc ebp
fld qword [esp + 0x78]
fld qword [esp + 0x70]
fucom st(1)
fnstsw ax
test ah, 0x45
jne 0x40860c
fstp st(0)
fstp st(1)
fstp st(1)
fstp st(1)
fldz
fxch st(1)
fucompp
fnstsw ax
and ah, 0x45
cmp ah, 0x40
je 0x408067
mov dword [esp + 0x44], 0x10
jmp 0x408067
mov eax, ebp
inc ebp
inc byte [eax]
jmp 0x40801e
fstp st(1)
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4088a6
fstp st(0)
fstp st(0)
mov dword [esp + 0x44], 0x10
cmp dword [esp + 0x28], 1
jne 0x408067
mov dword [esp + 0x44], 0x20
dec ebp
cmp byte [ebp], 0x39
jne 0x408702
cmp ebp, dword [esp + 0x10]
jne 0x4086e5
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x10]
inc ebx
mov dword [esp + 0x40], ebx
mov byte [edx], 0x30
mov eax, ebp
inc ebp
inc byte [eax]
jmp 0x408067
push eax
push eax
mov eax, dword [esp + 0x68]
push eax
mov edi, dword [esp + 0x18]
push edi
call sym.___pow5mult_D2A
mov dword [esp + 0x30], eax
add esp, 0x10
jmp 0x407ebd
cmp dword [esp + 0x84], 1
jne 0x407efa
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + 4]
inc eax
cmp eax, dword [esp + 0x5c]
jge 0x407efa
mov eax, dword [esp + 0x64]
inc esi
inc eax
mov bl, 1
mov dword [esp + 0x64], eax
jmp 0x407efa
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x24]
sub ebx, eax
mov ecx, dword [esp + 0x60]
add edi, ebx
add ecx, ebx
mov dword [esp + 0x24], edi
xor edi, edi
mov dword [esp + 0x60], ecx
jmp 0x407df0
push eax
push eax
push ebx
mov eax, dword [esp + 0x2c]
push eax
jmp 0x408718
mov edx, dword [esp + 0x50]
fnstcw word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov dword [esp + 0x80], 1
fld qword [edx*8 + 0x40d300]
fmul qword [esp + 0x70]
mov ah, 0xc
mov word [esp + 0x6c], ax
fstp qword [esp + 0x70]
jmp 0x4087f5
push edx
fild dword [esp]
fmul st(1)
add esp, 4
fsubp st(3)
fxch st(2)
fstp qword [esp + 0x78]
lea eax, [edx + 0x30]
mov byte [ebp], al
inc ebp
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x50]
je 0x408811
fld dword [0x40d2c8]
fmul qword [esp + 0x78]
inc eax
mov dword [esp + 0x80], eax
fst qword [esp + 0x78]
fxch st(2)
fld st(2)
fdiv st(1)
fldcw word [esp + 0x6c]
fistp dword [esp + 0x68]
fldcw word [esp + 0x6e]
mov edx, dword [esp + 0x68]
test edx, edx
jne 0x4087b8
fstp st(2)
jmp 0x4087c9
fxch st(1)
fmul dword [0x40d2d4]
fld qword [esp + 0x70]
fld st(0)
fadd st(2)
fld qword [esp + 0x78]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x45
je 0x4088d5
fxch st(2)
fsubrp st(1)
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x407d72
fstp st(1)
dec ebp
cmp byte [ebp], 0x30
je 0x408847
inc ebp
jmp 0x40868d
mov edi, dword [esp + 0x40]
neg edi
fld1
je 0x407caa
fxch st(2)
mov eax, edi
mov ebx, edi
and eax, 0xf
sar ebx, 4
fmul qword [eax*8 + 0x40d308]
fld st(0)
je 0x408b35
mov dword [esp + 0x80], ecx
mov eax, ecx
test bl, 1
je 0x40889f
fstp st(0)
fmul qword [ecx*8 + 0x40d408]
mov edx, dword [esp + 0x54]
inc edx
mov dword [esp + 0x54], edx
fld st(0)
sar ebx, 1
lea ecx, [eax + 1]
jmp 0x408877
fadd st(0)
fucom st(1)
fnstsw ax
test ah, 0x45
fst qword [esp + 0x78]
je 0x4088d9
fucompp
fnstsw ax
and ah, 0x45
xor ah, 0x40
jne 0x4086a1
and edx, 1
je 0x4086a1
jmp 0x4086dd
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x4086dd
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x2c]
sub eax, edx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x80], eax
mov edx, dword [esp + 0xa4]
sub edx, eax
mov ecx, dword [ebx + 4]
inc eax
cmp edx, ecx
jge 0x408926
mov eax, dword [esp + 0xa4]
sub eax, ecx
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xa4]
inc eax
mov dword [esp + 0x80], eax
jmp 0x407e03
mov dword [esp + 0xb4], 1
jmp 0x407ba6
push edi
push edi
push 1
mov esi, dword [esp + 0x2c]
push esi
call sym.___lshift_D2A
mov dword [esp + 0x30], eax
pop ecx
pop ebx
mov edx, dword [esp + 0x1c]
push edx
push eax
call sym.___cmp_D2A
add esp, 0x10
test eax, eax
jg 0x408535
jne 0x408c01
test byte [esp + 0x58], 1
jne 0x408535
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x10]
dec eax
jle 0x408bd2
mov dword [esp + 0x44], 0x10
dec ebp
cmp byte [ebp], 0x30
je 0x408993
inc ebp
jmp 0x40801e
mov eax, dword [esp + 0x28]
test eax, eax
je 0x408a74
mov edx, dword [esp + 0x20]
cmp dword [edx + 0x10], 1
jle 0x408a69
mov dword [esp + 0x44], 0x10
cmp dword [esp + 0x28], 2
jne 0x4089fc
jmp 0x408ad4
mov dword [esp + 0x18], eax
push edi
push 0
push 0xa
mov esi, dword [esp + 0x2c]
push esi
call sym.___multadd_D2A
mov dword [esp + 0x30], eax
pop ecx
pop ebx
mov edx, dword [esp + 0x1c]
push edx
push eax
call sym.___quorem_D2A
add eax, 0x30
mov dword [esp + 0x68], eax
add esp, 0x10
push eax
push eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push eax
call sym.___cmp_D2A
add esp, 0x10
test eax, eax
jle 0x408b5b
mov bl, byte [esp + 0x58]
mov byte [ebp], bl
push eax
push 0
push 0xa
mov eax, dword [esp + 0x24]
inc ebp
push eax
call sym.___multadd_D2A
add esp, 0x10
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], edx
jne 0x4089ce
mov dword [esp + 0x1c], eax
jmp 0x4089ce
fstp st(1)
fstp st(1)
fstp qword [esp + 0x78]
jmp 0x408003
mov edx, dword [esp + 0x64]
mov dword [esp + 0x80], 0
sub edx, eax
mov dword [esp + 0x30], edx
jmp 0x407e03
mov eax, dword [edx + 0x14]
test eax, eax
jne 0x4089ba
test edi, edi
jle 0x408abe
push edi
push edi
push 1
mov esi, dword [esp + 0x2c]
push esi
call sym.___lshift_D2A
mov dword [esp + 0x30], eax
pop ecx
pop ebx
mov edx, dword [esp + 0x1c]
push edx
push eax
call sym.___cmp_D2A
add esp, 0x10
test eax, eax
jle 0x408c0d
mov eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x58], eax
cmp dword [esp + 0x58], 0x3a
je 0x408b77
mov dword [esp + 0x44], 0x20
mov ebx, dword [esp + 0x20]
cmp dword [ebx + 0x10], 1
jle 0x408c23
mov dword [esp + 0x44], 0x10
mov al, byte [esp + 0x58]
mov byte [ebp], al
inc ebp
jmp 0x40801e
sub esp, 0xc
mov edx, dword [esp + 0x24]
mov ebx, dword [edx + 4]
push ebx
call sym.___Balloc_D2A
mov ebx, dword [esp + 0x2c]
mov edi, eax
cld
mov ecx, dword [ebx + 0x10]
mov esi, ebx
add edi, 0xc
add esi, 0xc
lea ecx, [ecx*4 + 8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
pop edx
pop ecx
push 1
push eax
call sym.___lshift_D2A
mov dword [esp + 0x28], eax
add esp, 0x10
jmp 0x4082e0
mov edx, dword [ebx + 0x14]
test edx, edx
jne 0x408535
jmp 0x408984
fxch st(1)
fstp qword [esp + 0x78]
fxch st(2)
jmp 0x407caa
cmp dword [esp + 0x58], 0x39
je 0x408b77
mov al, byte [esp + 0x58]
mov dword [esp + 0x44], 0x20
inc eax
mov byte [ebp], al
jmp 0x408adb
mov eax, dword [esp + 0x58]
mov dword [esp + 0x44], 0x20
inc eax
mov dword [esp + 0x58], eax
cmp dword [esp + 0x58], 0x3a
jne 0x408ad4
mov byte [ebp], 0x39
inc ebp
jmp 0x408535
fstp st(0)
jmp 0x40815c
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(1)
jmp 0x407d74
cmp dword [esp + 0x58], 0x39
je 0x408b77
test ebx, ebx
jle 0x408c37
mov eax, dword [esp + 0x58]
mov dword [esp + 0x44], 0x20
inc eax
mov dword [esp + 0x58], eax
mov bl, byte [esp + 0x58]
mov byte [ebp], bl
inc ebp
jmp 0x40801e
fstp st(0)
fstp st(1)
mov dword [esp + 0x80], ecx
jmp 0x407d74
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x408993
jmp 0x40898b
push edi
push 0
push 0xa
mov esi, dword [esp + 0x24]
push esi
call sym.___multadd_D2A
mov dword [esp + 0x28], eax
add esp, 0x10
jmp 0x4085ad
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x10]
jmp 0x408984
jne 0x408ab6
test byte [esp + 0x58], 1
je 0x408ab6
jmp 0x408aa2
mov edi, dword [ebx + 0x14]
test edi, edi
jne 0x408acc
mov al, byte [esp + 0x58]
jmp 0x408ad8
mov edx, dword [esp + 0x20]
cmp dword [edx + 0x10], 1
jle 0x408c4e
mov dword [esp + 0x44], 0x10
jmp 0x408bb5
mov eax, dword [edx + 0x14]
test eax, eax
je 0x408bb5
jmp 0x408c41