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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0xb0
cmp byte [0x623584], 0
mov esi, ecx
mov ebx, dword [esp + 0xc8]
jne 0x429c43
mov byte [0x623584], 1
movzx edx, byte [esp + 0xc4]
mov eax, dword [esi + 0x45bd8]
xor edi, edi
mov dword [esp + 0x78], eax
mov ax, word [esi + 0x45be6]
mov word [esp + 0x98], ax
lea eax, [edx*4]
mov ecx, eax
mov edx, eax
mov dword [esp + 0x9c], eax
lea eax, [ecx + edx*2]
mov dword [esp + 0x88], eax
mov dword [esp + 0x9c], eax
jmp 0x429cfb
xor eax, eax
mov edx, dword [esp + 0x88]
lea eax, [eax]
mov ebp, dword [esi + edi*4 + 0x32ae0]
add eax, 6
or word [ebp + edx*2 + 0x64], 0xffff
mov ecx, dword [esi + edi*4 + 0x32ae0]
or word [ecx + edx*2 + 0x66], 0xffff
mov ebp, dword [esi + edi*4 + 0x32ae0]
or word [ebp + edx*2 + 0x68], 0xffff
mov ecx, dword [esi + edi*4 + 0x32ae0]
or word [ecx + edx*2 + 0x6a], 0xffff
mov ebp, dword [esi + edi*4 + 0x32ae0]
or word [ebp + edx*2 + 0x6c], 0xffff
mov ecx, dword [esi + edi*4 + 0x32ae0]
or word [ecx + edx*2 + 0x6e], 0xffff
add edx, 6
cmp ax, 0xc
jl 0x429ca0
inc edi
movsx eax, word [esi + 0x45be4]
cmp edi, eax
jl 0x429c90
mov eax, dword [esp + 0x9c]
xor ebp, ebp
mov dword [esp + 0x8c], eax
jmp 0x429e16
mov eax, dword [esi + ebp*4 + 0x32ae0]
movsx edx, word [eax + 0x5c]
mov dword [esp + 0x48], 0
lea eax, [edx*4]
mov ecx, eax
mov edx, eax
mov dword [esp + 0x38], eax
lea eax, [ecx + edx*2]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
lea edi, [eax*4]
mov eax, dword [esp + 0xcc]
lea edi, [edi + edi*2]
cmp byte [eax + edi + 6], 2
jne 0x429dfe
mov ax, word [eax + edi + 4]
push 0x623588
push ebp
push eax
mov eax, dword [esp + 0xd8]
mov cx, word [eax + edi + 2]
mov ax, word [eax + edi]
push ecx
push eax
mov ecx, esi
call fcn.00429560
mov eax, dword [esi + 0x45bd8]
shl eax, 5
fld dword [0x623588]
add eax, esi
fstp dword [eax]
fld dword [0x62358c]
fstp dword [eax + 4]
fld dword [0x623590]
fstp dword [eax + 8]
mov eax, dword [esi + 0x45bd8]
shl eax, 5
mov word [esi + eax + 0x16], bp
mov edi, dword [esi + 0x45bd8]
shl edi, 5
mov al, byte [esi + edi + 0x1b]
and al, 0xfc
or al, 1
mov byte [esi + edi + 0x1b], al
mov edx, dword [esi + ebp*4 + 0x32ae0]
mov eax, dword [esp + 0x14]
mov cx, word [esi + 0x45bd8]
mov word [edx + eax*2 + 0x64], cx
inc dword [esi + 0x45bd8]
inc dword [esp + 0x48]
inc dword [esp + 0x38]
inc dword [esp + 0x14]
cmp dword [esp + 0x48], 0xc
jl 0x429d54
inc ebp
movsx eax, word [esi + 0x45be4]
cmp ebp, eax
jl 0x429d20
mov dword [esp + 0x54], 0
mov dword [0x623580], 0
jmp 0x42a2b1
mov eax, dword [esp + 0x54]
mov eax, dword [esi + eax*4 + 0x32ae0]
movsx edi, word [eax + 0x5c]
mov dword [esp + 0x2c], 0
fcompp
lea eax, [edi*4]
mov ecx, eax
mov edx, eax
fcompp
mov dword [esp + 0x6c], eax
lea eax, [ecx + edx*2]
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x9c]
fstp st(0)
mov dword [esp + 0x7c], eax
mov edx, dword [esp + 0x70]
lea eax, [edx*4]
mov ecx, eax
mov edx, eax
mov dword [esp + 0x10], eax
lea eax, [ecx + edx*2]
mov ecx, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xcc]
cmp byte [eax + ecx + 6], 1
jne 0x42a29a
mov ax, word [eax + ecx + 4]
push 0x623588
push dword [esp + 0x58]
push eax
mov eax, dword [esp + 0xd8]
mov cx, word [eax + ecx + 2]
push ecx
mov ecx, dword [esp + 0x20]
mov ax, word [eax + ecx]
mov ecx, esi
push eax
call fcn.00429560
fldz
fldz
fldz
fldz
fldz
fld dword [esp + 0xd0]
xor edi, edi
or ebp, 0xffffffff
cmp dword [0x623580], 0
fstp st(2)
jle 0x42a026
fld dword [0x62358c]
xor edx, edx
fstp st(5)
mov eax, eax
lea eax, [eax]
cmp byte [ebx + edx + 0x1a], 1
jne 0x42a016
fld dword [ebx + edx]
fsub dword [0x623588]
fstp st(4)
fld st(3)
fcomp dword [0x5ed47c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x429f40
fld st(3)
fchs
jmp 0x429f42
fld st(3)
fstp st(3)
fld st(2)
fcomp st(2)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x42a016
fld dword [ebx + edx + 4]
fsub st(5)
fstp st(3)
fld st(2)
fcomp dword [0x5ed47c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x429f76
fld st(2)
fchs
jmp 0x429f78
fld st(2)
fstp st(1)
fcom st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x42a016
fld st(2)
fcomp dword [0x5ed47c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x429fa2
fld st(2)
fchs
jmp 0x429fa4
fld st(2)
fstp st(2)
fld st(3)
fcomp dword [0x5ed47c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x429fc0
fld st(3)
fchs
jmp 0x429fc2
fld st(3)
fstp st(1)
fcom st(1)
fnstsw ax
test ah, 0x45
jne 0x429ff0
fld st(3)
fcomp dword [0x5ed47c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x429fe5
fld st(3)
fchs
jmp 0x429fe7
fld st(3)
fstp st(4)
jmp 0x42a00c
fld st(2)
fcomp dword [0x5ed47c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x42a008
fld st(2)
fchs
jmp 0x42a00a
fld st(2)
fstp st(4)
fld st(3)
fstp st(4)
fld st(3)
fstp st(2)
mov ebp, edi
inc edi
add edx, 0x1c
cmp edi, dword [0x623580]
jl 0x429f10
test ebp, ebp
jl 0x42a1a4
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x10]
mov al, byte [ecx + edx + 7]
mov byte [esp], al
cmp byte [esp], 0
jge 0x42a06b
mov edx, dword [esp + 0x6c]
mov byte [esp], 0
jmp 0x42a054
inc edx
inc byte [esp]
mov ecx, edx
mov eax, dword [esp + 0xcc]
lea ecx, [ecx + ecx*2]
movsx eax, byte [eax + ecx*4 + 7]
cmp dword [esp + 0x2c], eax
jne 0x42a050
movsx edx, byte [esp]
lea edi, [ebp + ebp*8]
mov eax, dword [esp + 0x54]
lea edi, [edi + edi*2]
add edx, dword [esp + 0x7c]
add edi, ebp
mov ebp, dword [esi + eax*4 + 0x32ae0]
mov ax, word [ebp + edx*2 + 0x64]
mov word [ebx + edi + 0x16], ax
mov byte [ebx + edi + 0x1a], 2
movsx ecx, word [ebx + edi + 0x16]
movsx eax, word [ebx + edi + 0x14]
shl ecx, 5
shl eax, 5
add ecx, esi
add eax, esi
fld dword [eax + 4]
fsub dword [ecx + 4]
fstp st(4)
fld dword [eax]
fsub dword [ecx]
fstp st(5)
fld dword [ebx + edi + 8]
fadd dword [0x623590]
fmul dword [0x5ed4b0]
fstp st(2)
fld dword [ebx + edi + 4]
fadd dword [0x62358c]
fmul dword [0x5ed4b0]
fstp st(3)
fld dword [ebx + edi]
fadd dword [0x623588]
fmul dword [0x5ed4b0]
fstp dword [ebx + edi]
fld st(2)
fstp dword [ebx + edi + 4]
fld st(1)
fstp dword [ebx + edi + 8]
fld st(3)
fmul st(0)
fld st(5)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0xa8]
fld dword [esp + 0xa8]
fstp st(3)
fld st(4)
fdiv st(3)
fstp dword [ebx + edi + 0xc]
fld st(3)
fdiv st(3)
fstp dword [ebx + edi + 0x10]
cmp byte [esp + 0xc4], 0
jne 0x42aff0
cmp byte [ebx + edi + 0x18], 0
je 0x42a142
cmp byte [ebx + edi + 0x19], 0
jne 0x42a160
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x10]
cmp byte [eax + ecx + 9], 0
je 0x42b000
jmp 0x42b010
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x10]
cmp byte [eax + ecx + 8], 0
je 0x42a17d
cmp byte [eax + ecx + 9], 0
jne 0x42b020
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x10]
mov al, byte [eax + ecx + 9]
mov byte [ebx + edi + 0x18], al
mov eax, dword [esp + 0xcc]
mov al, byte [eax + ecx + 8]
mov byte [ebx + edi + 0x19], al
jmp 0x42b030
mov eax, dword [0x623580]
lea edx, [eax + eax*8]
lea edx, [edx + edx*2]
add edx, eax
fld dword [0x623588]
add edx, ebx
fstp dword [edx]
fld dword [0x62358c]
fstp dword [edx + 4]
fld dword [0x623590]
fstp dword [edx + 8]
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x10]
mov cl, byte [eax + ecx + 7]
test cl, cl
jge 0x42a202
xor cl, cl
mov ebp, dword [esp + 0x6c]
jmp 0x42a1eb
inc ebp
inc cl
mov edx, ebp
mov eax, dword [esp + 0xcc]
lea edx, [edx + edx*2]
movsx eax, byte [eax + edx*4 + 7]
cmp dword [esp + 0x2c], eax
jne 0x42a1e8
mov eax, dword [0x623580]
movsx edx, cl
lea edi, [eax*8]
sub edi, eax
mov eax, dword [esp + 0x54]
mov ebp, dword [esi + eax*4 + 0x32ae0]
add edx, dword [esp + 0x7c]
mov ax, word [ebp + edx*2 + 0x64]
mov word [ebx + edi*4 + 0x14], ax
cmp byte [esp + 0xc4], 0
jne 0x42a27a
mov edx, dword [0x623580]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xcc]
lea ebp, [edx*8]
mov al, byte [eax + ecx + 8]
sub ebp, edx
mov byte [ebx + ebp*4 + 0x18], al
mov ecx, dword [0x623580]
lea edx, [ecx*8]
mov eax, dword [esp + 0xcc]
sub edx, ecx
mov ecx, dword [esp + 0x10]
mov al, byte [eax + ecx + 9]
mov byte [ebx + edx*4 + 0x19], al
mov ebp, dword [0x623580]
lea eax, [ebp*8]
sub eax, ebp
fcompp
fcompp
mov byte [ebx + eax*4 + 0x1a], 1
inc dword [0x623580]
fstp st(0)
inc dword [esp + 0x2c]
inc dword [esp + 0x70]
cmp dword [esp + 0x2c], 0xc
jl 0x429e82
inc dword [esp + 0x54]
movsx eax, word [esi + 0x45be4]
fldz
fldz
cmp dword [esp + 0x54], eax
fldz
fldz
fldz
jl 0x429e40
mov eax, dword [esp + 0x78]
mov dword [esp + 0x90], eax
shl dword [esp + 0x90], 5
mov dword [esp + 0x60], eax
jmp 0x42aaad
mov eax, dword [esp + 0x90]
mov byte [esi + eax + 0x1a], 0
mov bp, word [esi + 0x45be6]
mov word [esi + eax + 0x18], bp
cmp dword [0x623580], 0
mov dword [esp + 0x68], 0
jle 0x42a5a9
xor edi, edi
mov dword [esp + 0x18], eax
mov eax, eax
lea eax, [eax]
cmp byte [ebx + edi + 0x1a], 2
jne 0x42a592
mov dx, word [ebx + edi + 0x14]
movsx ecx, dx
cmp dword [esp + 0x60], ecx
je 0x42a348
movsx eax, word [ebx + edi + 0x16]
cmp dword [esp + 0x60], eax
jne 0x42a592
cmp dword [esp + 0x60], ecx
jne 0x42a364
movsx edx, word [esi + 0x45be6]
mov ax, word [ebx + edi + 0x16]
mov word [esi + edx*2 + 0x3434a], ax
jmp 0x42a373
movsx eax, word [esi + 0x45be6]
mov word [esi + eax*2 + 0x3434a], dx
movsx eax, word [esi + 0x45be6]
movsx ecx, word [esi + eax*2 + 0x3434a]
mov eax, dword [esp + 0x18]
fld dword [esi + eax + 8]
shl ecx, 5
mov eax, dword [esp + 0x18]
add ecx, esi
fsub dword [ecx + 8]
fstp st(3)
fld dword [esi + eax + 4]
fsub dword [ecx + 4]
mov eax, dword [esp + 0x18]
fstp st(4)
fld dword [esi + eax]
fsub dword [ecx]
fstp st(5)
fld st(3)
fstp st(4)
fld st(3)
fmul st(0)
fld st(5)
fmul st(0)
faddp st(1)
fld st(3)
fstp st(6)
fld st(5)
fmul st(0)
faddp st(1)
fstp st(5)
fld st(4)
fsqrt
fstp dword [esp + 0xa8]
fld dword [esp + 0xa8]
fstp st(5)
fld st(4)
fnstcw word [esp + 0xa0]
mov eax, dword [esp + 0xa0]
or byte [esp + 0xa1], 0xc
fldcw word [esp + 0xa0]
mov dword [esp + 0xa0], eax
fistp dword [esp + 0xa8]
movsx eax, word [esi + 0x45be6]
fldcw word [esp + 0xa0]
mov ebp, dword [esp + 0xa8]
mov word [esi + eax*2 + 0x39372], bp
movsx eax, word [esi + 0x45be6]
mov byte [esi + eax + 0x3e39a], 0
cmp byte [esp + 0xc4], 0
jne 0x42a583
xor ecx, ecx
mov edx, edi
jmp 0x42a4bd
mov ebp, ecx
lea ebp, [ebp*8]
lea ebp, [ebp + ebp*2]
fld dword [esi + ebp + 0x26848]
fcomp dword [ebx + edx + 0xc]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x42a4bc
fld dword [esi + ebp + 0x2684c]
fcomp dword [ebx + edx + 0x10]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x42a4bc
fld dword [esi + ebp + 0x26840]
fcomp dword [ebx + edx]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x42a4bc
fld dword [esi + ebp + 0x26844]
fcomp dword [ebx + edx + 4]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x42a4bc
movsx eax, word [esi + 0x45be6]
mov word [esi + eax*2 + 0x40bae], cx
mov ecx, dword [esi + 0x45be8]
inc ecx
mov eax, dword [esi + 0x45be8]
cmp ecx, eax
jl 0x42a447
cmp ecx, eax
jne 0x42a583
fld dword [ebx + edi + 0xc]
lea eax, [eax + eax*2]
fstp dword [esi + eax*8 + 0x26848]
mov eax, dword [esi + 0x45be8]
fld dword [ebx + edi + 0x10]
lea eax, [eax + eax*2]
fstp dword [esi + eax*8 + 0x2684c]
mov eax, dword [esi + 0x45be8]
fld dword [ebx + edi]
lea eax, [eax + eax*2]
fstp dword [esi + eax*8 + 0x26840]
mov eax, dword [esi + 0x45be8]
fld dword [ebx + edi + 4]
lea eax, [eax + eax*2]
fstp dword [esi + eax*8 + 0x26844]
mov ecx, dword [esi + 0x45be8]
mov ax, word [esp + 0x60]
lea ecx, [ecx + ecx*2]
mov word [esi + ecx*8 + 0x26850], ax
mov edx, dword [esi + 0x45be8]
mov al, byte [ebx + edi + 0x18]
lea edx, [edx + edx*2]
mov byte [esi + edx*8 + 0x26852], al
mov ecx, dword [esi + 0x45be8]
mov al, byte [ebx + edi + 0x19]
lea ecx, [ecx + ecx*2]
mov byte [esi + ecx*8 + 0x26853], al
mov eax, dword [esi + 0x45be8]
lea eax, [eax + eax*2]
mov byte [esi + eax*8 + 0x26854], 0
mov ax, word [esi + 0x45be8]
movsx edx, word [esi + 0x45be6]
mov word [esi + edx*2 + 0x40bae], ax
inc dword [esi + 0x45be8]
mov eax, dword [esp + 0x18]
inc byte [esi + eax + 0x1a]
inc word [esi + 0x45be6]
inc dword [esp + 0x68]
mov eax, dword [esp + 0x68]
add edi, 0x1c
cmp eax, dword [0x623580]
jl 0x42a320
mov ecx, dword [esp + 0x90]
xor edi, edi
movsx eax, word [esi + ecx + 0x16]
mov dword [esp + 0x84], eax
mov ebp, dword [esi + eax*4 + 0x32ae0]
movsx eax, word [ebp + 0x5c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x60]
add eax, 0xfffffff4
cmp dword [esp + 0x78], eax
jle 0x42a5e0
mov ecx, dword [esp + 0x78]
jmp 0x42a5e7
mov ecx, dword [esp + 0x60]
add ecx, 0xfffffff4
cmp ecx, dword [esp + 0x60]
mov edx, ecx
jge 0x42a60b
shl ecx, 5
movsx eax, word [esi + ecx + 0x16]
cmp dword [esp + 0x84], eax
jne 0x42a601
inc edi
inc edx
add ecx, 0x20
cmp edx, dword [esp + 0x60]
jl 0x42a5f2
mov eax, dword [esp + 0x60]
add eax, 0xfffffff4
cmp dword [esp + 0x78], eax
jle 0x42a622
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
jmp 0x42a62f
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
add dword [esp + 8], 0xfffffff4
mov eax, dword [esp + 8]
shl dword [esp + 8], 5
mov dword [esp + 0x5c], eax
movsx eax, di
movsx ebp, di
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x58]
lea ecx, [eax*4]
lea ecx, [ecx + ecx*2]
add ecx, ebp
lea eax, [ecx*4]
mov ecx, eax
mov edx, eax
mov dword [esp + 0x50], eax
lea eax, [ecx + edx*2]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x24], eax
lea eax, [ebp*4]
mov ecx, eax
mov edx, eax
mov dword [esp + 0x64], eax
lea eax, [ecx + edx*2]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x58]
imul eax, eax, 0x90
mov dword [esp + 0x58], eax
add eax, dword [esp + 0xcc]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x58]
mov dword [esp + 0x64], eax
add dword [esp + 0x64], 0xa
jmp 0x42aa7f
mov eax, dword [esp + 8]
movsx ebp, word [esi + eax + 0x16]
cmp dword [esp + 0x84], ebp
jne 0x42aa76
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x60]
je 0x42aa76
mov dword [esp + 0x30], eax
sub eax, dword [esp + 0x60]
mov dword [esp + 0x30], eax
add eax, dword [esp + 0x74]
mov dword [esp + 0x30], eax
mov eax, dword [esi + ebp*4 + 0x32ae0]
mov ecx, dword [esp + 0x50]
movsx edi, word [eax + 0x5c]
mov eax, dword [esp + 0xcc]
movsx edx, byte [eax + ecx + 7]
movsx eax, word [esp + 0x30]
cmp eax, edx
mov dword [esp + 0x34], eax
je 0x42a74c
mov eax, edi
lea ecx, [eax*4]
movsx eax, word [esp + 0x30]
lea ecx, [ecx + ecx*2]
add ecx, eax
mov eax, dword [esp + 0xcc]
lea ecx, [ecx + ecx*2]
movsx eax, byte [eax + ecx*4 + 7]
cmp dword [esp + 0x74], eax
jne 0x42aa76
movsx ebp, word [esi + 0x45be6]
mov ax, word [esp + 0x5c]
mov word [esi + ebp*2 + 0x3434a], ax
mov eax, dword [esp + 0x24]
fld dword [esi + eax + 8]
mov eax, dword [esp + 8]
fsub dword [esi + eax + 8]
mov eax, dword [esp + 0x24]
fstp st(3)
fld dword [esi + eax + 4]
mov eax, dword [esp + 8]
fsub dword [esi + eax + 4]
mov eax, dword [esp + 0x24]
fstp st(4)
fld dword [esi + eax]
mov eax, dword [esp + 8]
fsub dword [esi + eax]
fstp st(5)
fld st(3)
fstp st(4)
fld st(3)
fmul st(0)
fld st(5)
fmul st(0)
faddp st(1)
fld st(3)
fstp st(6)
fld st(5)
fmul st(0)
faddp st(1)
fstp st(5)
fld st(4)
fsqrt
fstp dword [esp + 0xa8]
fld dword [esp + 0xa8]
fstp st(5)
fld st(4)
fnstcw word [esp + 0xa0]
mov eax, dword [esp + 0xa0]
or byte [esp + 0xa1], 0xc
fldcw word [esp + 0xa0]
mov dword [esp + 0xa0], eax
fistp dword [esp + 0xa8]
fldcw word [esp + 0xa0]
movsx eax, word [esi + 0x45be6]
mov ecx, dword [esp + 0xa8]
mov word [esi + eax*2 + 0x39372], cx
cmp byte [esp + 0xc4], 0
jne 0x42a9e0
mov eax, dword [esp + 0x24]
fld dword [esi + eax]
mov eax, dword [esp + 8]
fstp st(2)
fld dword [esi + eax]
fst st(1)
fadd st(2)
fmul dword [0x5ed4b0]
mov eax, dword [esp + 0x24]
fstp st(4)
fld dword [esi + eax + 4]
mov eax, dword [esp + 8]
fstp st(5)
fld dword [esi + eax + 4]
fstp dword [esp + 0xa4]
fld dword [esp + 0xa4]
fadd st(5)
fmul dword [0x5ed4b0]
fstp st(3)
fld st(0)
fsub st(2)
fstp st(2)
fld dword [esp + 0xa4]
fsub st(5)
fstp st(5)
fld st(4)
fmul st(0)
fld st(2)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0xa8]
fld dword [esp + 0xa8]
fstp st(1)
mov eax, dword [esp + 0x60]
fdiv st(1), st(0)
fdiv st(4), st(0)
cmp eax, dword [esp + 0x5c]
jge 0x42a8a7
fld st(1)
fchs
fstp st(2)
fld st(4)
fchs
fstp st(5)
xor ecx, ecx
jmp 0x42a91e
mov edx, ecx
lea edx, [edx*8]
lea edx, [edx + edx*2]
fld dword [esi + edx + 0x26848]
fcomp st(2)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x42a91d
fld dword [esi + edx + 0x2684c]
fcomp st(5)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x42a91d
fld dword [esi + edx + 0x26840]
fcomp st(4)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x42a91d
fld dword [esi + edx + 0x26844]
fcomp st(3)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x42a91d
movsx eax, word [esi + 0x45be6]
mov word [esi + eax*2 + 0x40bae], cx
mov ecx, dword [esi + 0x45be8]
inc ecx
mov eax, dword [esi + 0x45be8]
cmp ecx, eax
jl 0x42a8b0
cmp ecx, eax
jne 0x42aa67
fld st(1)
lea eax, [eax + eax*2]
fstp dword [esi + eax*8 + 0x26848]
mov eax, dword [esi + 0x45be8]
fld st(4)
lea eax, [eax + eax*2]
fstp dword [esi + eax*8 + 0x2684c]
mov eax, dword [esi + 0x45be8]
fld st(3)
lea eax, [eax + eax*2]
fstp dword [esi + eax*8 + 0x26840]
mov eax, dword [esi + 0x45be8]
fld st(2)
lea eax, [eax + eax*2]
fstp dword [esi + eax*8 + 0x26844]
mov edi, dword [esi + 0x45be8]
mov ax, word [esp + 0x60]
lea edi, [edi + edi*2]
mov word [esi + edi*8 + 0x26850], ax
mov eax, dword [esi + 0x45be8]
lea eax, [eax + eax*2]
mov byte [esi + eax*8 + 0x26852], 0xff
mov eax, dword [esi + 0x45be8]
lea eax, [eax + eax*2]
mov byte [esi + eax*8 + 0x26853], 0xff
mov eax, dword [esi + 0x45be8]
lea eax, [eax + eax*2]
mov byte [esi + eax*8 + 0x26854], 0
mov ax, word [esi + 0x45be8]
movsx ebp, word [esi + 0x45be6]
mov word [esi + ebp*2 + 0x40bae], ax
inc dword [esi + 0x45be8]
jmp 0x42aa67
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x50]
movsx eax, byte [eax + ecx + 7]
cmp dword [esp + 0x34], eax
jne 0x42aa00
mov eax, dword [esp + 0x64]
mov al, byte [eax]
and al, 1
jne 0x42aa47
mov eax, edi
movsx ecx, word [esp + 0x30]
lea edx, [eax*4]
mov eax, dword [esp + 0xcc]
lea edx, [edx + edx*2]
add edx, ecx
lea edx, [edx + edx*2]
movsx eax, byte [eax + edx*4 + 7]
cmp dword [esp + 0x74], eax
jne 0x42aa58
lea edi, [edi + edi*8]
lea ecx, [ecx + ecx*2]
add edi, edi
mov eax, dword [esp + 0xcc]
imul edi, edi, 8
imul ecx, ecx, 4
add edi, ecx
mov al, byte [eax + edi + 0xa]
and al, 1
je 0x42aa58
movsx eax, word [esi + 0x45be6]
or byte [esi + eax + 0x3e39a], 1
jmp 0x42aa67
movsx eax, word [esi + 0x45be6]
and byte [esi + eax + 0x3e39a], 0xfe
mov eax, dword [esp + 0x24]
inc byte [esi + eax + 0x1a]
inc word [esi + 0x45be6]
add dword [esp + 8], 0x20
inc dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
mov ebp, dword [esi + 0x45bd8]
add eax, 0xc
cmp ebp, eax
jl 0x42aa97
mov ebp, dword [esp + 0x60]
add ebp, 0xc
cmp dword [esp + 0x5c], ebp
jl 0x42a6c0
add dword [esp + 0x90], 0x20
inc dword [esp + 0x60]
mov eax, dword [esp + 0x60]
cmp eax, dword [esi + 0x45bd8]
jl 0x42a2e8
cmp byte [esp + 0xc4], 0
jne 0x42ad9f
mov byte [esp + 0x94], 0
mov al, byte [esp + 0x94]
mov byte [esp + 0x3c], al
jmp 0x42ad0b
inc byte [esp + 0x94]
xor edi, edi
mov dword [esp + 0x1c], 0
mov byte [esp + 0x3c], 1
jmp 0x42acfb
cmp byte [esi + edi + 0x1a], 2
jne 0x42acf4
mov dx, word [esi + edi + 0x18]
movsx eax, dx
movsx eax, word [esi + eax*2 + 0x40bae]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov bl, byte [esi + eax + 0x26852]
cmp bl, 0xff
jne 0x42ac08
movsx ecx, dx
movsx ebp, word [esi + ecx*2 + 0x40bb0]
lea ebp, [ebp*8]
lea ebp, [ebp + ebp*2]
mov cl, byte [esi + ebp + 0x26852]
cmp cl, 0xff
je 0x42ac08
mov byte [esp + 0x3c], 0
movsx edx, word [esi + ebp + 0x26850]
cmp edx, dword [esp + 0x1c]
jne 0x42abb0
mov bl, byte [esi + ebp + 0x26853]
mov byte [esi + eax + 0x26852], bl
mov bp, word [esi + edi + 0x18]
movsx eax, bp
movsx edx, word [esi + eax*2 + 0x40bb0]
movsx eax, bp
lea edx, [edx + edx*2]
movsx ecx, word [esi + eax*2 + 0x40bae]
mov al, byte [esi + edx*8 + 0x26852]
lea ecx, [ecx + ecx*2]
mov byte [esi + ecx*8 + 0x26853], al
jmp 0x42abe6
mov byte [esi + eax + 0x26852], cl
mov bp, word [esi + edi + 0x18]
movsx eax, bp
movsx ebx, word [esi + eax*2 + 0x40bb0]
movsx eax, bp
lea ebx, [ebx + ebx*2]
movsx edx, word [esi + eax*2 + 0x40bae]
mov al, byte [esi + ebx*8 + 0x26853]
lea edx, [edx + edx*2]
mov byte [esi + edx*8 + 0x26853], al
movsx eax, word [esi + edi + 0x18]
movsx ebx, word [esi + eax*2 + 0x40bae]
mov ax, word [esp + 0x1c]
lea ebx, [ebx + ebx*2]
mov word [esi + ebx*8 + 0x26850], ax
jmp 0x42acf4
movsx ecx, dx
movsx ebp, word [esi + ecx*2 + 0x40bb0]
lea ebp, [ebp*8]
lea ebp, [ebp + ebp*2]
mov dl, byte [esi + ebp + 0x26852]
cmp dl, 0xff
jne 0x42ace5
cmp bl, 0xff
je 0x42ace5
mov byte [esp + 0x3c], 0
movsx ecx, word [esi + eax + 0x26850]
cmp ecx, dword [esp + 0x1c]
jne 0x42ac90
mov dl, byte [esi + eax + 0x26853]
mov byte [esi + ebp + 0x26852], dl
mov bp, word [esi + edi + 0x18]
movsx eax, bp
movsx ebx, word [esi + eax*2 + 0x40bae]
movsx eax, bp
lea ebx, [ebx + ebx*2]
movsx ecx, word [esi + eax*2 + 0x40bb0]
mov al, byte [esi + ebx*8 + 0x26852]
lea ecx, [ecx + ecx*2]
mov byte [esi + ecx*8 + 0x26853], al
jmp 0x42acc6
mov byte [esi + ebp + 0x26852], bl
mov cx, word [esi + edi + 0x18]
movsx eax, cx
movsx edx, word [esi + eax*2 + 0x40bae]
movsx eax, cx
lea edx, [edx + edx*2]
movsx ebx, word [esi + eax*2 + 0x40bb0]
mov al, byte [esi + edx*8 + 0x26853]
lea ebx, [ebx + ebx*2]
mov byte [esi + ebx*8 + 0x26853], al
movsx eax, word [esi + edi + 0x18]
movsx ecx, word [esi + eax*2 + 0x40bb0]
mov ax, word [esp + 0x1c]
lea ecx, [ecx + ecx*2]
mov word [esi + ecx*8 + 0x26850], ax
jmp 0x42acf4
cmp bl, 0xff
jne 0x42acf4
cmp dl, 0xff
jne 0x42acf4
mov byte [esp + 0x3c], 0
add edi, 0x20
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, dword [esi + 0x45bd8]
jl 0x42ab00
cmp byte [esp + 0x3c], 0
jne 0x42ad20
cmp byte [esp + 0x94], 0xa
jb 0x42aae3
xor edx, edx
xor ebx, ebx
jmp 0x42ad97
xor edi, edi
mov ecx, ebx
jmp 0x42ad87
movsx eax, word [esi + ecx + 0x18]
add eax, ebp
movsx eax, word [esi + eax*2 + 0x40bae]
lea eax, [eax*8]
lea eax, [eax + eax*2]
cmp byte [esi + eax + 0x26852], 0
jge 0x42ad5b
mov byte [esi + eax + 0x26852], 1
movsx eax, word [esi + ecx + 0x18]
add eax, ebp
movsx eax, word [esi + eax*2 + 0x40bae]
lea eax, [eax*8]
lea eax, [eax + eax*2]
cmp byte [esi + eax + 0x26853], 0
jge 0x42ad86
mov byte [esi + eax + 0x26853], 1
inc edi
movsx eax, byte [esi + ecx + 0x1a]
movsx ebp, di
cmp ebp, eax
jl 0x42ad30
add ebx, 0x20
inc edx
cmp edx, dword [esi + 0x45bd8]
jl 0x42ad26
cmp byte [esp + 0xc4], 0
jne 0x42ae59
mov dword [esp + 0x20], 0
mov byte [esp + 0x4c], 0
mov edi, esi
mov dword [esp + 0x44], 0
jmp 0x42ae3e
mov al, byte [edi + 0x1b]
and al, 0xf7
mov byte [edi + 0x1b], al
mov al, byte [edi + 0x1b]
and al, 0xef
mov byte [edi + 0x1b], al
mov al, byte [edi + 0x1b]
shr al, 2
and al, 1
jne 0x42ae32
mov edx, dword [esp + 0x20]
xor ebp, ebp
mov ecx, edx
xor ebx, ebx
movsx eax, byte [esi + ecx + 0x1a]
mov dword [esp + 0xc], eax
jmp 0x42ae14
movsx eax, word [esi + edx + 0x18]
add eax, ecx
movsx ecx, word [esi + eax*2 + 0x3434a]
shl ecx, 5
mov al, byte [esi + ecx + 0x1b]
shr al, 2
and al, 1
jne 0x42ae13
inc ebp
inc ebx
movsx ecx, bx
cmp ecx, dword [esp + 0xc]
jl 0x42adf5
cmp bp, 2
jge 0x42ae32
mov al, byte [edi + 0x1b]
and al, 0xfb
or al, 4
mov byte [edi + 0x1b], al
mov byte [esp + 0x4c], 1
add dword [esp + 0x20], 0x20
add edi, 0x20
inc dword [esp + 0x44]
mov eax, dword [esp + 0x44]
cmp eax, dword [esi + 0x45bd8]
jl 0x42adc6
cmp byte [esp + 0x4c], 0
jne 0x42adad
cmp byte [esp + 0xc4], 1
jne 0x42afdb
movsx eax, word [esp + 0x98]
mov dword [esp + 0x80], eax
jmp 0x42afcb
mov ecx, dword [esp + 0x78]
shl ecx, 5
cmp byte [esi + ecx + 0x1a], 0
jne 0x42afc7
movsx ebp, word [esi + 0x45be6]
mov eax, dword [esp + 0x80]
jmp 0x42aea3
inc eax
cmp eax, ebp
jl 0x42aea2
mov eax, dword [esp + 0x78]
jmp 0x42af11
fld dword [esi + ecx + 0x20]
fstp dword [esi + ecx]
fld dword [esi + ecx + 0x24]
fstp dword [esi + ecx + 4]
fld dword [esi + ecx + 0x28]
fstp dword [esi + ecx + 8]
mov edi, dword [esi + ecx + 0x2c]
mov dword [esi + ecx + 0xc], edi
mov ebx, dword [esi + ecx + 0x30]
mov dword [esi + ecx + 0x10], ebx
mov dx, word [esi + ecx + 0x34]
mov word [esi + ecx + 0x14], dx
mov bp, word [esi + ecx + 0x36]
mov word [esi + ecx + 0x16], bp
mov di, word [esi + ecx + 0x38]
mov word [esi + ecx + 0x18], di
mov bl, byte [esi + ecx + 0x3a]
mov byte [esi + ecx + 0x1a], bl
mov dl, byte [esi + ecx + 0x3b]
mov byte [esi + ecx + 0x1b], dl
mov bl, byte [esi + ecx + 0x3c]
mov byte [esi + ecx + 0x1c], bl
add ecx, 0x20
inc eax
mov edx, dword [esi + 0x45bd8]
dec edx
cmp eax, edx
jl 0x42aeb0
mov edi, dword [esp + 0x80]
jmp 0x42af3c
movsx eax, word [esi + edi*2 + 0x3434a]
cmp eax, dword [esp + 0x78]
jl 0x42af3b
dec word [esi + edi*2 + 0x3434a]
inc edi
movsx eax, word [esi + 0x45be6]
cmp edi, eax
jl 0x42af25
xor eax, eax
jmp 0x42afb2
xor ebp, ebp
mov ecx, dword [esi + eax*4 + 0x32ae0]
movsx ebx, word [ecx + ebp*2 + 0x7c]
cmp ebx, dword [esp + 0x78]
jne 0x42afa0
cmp ebp, 0xb
mov ecx, ebp
jge 0x42af87
mov eax, eax
lea eax, [eax]
mov edx, dword [esi + eax*4 + 0x32ae0]
mov di, word [edx + ecx*2 + 0x7e]
mov word [edx + ecx*2 + 0x7c], di
inc ecx
cmp ecx, 0xb
jl 0x42af70
mov ebx, dword [esi + eax*4 + 0x32ae0]
or word [ebx + 0x92], 0xffff
dec ebp
jmp 0x42afab
cmp ebx, dword [esp + 0x78]
jle 0x42afab
dec word [ecx + ebp*2 + 0x7c]
inc ebp
cmp ebp, 0xc
jl 0x42af52
inc eax
movsx edx, word [esi + 0x45be4]
cmp eax, edx
jl 0x42af50
dec dword [esp + 0x78]
dec dword [esi + 0x45bd8]
inc dword [esp + 0x78]
mov eax, dword [esp + 0x78]
cmp eax, dword [esi + 0x45bd8]
jl 0x42ae80
fcompp
fcompp
add esp, 0xb0
fstp st(0)
pop ebp
pop edi
pop esi
pop ebx
ret 0x18
fcompp
fcompp
fstp st(0)
jmp 0x42a29a
fcompp
fcompp
fstp st(0)
jmp 0x42a29a
fcompp
fcompp
fstp st(0)
jmp 0x42a29a
fcompp
fcompp
fstp st(0)
jmp 0x42a29a
fcompp
fcompp
fstp st(0)
jmp 0x42a29a