Function at 0x560a20
Capabilities:
Encode data using base64
Parse pe header

Disassembly:
push 0x10
mov eax, 0x5a03c3
call fcn.00580367
mov edi, dword [ebp + 8]
push 0xb
pop ebx
cmp dword [edi + 0x18], ebx
jne 0x562a89
mov esi, dword [edi + 0xc]
cmp byte [esi + 0x280], 0xc
jne 0x562a89
cmp byte [esi + 0x281], 0x4a
jne 0x562a89
mov dword [edi + 0x38c], 1
mov al, byte [esi + 0x282]
push 0xc
mov byte [edi + 0x390], al
call fcn.0056cb85
pop ecx
test eax, eax
je 0x560a83
mov ecx, eax
call fcn.0055f776
jmp 0x560a85
xor eax, eax
mov dword [edi + 0x398], eax
test byte [esi + 0x283], 1
je 0x561541
push 0x6c
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
and dword [ebp - 4], 0
test ecx, ecx
je 0x560ab6
call fcn.0055f7f9
mov edi, eax
jmp 0x560ab8
xor edi, edi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x398]
or dword [ebp - 4], 0xffffffff
push edi
call fcn.0055f8c5
mov eax, dword [ebp + 8]
inc dword [eax + 0x394]
mov al, byte [esi + 0x2c0]
shr al, 5
and al, 3
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fstp dword [edi + 0xc]
mov al, byte [esi + 0x2c0]
and al, 0x1f
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fld qword [0x5c8f58]
fmul st(1), st(0)
fld dword [ebp - 0x10]
faddp st(2)
fxch st(1)
fstp dword [edi + 0xc]
mov al, byte [esi + 0x2c1]
shr al, 5
and al, 3
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fstp dword [edi + 4]
mov al, byte [esi + 0x2c1]
and al, 0x1f
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fmul st(1)
fadd dword [ebp - 0x10]
fstp dword [edi + 4]
mov al, byte [esi + 0x2c2]
shr al, 5
and al, 3
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fstp dword [edi + 8]
mov al, byte [esi + 0x2c2]
and al, 0x1f
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fmul st(1)
fadd dword [ebp - 0x10]
fstp dword [edi + 8]
mov al, byte [esi + 0x2c4]
shr al, 5
and al, 3
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [edi + 0x10]
movzx eax, byte [esi + 0x2c4]
and eax, 0x1f
mov dword [ebp - 0x10], eax
fimul dword [ebp - 0x10]
fadd dword [ebp - 0x14]
fstp dword [edi + 0x10]
movzx eax, byte [esi + 0x2c6]
movzx ecx, byte [esi + 0x2c5]
shl eax, 8
add eax, ecx
mov dword [ebp - 0x14], eax
test eax, eax
jle 0x560c10
fild dword [ebp - 0x14]
push ecx
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fdiv qword [0x5e29c0]
fstp dword [edi + 0x14]
fld dword [ebp - 0x14]
fdivr qword [0x5c8f50]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fdiv qword [0x5e29d8]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00437df0
imul eax, eax, 0x64
pop ecx
push 3
cdq
pop ecx
idiv ecx
mov dword [edi + 0x18], eax
movzx eax, byte [esi + 0x2ce]
movzx ecx, byte [esi + 0x2cd]
shl eax, 8
add eax, ecx
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fdiv qword [0x5e29c0]
fstp dword [edi + 0x44]
test byte [esi + 0x2c7], 1
je 0x560c72
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 1
test ecx, ecx
je 0x560c5a
call fcn.00558927
jmp 0x560c5c
xor eax, eax
fld dword [0x5a85a0]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c7], 2
je 0x560cb2
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 2
test ecx, ecx
je 0x560c9a
call fcn.00558927
jmp 0x560c9c
xor eax, eax
fld dword [0x5a8588]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c7], 4
je 0x560cf2
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 3
test ecx, ecx
je 0x560cda
call fcn.00558927
jmp 0x560cdc
xor eax, eax
fld dword [0x5a8570]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c7], 8
je 0x560d32
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 4
test ecx, ecx
je 0x560d1a
call fcn.00558927
jmp 0x560d1c
xor eax, eax
fld dword [0x5c141c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c7], 0x10
je 0x560d72
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 5
test ecx, ecx
je 0x560d5a
call fcn.00558927
jmp 0x560d5c
xor eax, eax
fld dword [0x5c31c8]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c7], 0x20
je 0x560db2
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 6
test ecx, ecx
je 0x560d9a
call fcn.00558927
jmp 0x560d9c
xor eax, eax
fld dword [0x5ac9c8]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c7], 0x40
je 0x560df2
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 7
test ecx, ecx
je 0x560dda
call fcn.00558927
jmp 0x560ddc
xor eax, eax
fld dword [0x5a9ca0]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c7], 0x80
je 0x560e32
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 8
test ecx, ecx
je 0x560e1a
call fcn.00558927
jmp 0x560e1c
xor eax, eax
fld dword [0x5c9050]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
mov al, byte [esi + 0x2c8]
test al, al
je 0x561035
test al, 1
je 0x560e7b
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 9
test ecx, ecx
je 0x560e63
call fcn.00558927
jmp 0x560e65
xor eax, eax
fld dword [0x5c904c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c8], 2
je 0x560ebb
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xa
test ecx, ecx
je 0x560ea3
call fcn.00558927
jmp 0x560ea5
xor eax, eax
fld dword [0x5c9048]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c8], 4
je 0x560ef7
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], ebx
test ecx, ecx
je 0x560edf
call fcn.00558927
jmp 0x560ee1
xor eax, eax
fld dword [0x5bd358]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c8], 8
je 0x560f35
push 0xc
pop ebx
push ebx
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], ebx
test ecx, ecx
je 0x560f1d
call fcn.00558927
jmp 0x560f1f
xor eax, eax
fld dword [0x5b0550]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c8], 0x10
je 0x560f75
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xd
test ecx, ecx
je 0x560f5d
call fcn.00558927
jmp 0x560f5f
xor eax, eax
fld dword [0x5c9044]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c8], 0x20
je 0x560fb5
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xe
test ecx, ecx
je 0x560f9d
call fcn.00558927
jmp 0x560f9f
xor eax, eax
fld dword [0x5c9040]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c8], 0x40
je 0x560ff5
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xf
test ecx, ecx
je 0x560fdd
call fcn.00558927
jmp 0x560fdf
xor eax, eax
fld dword [0x5c903c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c8], 0x80
je 0x561035
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x10
test ecx, ecx
je 0x56101d
call fcn.00558927
jmp 0x56101f
xor eax, eax
fld dword [0x5aed08]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
mov al, byte [esi + 0x2c9]
test al, al
je 0x56123e
test al, 1
je 0x56107e
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x11
test ecx, ecx
je 0x561066
call fcn.00558927
jmp 0x561068
xor eax, eax
fld dword [0x5c9038]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c9], 2
je 0x5610be
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x12
test ecx, ecx
je 0x5610a6
call fcn.00558927
jmp 0x5610a8
xor eax, eax
fld dword [0x5c9034]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c9], 4
je 0x5610fe
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x13
test ecx, ecx
je 0x5610e6
call fcn.00558927
jmp 0x5610e8
xor eax, eax
fld dword [0x5bd364]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c9], 8
je 0x56113e
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x14
test ecx, ecx
je 0x561126
call fcn.00558927
jmp 0x561128
xor eax, eax
fld dword [0x5c9030]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c9], 0x10
je 0x56117e
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x15
test ecx, ecx
je 0x561166
call fcn.00558927
jmp 0x561168
xor eax, eax
fld dword [0x5aca10]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c9], 0x20
je 0x5611be
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x16
test ecx, ecx
je 0x5611a6
call fcn.00558927
jmp 0x5611a8
xor eax, eax
fld dword [0x5c902c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c9], 0x40
je 0x5611fe
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x17
test ecx, ecx
je 0x5611e6
call fcn.00558927
jmp 0x5611e8
xor eax, eax
fld dword [0x5a9c9c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2c9], 0x80
je 0x56123e
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x18
test ecx, ecx
je 0x561226
call fcn.00558927
jmp 0x561228
xor eax, eax
fld dword [0x5c9028]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
mov al, byte [esi + 0x2ca]
test al, al
je 0x561447
test al, 1
je 0x561287
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x19
test ecx, ecx
je 0x56126f
call fcn.00558927
jmp 0x561271
xor eax, eax
fld dword [0x5c9024]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2ca], 2
je 0x5612c7
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x1a
test ecx, ecx
je 0x5612af
call fcn.00558927
jmp 0x5612b1
xor eax, eax
fld dword [0x5bc72c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2ca], 4
je 0x561307
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x1b
test ecx, ecx
je 0x5612ef
call fcn.00558927
jmp 0x5612f1
xor eax, eax
fld dword [0x5c9020]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2ca], 8
je 0x561347
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x1c
test ecx, ecx
je 0x56132f
call fcn.00558927
jmp 0x561331
xor eax, eax
fld dword [0x5c901c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2ca], 0x10
je 0x561387
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x1d
test ecx, ecx
je 0x56136f
call fcn.00558927
jmp 0x561371
xor eax, eax
fld dword [0x5c9018]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2ca], 0x20
je 0x5613c7
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x1e
test ecx, ecx
je 0x5613af
call fcn.00558927
jmp 0x5613b1
xor eax, eax
fld dword [0x5c9014]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2ca], 0x40
je 0x561407
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x1f
test ecx, ecx
je 0x5613ef
call fcn.00558927
jmp 0x5613f1
xor eax, eax
fld dword [0x5ac928]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
test byte [esi + 0x2ca], 0x80
je 0x561447
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x20
test ecx, ecx
je 0x56142f
call fcn.00558927
jmp 0x561431
xor eax, eax
fld dword [0x5c9010]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.0055f860
mov eax, dword [edi + 0x40]
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
call fcn.00558fcf
jmp 0x5614a5
fldz
fcomp dword [ecx + 4]
fnstsw ax
test ah, 5
jp 0x56149d
fld dword [edi + 0x44]
fdiv dword [ecx + 4]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fdivr qword [0x5e29c0]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fstp dword [ecx + 8]
fild dword [edi + 0x18]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x10]
fld dword [ebp - 0x14]
fcompp
fnstsw ax
test ah, 5
jp 0x56149d
fld dword [ebp - 0x14]
fstp dword [ecx + 8]
lea ecx, [ebp - 0x1c]
call fcn.00558fe6
mov ecx, eax
test ecx, ecx
jne 0x56145b
movzx eax, byte [esi + 0x2d0]
movzx ecx, byte [esi + 0x2cf]
shl eax, 8
add eax, ecx
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fld qword [0x5e29c0]
fdiv st(1), st(0)
fxch st(1)
fstp dword [edi + 0x4c]
movzx eax, byte [esi + 0x2d2]
movzx ecx, byte [esi + 0x2d1]
shl eax, 8
add eax, ecx
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fdiv st(1)
fstp dword [edi + 0x48]
movzx eax, byte [esi + 0x2d4]
movzx ecx, byte [esi + 0x2d3]
shl eax, 8
add eax, ecx
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fdiv st(1)
fstp dword [edi + 0x54]
movzx eax, byte [esi + 0x2d6]
movzx ecx, byte [esi + 0x2d5]
shl eax, 8
add eax, ecx
mov dword [ebp - 0x14], eax
xor eax, eax
fidivr dword [ebp - 0x14]
fstp dword [edi + 0x58]
mov cl, byte [esi + eax + 0x28e]
mov byte [edi + eax + 0x20], cl
inc eax
cmp eax, 0xf
jl 0x56152b
mov byte [eax + edi + 0x20], 0
test byte [esi + 0x283], 2
je 0x561fe5
push 0x6c
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x21
test ecx, ecx
je 0x56156f
call fcn.0055f7f9
mov edi, eax
jmp 0x561571
xor edi, edi
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x398]
or dword [ebp - 4], 0xffffffff
push edi
call fcn.0055f8c5
inc dword [ebx + 0x394]
mov al, byte [esi + 0x300]
shr al, 5
and al, 3
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [edi + 0xc]
mov al, byte [esi + 0x300]
and al, 0x1f
movzx eax, al
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fld qword [0x5c8f58]
fmul st(1), st(0)
fld dword [ebp - 0x14]
faddp st(2)
fxch st(1)
fstp dword [edi + 0xc]
mov al, byte [esi + 0x301]
shr al, 5
and al, 3
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [edi + 4]
mov al, byte [esi + 0x301]
and al, 0x1f
movzx eax, al
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fmul st(1)
fadd dword [ebp - 0x14]
fstp dword [edi + 4]
mov al, byte [esi + 0x302]
shr al, 5
and al, 3
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [edi + 8]
mov al, byte [esi + 0x302]
and al, 0x1f
movzx eax, al
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fmul st(1)
fadd dword [ebp - 0x14]
fstp dword [edi + 8]
mov al, byte [esi + 0x304]
shr al, 5
and al, 3
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [edi + 0x10]
movzx eax, byte [esi + 0x304]
and eax, 0x1f
mov dword [ebp - 0x10], eax
fimul dword [ebp - 0x10]
fadd dword [ebp - 0x14]
fstp dword [edi + 0x10]
movzx eax, byte [esi + 0x306]
movzx ecx, byte [esi + 0x305]
shl eax, 8
add eax, ecx
mov dword [ebp - 0x14], eax
test eax, eax
jle 0x5616c6
fild dword [ebp - 0x14]
push ecx
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fdiv qword [0x5e29c0]
fstp dword [edi + 0x14]
fld dword [ebp - 0x14]
fdivr qword [0x5c8f50]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fdiv qword [0x5e29d8]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00437df0
imul eax, eax, 0x64
pop ecx
push 3
cdq
pop ecx
idiv ecx
mov dword [edi + 0x18], eax
movzx eax, byte [esi + 0x30e]
movzx ecx, byte [esi + 0x30d]
shl eax, 8
add eax, ecx
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fdiv qword [0x5e29c0]
fstp dword [edi + 0x44]
test byte [esi + 0x307], 1
je 0x56172c
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x22
test ecx, ecx
je 0x561710
call fcn.00558927
jmp 0x561712
xor eax, eax
fld dword [0x5a85a0]
or ebx, 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
mov dword [ebp - 4], ebx
call fcn.0055f860
jmp 0x56172f
or ebx, 0xffffffff
test byte [esi + 0x307], 2
je 0x56176e
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x23
test ecx, ecx
je 0x561757
call fcn.00558927
jmp 0x561759
xor eax, eax
fld dword [0x5a8588]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x307], 4
je 0x5617ad
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x24
test ecx, ecx
je 0x561796
call fcn.00558927
jmp 0x561798
xor eax, eax
fld dword [0x5a8570]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x307], 8
je 0x5617ec
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x25
test ecx, ecx
je 0x5617d5
call fcn.00558927
jmp 0x5617d7
xor eax, eax
fld dword [0x5c141c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x307], 0x10
je 0x56182b
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x26
test ecx, ecx
je 0x561814
call fcn.00558927
jmp 0x561816
xor eax, eax
fld dword [0x5c31c8]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x307], 0x20
je 0x56186a
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x27
test ecx, ecx
je 0x561853
call fcn.00558927
jmp 0x561855
xor eax, eax
fld dword [0x5ac9c8]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x307], 0x40
je 0x5618a9
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x28
test ecx, ecx
je 0x561892
call fcn.00558927
jmp 0x561894
xor eax, eax
fld dword [0x5a9ca0]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x307], 0x80
je 0x5618e8
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x29
test ecx, ecx
je 0x5618d1
call fcn.00558927
jmp 0x5618d3
xor eax, eax
fld dword [0x5c9050]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
mov al, byte [esi + 0x308]
test al, al
je 0x561ae9
test al, 1
je 0x561930
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x2a
test ecx, ecx
je 0x561919
call fcn.00558927
jmp 0x56191b
xor eax, eax
fld dword [0x5c904c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x308], 2
je 0x56196f
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x2b
test ecx, ecx
je 0x561958
call fcn.00558927
jmp 0x56195a
xor eax, eax
fld dword [0x5c9048]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x308], 4
je 0x5619ae
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x2c
test ecx, ecx
je 0x561997
call fcn.00558927
jmp 0x561999
xor eax, eax
fld dword [0x5bd358]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x308], 8
je 0x5619ed
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x2d
test ecx, ecx
je 0x5619d6
call fcn.00558927
jmp 0x5619d8
xor eax, eax
fld dword [0x5b0550]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x308], 0x10
je 0x561a2c
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x2e
test ecx, ecx
je 0x561a15
call fcn.00558927
jmp 0x561a17
xor eax, eax
fld dword [0x5c9044]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x308], 0x20
je 0x561a6b
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x2f
test ecx, ecx
je 0x561a54
call fcn.00558927
jmp 0x561a56
xor eax, eax
fld dword [0x5c9040]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x308], 0x40
je 0x561aaa
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x30
test ecx, ecx
je 0x561a93
call fcn.00558927
jmp 0x561a95
xor eax, eax
fld dword [0x5c903c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x308], 0x80
je 0x561ae9
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x31
test ecx, ecx
je 0x561ad2
call fcn.00558927
jmp 0x561ad4
xor eax, eax
fld dword [0x5aed08]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
mov al, byte [esi + 0x309]
test al, al
je 0x561cea
test al, 1
je 0x561b31
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x32
test ecx, ecx
je 0x561b1a
call fcn.00558927
jmp 0x561b1c
xor eax, eax
fld dword [0x5c9038]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x309], 2
je 0x561b70
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x33
test ecx, ecx
je 0x561b59
call fcn.00558927
jmp 0x561b5b
xor eax, eax
fld dword [0x5c9034]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x309], 4
je 0x561baf
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x34
test ecx, ecx
je 0x561b98
call fcn.00558927
jmp 0x561b9a
xor eax, eax
fld dword [0x5bd364]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x309], 8
je 0x561bee
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x35
test ecx, ecx
je 0x561bd7
call fcn.00558927
jmp 0x561bd9
xor eax, eax
fld dword [0x5c9030]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x309], 0x10
je 0x561c2d
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x36
test ecx, ecx
je 0x561c16
call fcn.00558927
jmp 0x561c18
xor eax, eax
fld dword [0x5aca10]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x309], 0x20
je 0x561c6c
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x37
test ecx, ecx
je 0x561c55
call fcn.00558927
jmp 0x561c57
xor eax, eax
fld dword [0x5c902c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x309], 0x40
je 0x561cab
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x38
test ecx, ecx
je 0x561c94
call fcn.00558927
jmp 0x561c96
xor eax, eax
fld dword [0x5a9c9c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x309], 0x80
je 0x561cea
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x39
test ecx, ecx
je 0x561cd3
call fcn.00558927
jmp 0x561cd5
xor eax, eax
fld dword [0x5c9028]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
mov al, byte [esi + 0x30a]
test al, al
je 0x561eeb
test al, 1
je 0x561d32
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x3a
test ecx, ecx
je 0x561d1b
call fcn.00558927
jmp 0x561d1d
xor eax, eax
fld dword [0x5c9024]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x30a], 2
je 0x561d71
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x3b
test ecx, ecx
je 0x561d5a
call fcn.00558927
jmp 0x561d5c
xor eax, eax
fld dword [0x5bc72c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x30a], 4
je 0x561db0
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x3c
test ecx, ecx
je 0x561d99
call fcn.00558927
jmp 0x561d9b
xor eax, eax
fld dword [0x5c9020]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x30a], 8
je 0x561def
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x3d
test ecx, ecx
je 0x561dd8
call fcn.00558927
jmp 0x561dda
xor eax, eax
fld dword [0x5c901c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x30a], 0x10
je 0x561e2e
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x3e
test ecx, ecx
je 0x561e17
call fcn.00558927
jmp 0x561e19
xor eax, eax
fld dword [0x5c9018]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x30a], 0x20
je 0x561e6d
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x3f
test ecx, ecx
je 0x561e56
call fcn.00558927
jmp 0x561e58
xor eax, eax
fld dword [0x5c9014]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x30a], 0x40
je 0x561eac
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x40
test ecx, ecx
je 0x561e95
call fcn.00558927
jmp 0x561e97
xor eax, eax
fld dword [0x5ac928]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x30a], 0x80
je 0x561eeb
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x41
test ecx, ecx
je 0x561ed4
call fcn.00558927
jmp 0x561ed6
xor eax, eax
fld dword [0x5c9010]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
mov eax, dword [edi + 0x40]
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
call fcn.00558fcf
jmp 0x561f49
fldz
fcomp dword [ecx + 4]
fnstsw ax
test ah, 5
jp 0x561f41
fld dword [edi + 0x44]
fdiv dword [ecx + 4]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fdivr qword [0x5e29c0]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fstp dword [ecx + 8]
fild dword [edi + 0x18]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x10]
fld dword [ebp - 0x14]
fcompp
fnstsw ax
test ah, 5
jp 0x561f41
fld dword [ebp - 0x14]
fstp dword [ecx + 8]
lea ecx, [ebp - 0x1c]
call fcn.00558fe6
mov ecx, eax
test ecx, ecx
jne 0x561eff
movzx eax, byte [esi + 0x310]
movzx ecx, byte [esi + 0x30f]
shl eax, 8
add eax, ecx
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fld qword [0x5e29c0]
fdiv st(1), st(0)
fxch st(1)
fstp dword [edi + 0x4c]
movzx eax, byte [esi + 0x312]
movzx ecx, byte [esi + 0x311]
shl eax, 8
add eax, ecx
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fdiv st(1)
fstp dword [edi + 0x48]
movzx eax, byte [esi + 0x314]
movzx ecx, byte [esi + 0x313]
shl eax, 8
add eax, ecx
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fdiv st(1)
fstp dword [edi + 0x54]
movzx eax, byte [esi + 0x316]
movzx ecx, byte [esi + 0x315]
shl eax, 8
add eax, ecx
mov dword [ebp - 0x14], eax
xor eax, eax
fidivr dword [ebp - 0x14]
fstp dword [edi + 0x58]
mov cl, byte [esi + eax + 0x29e]
mov byte [edi + eax + 0x20], cl
inc eax
cmp eax, 0xf
jl 0x561fcf
mov byte [edi + eax + 0x20], 0
test byte [esi + 0x283], 4
je 0x562a89
push 0x6c
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x42
test ecx, ecx
je 0x562013
call fcn.0055f7f9
mov edi, eax
jmp 0x562015
xor edi, edi
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x398]
or dword [ebp - 4], 0xffffffff
push edi
call fcn.0055f8c5
inc dword [ebx + 0x394]
mov al, byte [esi + 0x340]
shr al, 5
and al, 3
movzx eax, al
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp dword [edi + 0xc]
mov al, byte [esi + 0x340]
and al, 0x1f
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fld qword [0x5c8f58]
fmul st(1), st(0)
fld dword [ebp + 8]
faddp st(2)
fxch st(1)
fstp dword [edi + 0xc]
mov al, byte [esi + 0x341]
shr al, 5
and al, 3
movzx eax, al
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp dword [edi + 4]
mov al, byte [esi + 0x341]
and al, 0x1f
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fmul st(1)
fadd dword [ebp + 8]
fstp dword [edi + 4]
mov al, byte [esi + 0x342]
shr al, 5
and al, 3
movzx eax, al
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp dword [edi + 8]
mov al, byte [esi + 0x342]
and al, 0x1f
movzx eax, al
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fmul st(1)
fadd dword [ebp + 8]
fstp dword [edi + 8]
mov al, byte [esi + 0x344]
shr al, 5
and al, 3
movzx eax, al
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp dword [edi + 0x10]
movzx eax, byte [esi + 0x344]
and eax, 0x1f
mov dword [ebp - 0x10], eax
fimul dword [ebp - 0x10]
fadd dword [ebp + 8]
fstp dword [edi + 0x10]
movzx eax, byte [esi + 0x346]
movzx ecx, byte [esi + 0x345]
shl eax, 8
add eax, ecx
mov dword [ebp + 8], eax
test eax, eax
jle 0x56216a
fild dword [ebp + 8]
push ecx
fstp dword [ebp + 8]
fld dword [ebp + 8]
fdiv qword [0x5e29c0]
fstp dword [edi + 0x14]
fld dword [ebp + 8]
fdivr qword [0x5c8f50]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fdiv qword [0x5e29d8]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp dword [esp]
call fcn.00437df0
imul eax, eax, 0x64
pop ecx
push 3
cdq
pop ecx
idiv ecx
mov dword [edi + 0x18], eax
movzx eax, byte [esi + 0x34e]
movzx ecx, byte [esi + 0x34d]
shl eax, 8
add eax, ecx
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fdiv qword [0x5e29c0]
fstp dword [edi + 0x44]
test byte [esi + 0x347], 1
je 0x5621d0
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x43
test ecx, ecx
je 0x5621b4
call fcn.00558927
jmp 0x5621b6
xor eax, eax
fld dword [0x5a85a0]
or ebx, 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
mov dword [ebp - 4], ebx
call fcn.0055f860
jmp 0x5621d3
or ebx, 0xffffffff
test byte [esi + 0x347], 2
je 0x562212
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x44
test ecx, ecx
je 0x5621fb
call fcn.00558927
jmp 0x5621fd
xor eax, eax
fld dword [0x5a8588]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x347], 4
je 0x562251
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x45
test ecx, ecx
je 0x56223a
call fcn.00558927
jmp 0x56223c
xor eax, eax
fld dword [0x5a8570]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x347], 8
je 0x562290
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x46
test ecx, ecx
je 0x562279
call fcn.00558927
jmp 0x56227b
xor eax, eax
fld dword [0x5c141c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x347], 0x10
je 0x5622cf
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x47
test ecx, ecx
je 0x5622b8
call fcn.00558927
jmp 0x5622ba
xor eax, eax
fld dword [0x5c31c8]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x347], 0x20
je 0x56230e
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x48
test ecx, ecx
je 0x5622f7
call fcn.00558927
jmp 0x5622f9
xor eax, eax
fld dword [0x5ac9c8]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x347], 0x40
je 0x56234d
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x49
test ecx, ecx
je 0x562336
call fcn.00558927
jmp 0x562338
xor eax, eax
fld dword [0x5a9ca0]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x347], 0x80
je 0x56238c
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x4a
test ecx, ecx
je 0x562375
call fcn.00558927
jmp 0x562377
xor eax, eax
fld dword [0x5c9050]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
mov al, byte [esi + 0x348]
test al, al
je 0x56258d
test al, 1
je 0x5623d4
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x4b
test ecx, ecx
je 0x5623bd
call fcn.00558927
jmp 0x5623bf
xor eax, eax
fld dword [0x5c904c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x348], 2
je 0x562413
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x4c
test ecx, ecx
je 0x5623fc
call fcn.00558927
jmp 0x5623fe
xor eax, eax
fld dword [0x5c9048]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x348], 4
je 0x562452
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x4d
test ecx, ecx
je 0x56243b
call fcn.00558927
jmp 0x56243d
xor eax, eax
fld dword [0x5bd358]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x348], 8
je 0x562491
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x4e
test ecx, ecx
je 0x56247a
call fcn.00558927
jmp 0x56247c
xor eax, eax
fld dword [0x5b0550]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x348], 0x10
je 0x5624d0
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x4f
test ecx, ecx
je 0x5624b9
call fcn.00558927
jmp 0x5624bb
xor eax, eax
fld dword [0x5c9044]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x348], 0x20
je 0x56250f
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x50
test ecx, ecx
je 0x5624f8
call fcn.00558927
jmp 0x5624fa
xor eax, eax
fld dword [0x5c9040]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x348], 0x40
je 0x56254e
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x51
test ecx, ecx
je 0x562537
call fcn.00558927
jmp 0x562539
xor eax, eax
fld dword [0x5c903c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x348], 0x80
je 0x56258d
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x52
test ecx, ecx
je 0x562576
call fcn.00558927
jmp 0x562578
xor eax, eax
fld dword [0x5aed08]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
mov al, byte [esi + 0x349]
test al, al
je 0x56278e
test al, 1
je 0x5625d5
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x53
test ecx, ecx
je 0x5625be
call fcn.00558927
jmp 0x5625c0
xor eax, eax
fld dword [0x5c9038]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x349], 2
je 0x562614
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x54
test ecx, ecx
je 0x5625fd
call fcn.00558927
jmp 0x5625ff
xor eax, eax
fld dword [0x5c9034]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x349], 4
je 0x562653
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x55
test ecx, ecx
je 0x56263c
call fcn.00558927
jmp 0x56263e
xor eax, eax
fld dword [0x5bd364]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x349], 8
je 0x562692
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x56
test ecx, ecx
je 0x56267b
call fcn.00558927
jmp 0x56267d
xor eax, eax
fld dword [0x5c9030]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x349], 0x10
je 0x5626d1
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x57
test ecx, ecx
je 0x5626ba
call fcn.00558927
jmp 0x5626bc
xor eax, eax
fld dword [0x5aca10]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x349], 0x20
je 0x562710
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x58
test ecx, ecx
je 0x5626f9
call fcn.00558927
jmp 0x5626fb
xor eax, eax
fld dword [0x5c902c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x349], 0x40
je 0x56274f
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x59
test ecx, ecx
je 0x562738
call fcn.00558927
jmp 0x56273a
xor eax, eax
fld dword [0x5a9c9c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x349], 0x80
je 0x56278e
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x5a
test ecx, ecx
je 0x562777
call fcn.00558927
jmp 0x562779
xor eax, eax
fld dword [0x5c9028]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
mov al, byte [esi + 0x34a]
test al, al
je 0x56298f
test al, 1
je 0x5627d6
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x5b
test ecx, ecx
je 0x5627bf
call fcn.00558927
jmp 0x5627c1
xor eax, eax
fld dword [0x5c9024]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x34a], 2
je 0x562815
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x5c
test ecx, ecx
je 0x5627fe
call fcn.00558927
jmp 0x562800
xor eax, eax
fld dword [0x5bc72c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x34a], 4
je 0x562854
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x5d
test ecx, ecx
je 0x56283d
call fcn.00558927
jmp 0x56283f
xor eax, eax
fld dword [0x5c9020]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x34a], 8
je 0x562893
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x5e
test ecx, ecx
je 0x56287c
call fcn.00558927
jmp 0x56287e
xor eax, eax
fld dword [0x5c901c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x34a], 0x10
je 0x5628d2
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x5f
test ecx, ecx
je 0x5628bb
call fcn.00558927
jmp 0x5628bd
xor eax, eax
fld dword [0x5c9018]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x34a], 0x20
je 0x562911
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x60
test ecx, ecx
je 0x5628fa
call fcn.00558927
jmp 0x5628fc
xor eax, eax
fld dword [0x5c9014]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x34a], 0x40
je 0x562950
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x61
test ecx, ecx
je 0x562939
call fcn.00558927
jmp 0x56293b
xor eax, eax
fld dword [0x5ac928]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
test byte [esi + 0x34a], 0x80
je 0x56298f
push 0xc
call fcn.0056cb85
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x62
test ecx, ecx
je 0x562978
call fcn.00558927
jmp 0x56297a
xor eax, eax
fld dword [0x5c9010]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.0055f860
mov eax, dword [edi + 0x40]
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
call fcn.00558fcf
jmp 0x5629ed
fldz
fcomp dword [ecx + 4]
fnstsw ax
test ah, 5
jp 0x5629e5
fld dword [edi + 0x44]
fdiv dword [ecx + 4]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fdivr qword [0x5e29c0]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp dword [ecx + 8]
fild dword [edi + 0x18]
fstp dword [ebp - 0x14]
fld dword [ebp + 8]
fld dword [ebp - 0x14]
fcompp
fnstsw ax
test ah, 5
jp 0x5629e5
fld dword [ebp - 0x14]
fstp dword [ecx + 8]
lea ecx, [ebp - 0x1c]
call fcn.00558fe6
mov ecx, eax
test ecx, ecx
jne 0x5629a3
movzx eax, byte [esi + 0x350]
movzx ecx, byte [esi + 0x34f]
shl eax, 8
add eax, ecx
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fld qword [0x5e29c0]
fdiv st(1), st(0)
fxch st(1)
fstp dword [edi + 0x4c]
movzx eax, byte [esi + 0x352]
movzx ecx, byte [esi + 0x351]
shl eax, 8
add eax, ecx
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fdiv st(1)
fstp dword [edi + 0x48]
movzx eax, byte [esi + 0x354]
movzx ecx, byte [esi + 0x353]
shl eax, 8
add eax, ecx
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fdiv st(1)
fstp dword [edi + 0x54]
movzx eax, byte [esi + 0x356]
movzx ecx, byte [esi + 0x355]
shl eax, 8
add eax, ecx
mov dword [ebp + 8], eax
xor eax, eax
fidivr dword [ebp + 8]
fstp dword [edi + 0x58]
mov cl, byte [eax + esi + 0x2ae]
mov byte [edi + eax + 0x20], cl
inc eax
cmp eax, 0xf
jl 0x562a73
mov byte [edi + eax + 0x20], 0
call fcn.0058043f
ret 4