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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2ac
mov eax, dword [0x19a91810]
xor eax, esp
mov dword [esp + 0x2a8], eax
push ebx
xor eax, eax
mov dword [esp + 0x30], 0x7fffffff
push esi
push edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x3c], eax
cmp dword [0x19a964d4], eax
jne 0x10025644
cmp dword [0x19b9d170], eax
je 0x10025644
cmp dword [0x19a964e4], eax
je 0x1002445d
push 0x19a95e30
push 0x3ea
call fcn.100341f0
add esp, 8
push 0
push dword [0x19b9d18c]
push dword [0x19b9d554]
call fcn.10034c80
call fcn.1000f740
push 1
push 6
push dword [0x19b9d554]
mov word [0x19b9d54c], ax
call fcn.10034c80
add esp, 0x18
push 0
call fcn.1000f7a0
add eax, dword [0x19b9d18c]
push eax
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
call fcn.1000f7a0
mov esi, eax
call fcn.1000f7a0
test esi, esi
je 0x10025644
lea ecx, [ecx]
dec esi
mov dword [esp + 0x20], esi
call fcn.1000f7a0
mov ebx, eax
call fcn.1000f7a0
mov edi, eax
call fcn.1000f7a0
push dword [0x19b9d554]
mov esi, eax
call fcn.10034dc0
mov dword [esp + 0x50], eax
mov eax, dword [0x19b9d18c]
push 0
add eax, esi
push eax
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0x10
cmp ebx, 0x419
jne 0x10024631
call fcn.1000f7a0
xor esi, esi
call fcn.1000f7a0
mov dword [esp + 0x18], eax
fld dword [esp + 0x18]
fstp dword [esp + esi*4 + 0xb0]
inc esi
cmp esi, 8
jl 0x10024514
fld dword [0x19b5ac60]
xor ecx, ecx
fsub dword [esp + 0xcc]
mov dword [esp + 0x10], ecx
fmul dword [esp + 0xc8]
fld1
faddp st(1)
fadd dword [esp + 0xbc]
fstp dword [esp + 0xbc]
fldz
fild dword [esp + 0x10]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(0)
fmul dword [esp + 0xc4]
fadd dword [esp + 0xbc]
fmulp st(1)
fadd dword [esp + 0xb4]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld qword [0x19a90df8]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x100245ae
fxch st(1)
fst dword [esp + 0x10]
fld dword [0x19a90e24]
jmp 0x100245be
fld dword [0x19a90e24]
fst dword [esp + 0x10]
fxch st(1)
fxch st(2)
fxch st(1)
fld dword [esp + 0x10]
fcomp st(4)
fnstsw ax
test ah, 5
jp 0x100245d5
fstp st(1)
fstp st(1)
fstp st(0)
fldz
jmp 0x100245e6
fxch st(2)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x100245e4
fstp st(1)
jmp 0x100245e6
fstp st(0)
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x18], eax
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fldcw word [esp + 0x18]
fistp dword [esp + 0x18]
mov ax, word [esp + 0x18]
mov word [ecx*2 + 0x19b7afe0], ax
inc ecx
mov dword [esp + 0x10], ecx
fldcw word [esp + 0x14]
cmp ecx, 0x10000
jl 0x1002455c
fstp st(0)
jmp 0x10024704
cmp ebx, 0x41a
jne 0x1002476b
xor esi, esi
nop
call fcn.1000f7a0
mov dword [esp + 0x18], eax
fld dword [esp + 0x18]
fstp dword [esp + esi*4 + 0xb0]
inc esi
cmp esi, 4
jl 0x10024640
xor ecx, ecx
mov dword [esp + 0x10], ecx
fldz
mov eax, 4
fstp dword [esp + 0x14]
fild dword [esp + 0x10]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(0)
dec eax
fmul dword [esp + 0x14]
fadd dword [esp + eax*4 + 0xb0]
fstp dword [esp + 0x14]
jne 0x1002467f
fadd dword [esp + 0x14]
fld qword [0x19a90df8]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x100246b9
fldz
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x100246b7
fstp st(2)
fstp st(0)
jmp 0x100246c8
fstp st(0)
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x100246c6
fstp st(0)
jmp 0x100246c8
fstp st(1)
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x18], eax
fldcw word [esp + 0x18]
fistp dword [esp + 0x18]
mov ax, word [esp + 0x18]
mov word [ecx*2 + 0x19b7afe0], ax
inc ecx
mov dword [esp + 0x10], ecx
fldcw word [esp + 0x14]
cmp ecx, 0x10000
jl 0x10024660
mov cx, word [0x19b9d08a]
xor eax, eax
xor edi, edi
cmp ax, cx
jae 0x10025214
movzx edx, word [0x19b9d088]
and ebx, 1
mov esi, ebx
imul esi, dword [0x19b5ac50]
cmp esi, edx
jae 0x1002475e
nop
mov ecx, dword [0x19b9d070]
imul edx, edi
add edx, esi
inc esi
movzx eax, word [ecx + edx*2]
mov ax, word [eax*2 + 0x19b7afe0]
mov word [ecx + edx*2], ax
movzx edx, word [0x19b9d088]
cmp esi, edx
jb 0x10024730
mov cx, word [0x19b9d08a]
inc edi
movzx eax, cx
cmp edi, eax
jb 0x10024722
jmp 0x10025214
cmp ebx, 0x400
jne 0x10024b2e
sub edi, 8
js 0x10025214
add edi, 8
shr edi, 3
mov dword [esp + 0x18], edi
lea ebx, [ebx]
call fcn.1000f740
movzx esi, ax
mov dword [esp + 0x10], esi
call fcn.1000f740
movzx eax, ax
mov dword [esp + 0x14], eax
call fcn.1000f740
movzx edi, ax
call fcn.1000f740
movzx eax, word [0x19b9d088]
mov dword [esp + 0x40], eax
cmp esi, eax
jae 0x10024b1f
cmp edi, 0x83
je 0x10024889
cmp edi, 0x89
je 0x10024889
cmp edi, 0x81
jne 0x10024b1f
movzx eax, word [0x19b9d08a]
mov edx, dword [esp + 0x14]
cmp edx, eax
jae 0x10024b1f
movzx eax, word [0x19b9d082]
mov ecx, edx
sub ecx, eax
xor ebx, ebx
movzx eax, word [0x19b9d080]
add eax, esi
shl ecx, 2
imul eax, eax, 0xfffffffe
and ecx, 0x1c
and eax, 2
add ecx, eax
mov eax, dword [0x19b9d090]
shr eax, cl
and al, 3
cmp al, 1
setne bl
xor edi, edi
shl ebx, 2
lea eax, [ebx + 8]
mov dword [esp + 0x10], eax
cmp ebx, eax
jge 0x1002486c
movsx eax, byte [ebx*2 + 0x19a90a99]
add eax, esi
push eax
movsx eax, byte [ebx*2 + 0x19a90a98]
add eax, edx
push eax
call fcn.100275c0
mov edx, dword [esp + 0x1c]
inc ebx
add esp, 8
add edi, eax
cmp ebx, dword [esp + 0x10]
jl 0x10024841
mov ebx, dword [esp + 0x40]
lea ecx, [edi + 4]
mov eax, dword [0x19b9d070]
imul ebx, edx
sar ecx, 3
add ebx, esi
mov word [eax + ebx*2], cx
jmp 0x10024b1f
movzx eax, word [0x19b9d08a]
xor edi, edi
test eax, eax
je 0x10024b1f
lea ebx, [ebx]
movzx eax, word [0x19b9d082]
mov ecx, edi
sub ecx, eax
xor ebx, ebx
movzx eax, word [0x19b9d080]
add eax, esi
shl ecx, 2
imul eax, eax, 0xfffffffe
and ecx, 0x1c
and eax, 2
add ecx, eax
mov eax, dword [0x19b9d090]
shr eax, cl
and al, 3
cmp al, 1
jne 0x100249f4
lea eax, [esp + 0x7c]
mov ecx, 0x19a90a98
mov dword [esp + 0x14], eax
movsx edx, byte [ecx + 1]
movzx eax, word [0x19b9d08a]
add edx, esi
movsx esi, byte [ecx]
add esi, edi
cmp esi, eax
jae 0x10024914
movzx eax, word [0x19b9d088]
cmp edx, eax
jae 0x10024914
imul eax, esi
add eax, edx
mov edx, dword [0x19b9d070]
movzx eax, word [edx + eax*2]
jmp 0x10024916
xor eax, eax
mov edx, dword [esp + 0x14]
add ecx, 2
mov esi, dword [esp + 0x10]
add ebx, eax
mov dword [edx], eax
add edx, 4
mov dword [esp + 0x14], edx
cmp ecx, 0x19a90aa0
jl 0x100248e2
mov eax, dword [esp + 0x7c]
xor esi, esi
shl eax, 2
sub eax, ebx
cdq
mov ecx, eax
mov eax, dword [esp + 0x80]
shl eax, 2
xor ecx, edx
sub eax, ebx
sub ecx, edx
cdq
xor eax, edx
mov dword [esp + 0x6c], ecx
sub eax, edx
mov dword [esp + 0x70], eax
cmp ecx, eax
jge 0x10024968
mov esi, 1
mov eax, dword [esp + 0x84]
shl eax, 2
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x74], eax
cmp dword [esp + esi*4 + 0x6c], eax
jge 0x10024988
mov esi, 2
mov eax, dword [esp + 0x88]
shl eax, 2
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x78], eax
cmp dword [esp + esi*4 + 0x6c], eax
jge 0x100249a8
mov esi, 3
sub ebx, dword [esp + esi*4 + 0x7c]
mov dword [esp + 0x40], ebx
fild dword [esp + 0x40]
mov esi, dword [esp + 0x10]
fnstcw word [esp + 0x14]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fdiv qword [0x19a89398]
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x40], eax
fadd qword [0x19a891e8]
fldcw word [esp + 0x40]
fistp dword [esp + 0x40]
mov dx, word [esp + 0x40]
fldcw word [esp + 0x14]
jmp 0x10024afa
mov ecx, 0x19a90aa8
lea esp, [esp]
movsx edx, byte [ecx + 1]
movzx eax, word [0x19b9d08a]
add edx, esi
movsx esi, byte [ecx]
add esi, edi
cmp esi, eax
jae 0x10024a32
movzx eax, word [0x19b9d088]
cmp edx, eax
jae 0x10024a32
imul eax, esi
add eax, edx
mov edx, dword [0x19b9d070]
movzx eax, word [edx + eax*2]
jmp 0x10024a34
xor eax, eax
mov esi, dword [esp + 0x10]
add ecx, 2
add ebx, eax
cmp ecx, 0x19a90ab0
jl 0x10024a00
movzx eax, word [0x19b9d08a]
mov cx, word [0x19b9d088]
mov dword [esp + 0x30], ebx
lea ebx, [esi - 2]
cmp edi, eax
jae 0x10024a7a
movzx edx, cx
cmp ebx, edx
jae 0x10024a7a
imul edx, edi
add edx, ebx
mov ebx, dword [0x19b9d070]
movzx edx, word [ebx + edx*2]
mov dword [esp + 0x14], edx
jmp 0x10024a88
mov ebx, dword [0x19b9d070]
mov dword [esp + 0x14], 0
lea edx, [esi + 2]
cmp edi, eax
jae 0x10024aa1
movzx eax, cx
cmp edx, eax
jae 0x10024aa1
imul eax, edi
add eax, edx
movzx eax, word [ebx + eax*2]
jmp 0x10024aa3
xor eax, eax
add eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fnstcw word [esp + 0x14]
fstp qword [esp + 0x40]
fld qword [esp + 0x40]
fmul qword [0x19a90c70]
fild dword [esp + 0x30]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fmul qword [0x19a90c40]
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x30], eax
fadd qword [0x19a891e8]
faddp st(1)
fldcw word [esp + 0x30]
fistp dword [esp + 0x30]
mov dx, word [esp + 0x30]
fldcw word [esp + 0x14]
movzx ecx, word [0x19b9d088]
mov eax, dword [0x19b9d070]
imul ecx, edi
inc edi
add ecx, esi
mov word [eax + ecx*2], dx
movzx edx, word [0x19b9d08a]
cmp edi, edx
jb 0x100248a0
dec dword [esp + 0x18]
jne 0x10024790
jmp 0x10025214
cmp ebx, 0x401
jne 0x10024b3f
push 2
push 1
jmp 0x1002520c
cmp ebx, 0x416
je 0x10025208
cmp ebx, 0x410
je 0x10025208
cmp ebx, 0x40b
jne 0x10024b66
push 4
jmp 0x1002520a
cmp ebx, 0x412
jne 0x10024bbb
push 1
push 0x24
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
call fcn.1000f740
movzx eax, ax
sub eax, dword [0x19b5ac48]
cdq
xor eax, edx
sub eax, edx
cmp dword [esp + 0x38], eax
jle 0x10025214
push dword [0x19b9d554]
mov dword [esp + 0x3c], eax
call fcn.10034dc0
add esp, 4
lea ebx, [eax - 0x26]
mov dword [esp + 0x1c], ebx
jmp 0x10025218
cmp ebx, 0x41f
jne 0x10024dbc
cmp dword [esp + 0x3c], 0
jne 0x10025214
lea esi, [esp + 0x230]
mov dword [esp + 0x18], 2
mov ebx, 2
mov edi, 0x10
jmp 0x10024bf0
call fcn.1000f7a0
mov word [esi], ax
add esi, 2
dec edi
jne 0x10024bf0
dec ebx
jne 0x10024be6
dec dword [esp + 0x18]
jne 0x10024be1
xor esi, esi
lea esp, [esp]
movzx eax, word [esp + esi + 0x230]
movzx edx, word [esp + esi + 0x250]
movzx ecx, word [esp + esi + 0x290]
add edx, eax
movzx eax, word [esp + esi + 0x270]
add eax, 2
add eax, edx
add eax, ecx
sar eax, 2
mov word [esp + esi + 0x210], ax
add esi, 2
cmp esi, 0x20
jl 0x10024c10
movzx eax, word [esp + 0x22e]
xor esi, esi
imul eax, eax, 0xffff
mov dword [esp + 0x10], esi
mov dword [esp + 0x30], eax
xor ebx, ebx
jmp 0x10024c70
lea edi, [ebx + esi*2]
shl edi, 5
lea esi, [esp + 0x230]
add esi, edi
lea edx, [esp + 0x210]
xor ecx, ecx
jmp 0x10024c90
movzx eax, word [esi]
lea esi, [esi + 2]
mov dword [esp + ecx + 0x17c], eax
lea edx, [edx + 2]
movzx eax, word [edx - 2]
mov dword [esp + ecx + 0x12c], eax
add ecx, 4
cmp ecx, 0x40
jl 0x10024c90
movzx ecx, word [esp + edi + 0x24e]
xor edx, edx
mov eax, dword [esp + 0x30]
div ecx
push 0x13
mov dword [esp + 0x170], eax
mov dword [esp + 0x1c0], eax
lea eax, [esp + 0x12c]
push eax
lea eax, [esp + 0x180]
mov dword [esp + 0x130], 0
push eax
mov dword [esp + 0x184], 0
mov dword [esp + 0x17c], 0xffff
mov dword [esp + 0x1cc], 0xffff
call fcn.1000c6b0
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [0x19b5ac58]
mov edi, esi
mov edx, dword [0x19b5ac50]
neg edi
mov cx, word [0x19b9d088]
sbb edi, edi
and edi, eax
test esi, esi
je 0x10024d40
movzx eax, word [0x19b9d08a]
cmp edi, eax
jae 0x10024d97
mov esi, ebx
neg esi
sbb esi, esi
and esi, edx
lea esp, [esp]
movzx eax, cx
test ebx, ebx
jne 0x10024d59
mov eax, edx
cmp esi, eax
jae 0x10024d8b
movzx edx, cx
mov ecx, dword [0x19b9d070]
imul edx, edi
add edx, esi
inc esi
movzx eax, word [ecx + edx*2]
mov ax, word [eax*2 + 0x19b7afe0]
mov word [ecx + edx*2], ax
mov edx, dword [0x19b5ac50]
mov cx, word [0x19b9d088]
jmp 0x10024d50
mov eax, dword [0x19b5ac58]
inc edi
mov esi, dword [esp + 0x10]
jmp 0x10024d35
inc ebx
cmp ebx, 2
jl 0x10024c70
inc esi
mov dword [esp + 0x10], esi
cmp esi, 2
jl 0x10024c64
mov dword [esp + 0x3c], 1
jmp 0x10025214
cmp ebx, 0x41e
jne 0x10024f40
cmp dword [esp + 0x28], 0
jne 0x10025214
call fcn.1000f7a0
call fcn.1000f7a0
call fcn.1000f7a0
call fcn.1000f7a0
call fcn.1000f7a0
mov dword [esp + 0x30], eax
fld dword [esp + 0x30]
fld1
faddp st(1)
fstp dword [esp + 0xd0]
call fcn.1000f7a0
call fcn.1000f7a0
call fcn.1000f7a0
call fcn.1000f7a0
call fcn.1000f7a0
call fcn.1000f7a0
mov dword [esp + 0x30], eax
fld dword [esp + 0x30]
fld1
faddp st(1)
fstp dword [esp + 0xd4]
call fcn.1000f7a0
call fcn.1000f7a0
call fcn.1000f7a0
call fcn.1000f7a0
mov dword [esp + 0x30], eax
fld dword [esp + 0x30]
fld1
faddp st(1)
fstp dword [esp + 0xd8]
call fcn.1000f7a0
call fcn.1000f7a0
call fcn.1000f7a0
call fcn.1000f7a0
mov dx, word [0x19b9d08a]
xor ecx, ecx
mov dword [esp + 0x30], eax
xor eax, eax
fld dword [esp + 0x30]
fld1
mov dword [esp + 0x28], ecx
faddp st(1)
fstp dword [esp + 0xdc]
cmp ax, dx
jae 0x10024f33
movzx esi, word [0x19b9d088]
lea ecx, [ecx]
xor edi, edi
test esi, esi
je 0x10024f23
jmp 0x10024eb0
mov ebx, dword [0x19b9d070]
imul esi, ecx
add esi, edi
cmp ecx, dword [0x19b5ac58]
sbb ecx, ecx
inc ecx
cmp edi, dword [0x19b5ac50]
sbb eax, eax
inc eax
lea eax, [eax + ecx*2]
fld dword [esp + eax*4 + 0xd0]
movzx eax, word [ebx + esi*2]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fstp qword [esp + 0x30]
fmul qword [esp + 0x30]
call 0x10039a60
cmp eax, 0xffff
jge 0x10024f03
xor ecx, ecx
test eax, eax
sets cl
dec ecx
and ecx, eax
jmp 0x10024f08
mov ecx, 0xffff
mov word [ebx + esi*2], cx
inc edi
movzx esi, word [0x19b9d088]
mov ecx, dword [esp + 0x28]
cmp edi, esi
jb 0x10024eb0
mov dx, word [0x19b9d08a]
inc ecx
movzx eax, dx
mov dword [esp + 0x28], ecx
cmp ecx, eax
jb 0x10024ea0
mov dword [esp + 0x28], 1
jmp 0x10025214
cmp ebx, 0x431
jne 0x10025214
cmp dword [esp + 0x28], 0
jne 0x10025214
xor esi, esi
lea esp, [esp]
call fcn.1000f7a0
mov word [esp + esi*2 + 0x1c8], ax
inc esi
cmp esi, 7
jl 0x10024f60
lea esi, [esp + 0x1d8]
mov dword [esp + 0x18], 2
jmp 0x10024f90
mov ebx, 2
mov edi, 7
lea ebx, [ebx]
call fcn.1000f7a0
mov word [esi], ax
add esi, 2
dec edi
jne 0x10024fa0
dec ebx
jne 0x10024f95
dec dword [esp + 0x18]
jne 0x10024f90
movzx edx, word [esp + 0x1c8]
xor esi, esi
movzx edi, word [esp + 0x1ca]
mov dword [esp + 0x28], esi
lea ecx, [ecx]
xor ebx, ebx
lea eax, [ebx + esi*2]
mov dword [esp + 0x108], edx
lea esi, [eax*8]
mov dword [esp + 0x10c], edi
sub esi, eax
mov dword [esp + 0xe0], 0
mov eax, 0xd1b71759
mov dword [esp + 0x104], 0
push 9
mov dword [esp + 0x104], 0xffff
movzx ecx, word [esp + esi*2 + 0x1dc]
imul ecx, edx
mov dword [esp + 0x128], 0xffff
mul ecx
movzx ecx, word [esp + esi*2 + 0x1de]
mov eax, 0xd1b71759
imul ecx, edi
shr edx, 0xd
mov dword [esp + 0xe8], edx
mul ecx
movzx eax, word [esp + 0x1d0]
movzx ecx, word [esp + esi*2 + 0x1e0]
imul ecx, eax
mov dword [esp + 0x114], eax
mov eax, 0xd1b71759
shr edx, 0xd
mov dword [esp + 0xec], edx
mul ecx
movzx eax, word [esp + 0x1d2]
movzx ecx, word [esp + esi*2 + 0x1e2]
imul ecx, eax
mov dword [esp + 0x118], eax
mov eax, 0xd1b71759
shr edx, 0xd
mov dword [esp + 0xf0], edx
mul ecx
movzx eax, word [esp + 0x1d4]
movzx ecx, word [esp + esi*2 + 0x1e4]
imul ecx, eax
mov dword [esp + 0x11c], eax
mov eax, 0xd1b71759
shr edx, 0xd
mov dword [esp + 0xf4], edx
mul ecx
movzx eax, word [esp + 0x1d6]
movzx ecx, word [esp + esi*2 + 0x1e6]
imul ecx, eax
mov dword [esp + 0x120], eax
mov eax, 0xd1b71759
shr edx, 0xd
mov dword [esp + 0xf8], edx
mul ecx
movzx eax, word [esp + 0x1d8]
movzx ecx, word [esp + esi*2 + 0x1e8]
imul ecx, eax
mov dword [esp + 0x124], eax
mov eax, 0xd1b71759
shr edx, 0xd
mov dword [esp + 0xfc], edx
mul ecx
lea eax, [esp + 0xe4]
push eax
lea eax, [esp + 0x10c]
shr edx, 0xd
push eax
mov dword [esp + 0x108], edx
call fcn.1000c6b0
mov esi, dword [esp + 0x34]
add esp, 0xc
mov eax, dword [0x19b5ac58]
mov edi, esi
mov edx, dword [0x19b5ac50]
neg edi
mov cx, word [0x19b9d088]
sbb edi, edi
and edi, eax
nop
test esi, esi
je 0x1002516b
movzx eax, word [0x19b9d08a]
cmp edi, eax
jae 0x100251be
mov esi, ebx
neg esi
sbb esi, esi
and esi, edx
movzx eax, cx
test ebx, ebx
jne 0x10025180
mov eax, edx
cmp esi, eax
jae 0x100251b2
movzx edx, cx
mov ecx, dword [0x19b9d070]
imul edx, edi
add edx, esi
inc esi
movzx eax, word [ecx + edx*2]
mov ax, word [eax*2 + 0x19b7afe0]
mov word [ecx + edx*2], ax
mov edx, dword [0x19b5ac50]
mov cx, word [0x19b9d088]
jmp 0x10025177
mov eax, dword [0x19b5ac58]
inc edi
mov esi, dword [esp + 0x28]
jmp 0x10025160
movzx edx, word [esp + 0x1c8]
inc ebx
movzx edi, word [esp + 0x1ca]
cmp ebx, 2
jl 0x10024fd2
movzx edx, word [esp + 0x1c8]
inc esi
movzx edi, word [esp + 0x1ca]
mov dword [esp + 0x28], esi
cmp esi, 2
jl 0x10024fd0
mov dword [esp + 0x28], 1
mov dword [esp + 0x3c], 1
jmp 0x10025214
push 2
push 0
call fcn.10025660
add esp, 8
mov ebx, dword [esp + 0x1c]
push 0
push dword [esp + 0x50]
push dword [0x19b9d554]
call fcn.10034c80
mov esi, dword [esp + 0x2c]
add esp, 0xc
test esi, esi
jne 0x100244c0
test ebx, ebx
je 0x10025644
push esi
push ebx
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
call fcn.1000f7a0
and eax, 0x7fff
mov dword [esp + esi*4 + 0x8c], eax
inc esi
cmp esi, 9
jl 0x10025250
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
imul esi, dword [esp + 0x98]
imul edi, dword [esp + 0x9c]
push 6
lea eax, [edi + esi]
push eax
call fcn.100376e0
add esp, 8
mov dword [esp + 0x54], eax
test eax, eax
jne 0x100252c4
push 0x19a91dfc
push dword [0x19b9d548]
push 0x19a95094
push 0x3ea
call fcn.100341f0
push 1
push 0x19b5ae60
call fcn.10034ff0
add esp, 0x18
mov eax, dword [esp + 0x54]
push dword [0x19b9d554]
mov word [esp + 0x54], 0xffff
push 2
lea eax, [eax + esi*4]
mov dword [esp + 0x60], eax
lea eax, [eax + edi*4]
mov dword [esp + 0x64], eax
lea eax, [eax + esi*2]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x58]
push 1
push eax
call fcn.10034540
add esp, 0x10
xor ebx, ebx
lea ecx, [ecx]
mov edi, dword [esp + ebx + 0x90]
imul edi, dword [esp + ebx + 0x98]
test edi, edi
jle 0x1002532c
mov esi, dword [esp + ebx + 0x54]
call fcn.1000f7a0
mov dword [esp + 0x20], eax
fld dword [esp + 0x20]
fstp dword [esi]
add esi, 4
dec edi
jne 0x10025317
add ebx, 4
cmp ebx, 8
jl 0x10025300
xor ebx, ebx
mov dword [esp + 0x38], ebx
lea ebx, [ebx]
mov edi, dword [esp + ebx + 0x90]
imul edi, dword [esp + ebx + 0x98]
test edi, edi
jle 0x100253b4
mov esi, dword [esp + ebx + 0x5c]
mov ebx, 0x4949
lea esp, [esp]
push dword [0x19b9d554]
lea eax, [esp + 0x30]
mov word [esp + 0x30], 0xffff
push 2
push 1
push eax
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], bx
jne 0x10025393
movzx ecx, byte [esp + 0x2d]
movzx eax, byte [esp + 0x2c]
jmp 0x1002539d
movzx ecx, byte [esp + 0x2c]
movzx eax, byte [esp + 0x2d]
shl cx, 8
or cx, ax
movzx eax, cx
mov word [esi], ax
add esi, 2
dec edi
jne 0x10025360
mov ebx, dword [esp + 0x38]
add ebx, 4
mov dword [esp + 0x38], ebx
cmp ebx, 8
jl 0x10025340
mov cx, word [0x19b9d08a]
xor edx, edx
xor eax, eax
mov dword [esp + 0x10], edx
cmp ax, cx
jae 0x10025638
movzx ebx, word [0x19b9d088]
fld qword [0x19a89140]
mov dword [esp + 0x38], ebx
xor esi, esi
mov dword [esp + 0x1c], esi
test ebx, ebx
je 0x10025626
fild dword [esp + 0x98]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
mov dword [esp + 0x20], edx
fstp dword [esp + 0x4c]
fild dword [esp + 0x20]
test edx, edx
jns 0x1002541c
fadd dword [0x19a90e2c]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fld dword [esp + 0x4c]
mov dword [esp + 0x20], esi
fild dword [esp + 0x20]
test esi, esi
jns 0x10025442
fadd dword [0x19a90e2c]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fmul st(1)
fild dword [esp + 0x38]
fstp qword [esp + 0x20]
fdiv qword [esp + 0x20]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fld st(0)
call 0x10039a60
imul ebx, dword [esp + 0x10]
mov edi, eax
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
lea ecx, [edi + 2]
add ebx, esi
mov dword [esp + 0x30], ebx
fstp dword [esp + 0x20]
fsub dword [esp + 0x20]
mov eax, dword [0x19b9d070]
mov dword [esp + 0x40], eax
movzx eax, word [eax + ebx*2]
mov dword [esp + 0x20], eax
fstp dword [esp + 0x3c]
fild dword [esp + 0x20]
fstp qword [esp + 0x20]
fld qword [esp + 0x20]
fmul qword [0x19a891e8]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
cmp edi, ecx
jge 0x100255be
mov esi, dword [esp + 0x90]
lea edx, [esp + 0x64]
mov ebx, edi
mov dword [esp + 0x28], edx
imul ebx, esi
fstp st(3)
fldz
sub ecx, edi
lea eax, [esi + esi]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x5c]
lea eax, [eax + ebx*2]
mov dword [esp + 0x38], eax
xor ecx, ecx
xor edi, edi
test esi, esi
jle 0x1002556c
mov edx, eax
movzx eax, word [edx]
lea edi, [ebx + ecx]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fstp qword [esp + 0x20]
fld qword [esp + 0x20]
mov esi, dword [esp + 0x90]
fcomp st(4)
fnstsw ax
test ah, 0x41
je 0x10025526
inc ecx
add edx, 2
cmp ecx, esi
jl 0x100254f8
mov edx, dword [esp + 0x28]
test ecx, ecx
je 0x1002556c
cmp ecx, esi
je 0x1002556c
mov eax, dword [esp + 0x5c]
movzx ecx, word [eax + edi*2]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fstp qword [esp + 0x20]
fld qword [esp + 0x20]
movzx eax, word [eax + edi*2 - 2]
fsub st(4)
sub ecx, eax
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fstp dword [esp + 0x20]
fdiv dword [esp + 0x20]
mov esi, dword [esp + 0x90]
jmp 0x1002556e
fld st(0)
mov eax, dword [esp + 0x54]
add ebx, esi
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fld st(0)
fld1
fsubrp st(1)
fmul dword [eax + edi*4]
fld dword [eax + edi*4 - 4]
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x4c]
fmulp st(2)
mov dword [esp + 0x38], eax
faddp st(1)
fstp dword [edx]
add edx, 4
dec dword [esp + 0x18]
mov dword [esp + 0x28], edx
jne 0x100254ee
mov ebx, dword [esp + 0x30]
fstp st(0)
fld qword [0x19a89140]
fxch st(3)
mov esi, dword [esp + 0x1c]
fld dword [esp + 0x3c]
fld st(0)
fld1
fsubrp st(1)
fmul dword [esp + 0x64]
fld dword [esp + 0x68]
fmulp st(2)
faddp st(1)
fmul st(3)
faddp st(1)
fmul st(3)
call 0x10039a60
cmp eax, 0xffff
jge 0x100255f2
xor ecx, ecx
test eax, eax
sets cl
dec ecx
and ecx, eax
jmp 0x100255f7
mov ecx, 0xffff
mov eax, dword [esp + 0x40]
inc esi
mov dword [esp + 0x1c], esi
mov word [eax + ebx*2], cx
movzx ebx, word [0x19b9d088]
mov dword [esp + 0x38], ebx
cmp esi, ebx
jb 0x10025430
mov cx, word [0x19b9d08a]
fstp st(1)
mov edx, dword [esp + 0x10]
fstp st(0)
inc edx
movzx eax, cx
mov dword [esp + 0x10], edx
cmp edx, eax
jb 0x100253e9
fstp st(0)
push dword [esp + 0x54]
call fcn.10037780
add esp, 4
mov ecx, dword [esp + 0x2b4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10007d50
mov esp, ebp
pop ebp
ret