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

Disassembly:
push 0x10
mov eax, 0x55b7bf
call fcn.00531d28
mov edi, dword [ebp + 8]
push 0xb
pop ebx
cmp dword [edi + 0x18], ebx
jne 0x40ca60
mov esi, dword [edi + 0xc]
cmp byte [esi + 0x280], 0xc
jne 0x40ca60
cmp byte [esi + 0x281], 0x4a
jne 0x40ca60
mov dword [edi + 0x388], 1
mov al, byte [esi + 0x282]
push 0xc
mov byte [edi + 0x38c], al
call fcn.005120bc
pop ecx
test eax, eax
je 0x40aa5a
mov ecx, eax
call fcn.0040974d
jmp 0x40aa5c
xor eax, eax
mov dword [edi + 0x394], eax
test byte [esi + 0x283], 1
je 0x40b518
push 0x6c
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
and dword [ebp - 4], 0
test ecx, ecx
je 0x40aa8d
call fcn.004097d0
mov edi, eax
jmp 0x40aa8f
xor edi, edi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x394]
or dword [ebp - 4], 0xffffffff
push edi
call fcn.0040989c
mov eax, dword [ebp + 8]
inc dword [eax + 0x390]
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 [0x565fc0]
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 0x40abe7
fild dword [ebp - 0x14]
push ecx
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fdiv qword [0x564990]
fstp dword [edi + 0x14]
fld dword [ebp - 0x14]
fdivr qword [0x565fb8]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fdiv qword [0x565fb0]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00413420
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 [0x564990]
fstp dword [edi + 0x44]
test byte [esi + 0x2c7], 1
je 0x40ac49
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 1
test ecx, ecx
je 0x40ac31
call fcn.004047aa
jmp 0x40ac33
xor eax, eax
fld dword [0x5660c4]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c7], 2
je 0x40ac89
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 2
test ecx, ecx
je 0x40ac71
call fcn.004047aa
jmp 0x40ac73
xor eax, eax
fld dword [0x5660bc]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c7], 4
je 0x40acc9
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 3
test ecx, ecx
je 0x40acb1
call fcn.004047aa
jmp 0x40acb3
xor eax, eax
fld dword [0x5660b4]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c7], 8
je 0x40ad09
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 4
test ecx, ecx
je 0x40acf1
call fcn.004047aa
jmp 0x40acf3
xor eax, eax
fld dword [0x566160]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c7], 0x10
je 0x40ad49
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 5
test ecx, ecx
je 0x40ad31
call fcn.004047aa
jmp 0x40ad33
xor eax, eax
fld dword [0x56615c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c7], 0x20
je 0x40ad89
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 6
test ecx, ecx
je 0x40ad71
call fcn.004047aa
jmp 0x40ad73
xor eax, eax
fld dword [0x566158]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c7], 0x40
je 0x40adc9
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 7
test ecx, ecx
je 0x40adb1
call fcn.004047aa
jmp 0x40adb3
xor eax, eax
fld dword [0x566154]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c7], 0x80
je 0x40ae09
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 8
test ecx, ecx
je 0x40adf1
call fcn.004047aa
jmp 0x40adf3
xor eax, eax
fld dword [0x566150]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
mov al, byte [esi + 0x2c8]
test al, al
je 0x40b00c
test al, 1
je 0x40ae52
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 9
test ecx, ecx
je 0x40ae3a
call fcn.004047aa
jmp 0x40ae3c
xor eax, eax
fld dword [0x56614c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c8], 2
je 0x40ae92
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xa
test ecx, ecx
je 0x40ae7a
call fcn.004047aa
jmp 0x40ae7c
xor eax, eax
fld dword [0x566148]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c8], 4
je 0x40aece
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], ebx
test ecx, ecx
je 0x40aeb6
call fcn.004047aa
jmp 0x40aeb8
xor eax, eax
fld dword [0x566144]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c8], 8
je 0x40af0c
push 0xc
pop ebx
push ebx
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], ebx
test ecx, ecx
je 0x40aef4
call fcn.004047aa
jmp 0x40aef6
xor eax, eax
fld dword [0x566140]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c8], 0x10
je 0x40af4c
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xd
test ecx, ecx
je 0x40af34
call fcn.004047aa
jmp 0x40af36
xor eax, eax
fld dword [0x56613c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c8], 0x20
je 0x40af8c
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xe
test ecx, ecx
je 0x40af74
call fcn.004047aa
jmp 0x40af76
xor eax, eax
fld dword [0x566138]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c8], 0x40
je 0x40afcc
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xf
test ecx, ecx
je 0x40afb4
call fcn.004047aa
jmp 0x40afb6
xor eax, eax
fld dword [0x566134]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c8], 0x80
je 0x40b00c
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x10
test ecx, ecx
je 0x40aff4
call fcn.004047aa
jmp 0x40aff6
xor eax, eax
fld dword [0x566130]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
mov al, byte [esi + 0x2c9]
test al, al
je 0x40b215
test al, 1
je 0x40b055
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x11
test ecx, ecx
je 0x40b03d
call fcn.004047aa
jmp 0x40b03f
xor eax, eax
fld dword [0x56612c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c9], 2
je 0x40b095
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x12
test ecx, ecx
je 0x40b07d
call fcn.004047aa
jmp 0x40b07f
xor eax, eax
fld dword [0x566128]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c9], 4
je 0x40b0d5
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x13
test ecx, ecx
je 0x40b0bd
call fcn.004047aa
jmp 0x40b0bf
xor eax, eax
fld dword [0x566124]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c9], 8
je 0x40b115
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x14
test ecx, ecx
je 0x40b0fd
call fcn.004047aa
jmp 0x40b0ff
xor eax, eax
fld dword [0x566120]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c9], 0x10
je 0x40b155
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x15
test ecx, ecx
je 0x40b13d
call fcn.004047aa
jmp 0x40b13f
xor eax, eax
fld dword [0x56611c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c9], 0x20
je 0x40b195
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x16
test ecx, ecx
je 0x40b17d
call fcn.004047aa
jmp 0x40b17f
xor eax, eax
fld dword [0x566118]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c9], 0x40
je 0x40b1d5
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x17
test ecx, ecx
je 0x40b1bd
call fcn.004047aa
jmp 0x40b1bf
xor eax, eax
fld dword [0x566114]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2c9], 0x80
je 0x40b215
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x18
test ecx, ecx
je 0x40b1fd
call fcn.004047aa
jmp 0x40b1ff
xor eax, eax
fld dword [0x566110]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
mov al, byte [esi + 0x2ca]
test al, al
je 0x40b41e
test al, 1
je 0x40b25e
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x19
test ecx, ecx
je 0x40b246
call fcn.004047aa
jmp 0x40b248
xor eax, eax
fld dword [0x56610c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2ca], 2
je 0x40b29e
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x1a
test ecx, ecx
je 0x40b286
call fcn.004047aa
jmp 0x40b288
xor eax, eax
fld dword [0x566108]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2ca], 4
je 0x40b2de
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x1b
test ecx, ecx
je 0x40b2c6
call fcn.004047aa
jmp 0x40b2c8
xor eax, eax
fld dword [0x566104]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2ca], 8
je 0x40b31e
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x1c
test ecx, ecx
je 0x40b306
call fcn.004047aa
jmp 0x40b308
xor eax, eax
fld dword [0x566100]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2ca], 0x10
je 0x40b35e
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x1d
test ecx, ecx
je 0x40b346
call fcn.004047aa
jmp 0x40b348
xor eax, eax
fld dword [0x5660fc]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2ca], 0x20
je 0x40b39e
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x1e
test ecx, ecx
je 0x40b386
call fcn.004047aa
jmp 0x40b388
xor eax, eax
fld dword [0x5660f8]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2ca], 0x40
je 0x40b3de
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x1f
test ecx, ecx
je 0x40b3c6
call fcn.004047aa
jmp 0x40b3c8
xor eax, eax
fld dword [0x5660f4]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
test byte [esi + 0x2ca], 0x80
je 0x40b41e
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x20
test ecx, ecx
je 0x40b406
call fcn.004047aa
jmp 0x40b408
xor eax, eax
fld dword [0x5660f0]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
call fcn.00409837
mov eax, dword [edi + 0x40]
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
call fcn.00404ce9
jmp 0x40b47c
fldz
fcomp dword [ecx + 4]
fnstsw ax
test ah, 5
jp 0x40b474
fld dword [edi + 0x44]
fdiv dword [ecx + 4]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fdivr qword [0x564990]
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 0x40b474
fld dword [ebp - 0x14]
fstp dword [ecx + 8]
lea ecx, [ebp - 0x1c]
call fcn.005105ae
mov ecx, eax
test ecx, ecx
jne 0x40b432
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 [0x564990]
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 0x40b502
mov byte [eax + edi + 0x20], 0
test byte [esi + 0x283], 2
je 0x40bfbc
push 0x6c
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x21
test ecx, ecx
je 0x40b546
call fcn.004097d0
mov edi, eax
jmp 0x40b548
xor edi, edi
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x394]
or dword [ebp - 4], 0xffffffff
push edi
call fcn.0040989c
inc dword [ebx + 0x390]
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 [0x565fc0]
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 0x40b69d
fild dword [ebp - 0x14]
push ecx
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fdiv qword [0x564990]
fstp dword [edi + 0x14]
fld dword [ebp - 0x14]
fdivr qword [0x565fb8]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fdiv qword [0x565fb0]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00413420
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 [0x564990]
fstp dword [edi + 0x44]
test byte [esi + 0x307], 1
je 0x40b703
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x22
test ecx, ecx
je 0x40b6e7
call fcn.004047aa
jmp 0x40b6e9
xor eax, eax
fld dword [0x5660c4]
or ebx, 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
mov dword [ebp - 4], ebx
call fcn.00409837
jmp 0x40b706
or ebx, 0xffffffff
test byte [esi + 0x307], 2
je 0x40b745
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x23
test ecx, ecx
je 0x40b72e
call fcn.004047aa
jmp 0x40b730
xor eax, eax
fld dword [0x5660bc]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x307], 4
je 0x40b784
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x24
test ecx, ecx
je 0x40b76d
call fcn.004047aa
jmp 0x40b76f
xor eax, eax
fld dword [0x5660b4]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x307], 8
je 0x40b7c3
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x25
test ecx, ecx
je 0x40b7ac
call fcn.004047aa
jmp 0x40b7ae
xor eax, eax
fld dword [0x566160]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x307], 0x10
je 0x40b802
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x26
test ecx, ecx
je 0x40b7eb
call fcn.004047aa
jmp 0x40b7ed
xor eax, eax
fld dword [0x56615c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x307], 0x20
je 0x40b841
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x27
test ecx, ecx
je 0x40b82a
call fcn.004047aa
jmp 0x40b82c
xor eax, eax
fld dword [0x566158]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x307], 0x40
je 0x40b880
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x28
test ecx, ecx
je 0x40b869
call fcn.004047aa
jmp 0x40b86b
xor eax, eax
fld dword [0x566154]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x307], 0x80
je 0x40b8bf
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x29
test ecx, ecx
je 0x40b8a8
call fcn.004047aa
jmp 0x40b8aa
xor eax, eax
fld dword [0x566150]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
mov al, byte [esi + 0x308]
test al, al
je 0x40bac0
test al, 1
je 0x40b907
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x2a
test ecx, ecx
je 0x40b8f0
call fcn.004047aa
jmp 0x40b8f2
xor eax, eax
fld dword [0x56614c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x308], 2
je 0x40b946
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x2b
test ecx, ecx
je 0x40b92f
call fcn.004047aa
jmp 0x40b931
xor eax, eax
fld dword [0x566148]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x308], 4
je 0x40b985
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x2c
test ecx, ecx
je 0x40b96e
call fcn.004047aa
jmp 0x40b970
xor eax, eax
fld dword [0x566144]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x308], 8
je 0x40b9c4
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x2d
test ecx, ecx
je 0x40b9ad
call fcn.004047aa
jmp 0x40b9af
xor eax, eax
fld dword [0x566140]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x308], 0x10
je 0x40ba03
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x2e
test ecx, ecx
je 0x40b9ec
call fcn.004047aa
jmp 0x40b9ee
xor eax, eax
fld dword [0x56613c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x308], 0x20
je 0x40ba42
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x2f
test ecx, ecx
je 0x40ba2b
call fcn.004047aa
jmp 0x40ba2d
xor eax, eax
fld dword [0x566138]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x308], 0x40
je 0x40ba81
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x30
test ecx, ecx
je 0x40ba6a
call fcn.004047aa
jmp 0x40ba6c
xor eax, eax
fld dword [0x566134]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x308], 0x80
je 0x40bac0
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x31
test ecx, ecx
je 0x40baa9
call fcn.004047aa
jmp 0x40baab
xor eax, eax
fld dword [0x566130]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
mov al, byte [esi + 0x309]
test al, al
je 0x40bcc1
test al, 1
je 0x40bb08
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x32
test ecx, ecx
je 0x40baf1
call fcn.004047aa
jmp 0x40baf3
xor eax, eax
fld dword [0x56612c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x309], 2
je 0x40bb47
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x33
test ecx, ecx
je 0x40bb30
call fcn.004047aa
jmp 0x40bb32
xor eax, eax
fld dword [0x566128]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x309], 4
je 0x40bb86
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x34
test ecx, ecx
je 0x40bb6f
call fcn.004047aa
jmp 0x40bb71
xor eax, eax
fld dword [0x566124]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x309], 8
je 0x40bbc5
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x35
test ecx, ecx
je 0x40bbae
call fcn.004047aa
jmp 0x40bbb0
xor eax, eax
fld dword [0x566120]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x309], 0x10
je 0x40bc04
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x36
test ecx, ecx
je 0x40bbed
call fcn.004047aa
jmp 0x40bbef
xor eax, eax
fld dword [0x56611c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x309], 0x20
je 0x40bc43
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x37
test ecx, ecx
je 0x40bc2c
call fcn.004047aa
jmp 0x40bc2e
xor eax, eax
fld dword [0x566118]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x309], 0x40
je 0x40bc82
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x38
test ecx, ecx
je 0x40bc6b
call fcn.004047aa
jmp 0x40bc6d
xor eax, eax
fld dword [0x566114]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x309], 0x80
je 0x40bcc1
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x39
test ecx, ecx
je 0x40bcaa
call fcn.004047aa
jmp 0x40bcac
xor eax, eax
fld dword [0x566110]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
mov al, byte [esi + 0x30a]
test al, al
je 0x40bec2
test al, 1
je 0x40bd09
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x3a
test ecx, ecx
je 0x40bcf2
call fcn.004047aa
jmp 0x40bcf4
xor eax, eax
fld dword [0x56610c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x30a], 2
je 0x40bd48
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x3b
test ecx, ecx
je 0x40bd31
call fcn.004047aa
jmp 0x40bd33
xor eax, eax
fld dword [0x566108]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x30a], 4
je 0x40bd87
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x3c
test ecx, ecx
je 0x40bd70
call fcn.004047aa
jmp 0x40bd72
xor eax, eax
fld dword [0x566104]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x30a], 8
je 0x40bdc6
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x3d
test ecx, ecx
je 0x40bdaf
call fcn.004047aa
jmp 0x40bdb1
xor eax, eax
fld dword [0x566100]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x30a], 0x10
je 0x40be05
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x3e
test ecx, ecx
je 0x40bdee
call fcn.004047aa
jmp 0x40bdf0
xor eax, eax
fld dword [0x5660fc]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x30a], 0x20
je 0x40be44
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x3f
test ecx, ecx
je 0x40be2d
call fcn.004047aa
jmp 0x40be2f
xor eax, eax
fld dword [0x5660f8]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x30a], 0x40
je 0x40be83
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x40
test ecx, ecx
je 0x40be6c
call fcn.004047aa
jmp 0x40be6e
xor eax, eax
fld dword [0x5660f4]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x30a], 0x80
je 0x40bec2
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x41
test ecx, ecx
je 0x40beab
call fcn.004047aa
jmp 0x40bead
xor eax, eax
fld dword [0x5660f0]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
mov eax, dword [edi + 0x40]
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
call fcn.00404ce9
jmp 0x40bf20
fldz
fcomp dword [ecx + 4]
fnstsw ax
test ah, 5
jp 0x40bf18
fld dword [edi + 0x44]
fdiv dword [ecx + 4]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fdivr qword [0x564990]
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 0x40bf18
fld dword [ebp - 0x14]
fstp dword [ecx + 8]
lea ecx, [ebp - 0x1c]
call fcn.005105ae
mov ecx, eax
test ecx, ecx
jne 0x40bed6
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 [0x564990]
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 0x40bfa6
mov byte [edi + eax + 0x20], 0
test byte [esi + 0x283], 4
je 0x40ca60
push 0x6c
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0x42
test ecx, ecx
je 0x40bfea
call fcn.004097d0
mov edi, eax
jmp 0x40bfec
xor edi, edi
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x394]
or dword [ebp - 4], 0xffffffff
push edi
call fcn.0040989c
inc dword [ebx + 0x390]
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 [0x565fc0]
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 0x40c141
fild dword [ebp + 8]
push ecx
fstp dword [ebp + 8]
fld dword [ebp + 8]
fdiv qword [0x564990]
fstp dword [edi + 0x14]
fld dword [ebp + 8]
fdivr qword [0x565fb8]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fdiv qword [0x565fb0]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp dword [esp]
call fcn.00413420
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 [0x564990]
fstp dword [edi + 0x44]
test byte [esi + 0x347], 1
je 0x40c1a7
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x43
test ecx, ecx
je 0x40c18b
call fcn.004047aa
jmp 0x40c18d
xor eax, eax
fld dword [0x5660c4]
or ebx, 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
push eax
mov dword [ebp - 4], ebx
call fcn.00409837
jmp 0x40c1aa
or ebx, 0xffffffff
test byte [esi + 0x347], 2
je 0x40c1e9
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x44
test ecx, ecx
je 0x40c1d2
call fcn.004047aa
jmp 0x40c1d4
xor eax, eax
fld dword [0x5660bc]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x347], 4
je 0x40c228
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x45
test ecx, ecx
je 0x40c211
call fcn.004047aa
jmp 0x40c213
xor eax, eax
fld dword [0x5660b4]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x347], 8
je 0x40c267
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x46
test ecx, ecx
je 0x40c250
call fcn.004047aa
jmp 0x40c252
xor eax, eax
fld dword [0x566160]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x347], 0x10
je 0x40c2a6
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x47
test ecx, ecx
je 0x40c28f
call fcn.004047aa
jmp 0x40c291
xor eax, eax
fld dword [0x56615c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x347], 0x20
je 0x40c2e5
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x48
test ecx, ecx
je 0x40c2ce
call fcn.004047aa
jmp 0x40c2d0
xor eax, eax
fld dword [0x566158]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x347], 0x40
je 0x40c324
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x49
test ecx, ecx
je 0x40c30d
call fcn.004047aa
jmp 0x40c30f
xor eax, eax
fld dword [0x566154]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x347], 0x80
je 0x40c363
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x4a
test ecx, ecx
je 0x40c34c
call fcn.004047aa
jmp 0x40c34e
xor eax, eax
fld dword [0x566150]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
mov al, byte [esi + 0x348]
test al, al
je 0x40c564
test al, 1
je 0x40c3ab
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x4b
test ecx, ecx
je 0x40c394
call fcn.004047aa
jmp 0x40c396
xor eax, eax
fld dword [0x56614c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x348], 2
je 0x40c3ea
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x4c
test ecx, ecx
je 0x40c3d3
call fcn.004047aa
jmp 0x40c3d5
xor eax, eax
fld dword [0x566148]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x348], 4
je 0x40c429
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x4d
test ecx, ecx
je 0x40c412
call fcn.004047aa
jmp 0x40c414
xor eax, eax
fld dword [0x566144]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x348], 8
je 0x40c468
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x4e
test ecx, ecx
je 0x40c451
call fcn.004047aa
jmp 0x40c453
xor eax, eax
fld dword [0x566140]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x348], 0x10
je 0x40c4a7
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x4f
test ecx, ecx
je 0x40c490
call fcn.004047aa
jmp 0x40c492
xor eax, eax
fld dword [0x56613c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x348], 0x20
je 0x40c4e6
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x50
test ecx, ecx
je 0x40c4cf
call fcn.004047aa
jmp 0x40c4d1
xor eax, eax
fld dword [0x566138]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x348], 0x40
je 0x40c525
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x51
test ecx, ecx
je 0x40c50e
call fcn.004047aa
jmp 0x40c510
xor eax, eax
fld dword [0x566134]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x348], 0x80
je 0x40c564
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x52
test ecx, ecx
je 0x40c54d
call fcn.004047aa
jmp 0x40c54f
xor eax, eax
fld dword [0x566130]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
mov al, byte [esi + 0x349]
test al, al
je 0x40c765
test al, 1
je 0x40c5ac
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x53
test ecx, ecx
je 0x40c595
call fcn.004047aa
jmp 0x40c597
xor eax, eax
fld dword [0x56612c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x349], 2
je 0x40c5eb
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x54
test ecx, ecx
je 0x40c5d4
call fcn.004047aa
jmp 0x40c5d6
xor eax, eax
fld dword [0x566128]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x349], 4
je 0x40c62a
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x55
test ecx, ecx
je 0x40c613
call fcn.004047aa
jmp 0x40c615
xor eax, eax
fld dword [0x566124]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x349], 8
je 0x40c669
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x56
test ecx, ecx
je 0x40c652
call fcn.004047aa
jmp 0x40c654
xor eax, eax
fld dword [0x566120]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x349], 0x10
je 0x40c6a8
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x57
test ecx, ecx
je 0x40c691
call fcn.004047aa
jmp 0x40c693
xor eax, eax
fld dword [0x56611c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x349], 0x20
je 0x40c6e7
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x58
test ecx, ecx
je 0x40c6d0
call fcn.004047aa
jmp 0x40c6d2
xor eax, eax
fld dword [0x566118]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x349], 0x40
je 0x40c726
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x59
test ecx, ecx
je 0x40c70f
call fcn.004047aa
jmp 0x40c711
xor eax, eax
fld dword [0x566114]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x349], 0x80
je 0x40c765
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x5a
test ecx, ecx
je 0x40c74e
call fcn.004047aa
jmp 0x40c750
xor eax, eax
fld dword [0x566110]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
mov al, byte [esi + 0x34a]
test al, al
je 0x40c966
test al, 1
je 0x40c7ad
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x5b
test ecx, ecx
je 0x40c796
call fcn.004047aa
jmp 0x40c798
xor eax, eax
fld dword [0x56610c]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x34a], 2
je 0x40c7ec
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x5c
test ecx, ecx
je 0x40c7d5
call fcn.004047aa
jmp 0x40c7d7
xor eax, eax
fld dword [0x566108]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x34a], 4
je 0x40c82b
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x5d
test ecx, ecx
je 0x40c814
call fcn.004047aa
jmp 0x40c816
xor eax, eax
fld dword [0x566104]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x34a], 8
je 0x40c86a
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x5e
test ecx, ecx
je 0x40c853
call fcn.004047aa
jmp 0x40c855
xor eax, eax
fld dword [0x566100]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x34a], 0x10
je 0x40c8a9
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x5f
test ecx, ecx
je 0x40c892
call fcn.004047aa
jmp 0x40c894
xor eax, eax
fld dword [0x5660fc]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x34a], 0x20
je 0x40c8e8
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x60
test ecx, ecx
je 0x40c8d1
call fcn.004047aa
jmp 0x40c8d3
xor eax, eax
fld dword [0x5660f8]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x34a], 0x40
je 0x40c927
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x61
test ecx, ecx
je 0x40c910
call fcn.004047aa
jmp 0x40c912
xor eax, eax
fld dword [0x5660f4]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
test byte [esi + 0x34a], 0x80
je 0x40c966
push 0xc
call fcn.005120bc
pop ecx
mov ecx, eax
mov dword [ebp + 8], ecx
mov dword [ebp - 4], 0x62
test ecx, ecx
je 0x40c94f
call fcn.004047aa
jmp 0x40c951
xor eax, eax
fld dword [0x5660f0]
push eax
fstp dword [eax + 4]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 4], ebx
call fcn.00409837
mov eax, dword [edi + 0x40]
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
call fcn.00404ce9
jmp 0x40c9c4
fldz
fcomp dword [ecx + 4]
fnstsw ax
test ah, 5
jp 0x40c9bc
fld dword [edi + 0x44]
fdiv dword [ecx + 4]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fdivr qword [0x564990]
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 0x40c9bc
fld dword [ebp - 0x14]
fstp dword [ecx + 8]
lea ecx, [ebp - 0x1c]
call fcn.005105ae
mov ecx, eax
test ecx, ecx
jne 0x40c97a
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 [0x564990]
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 0x40ca4a
mov byte [edi + eax + 0x20], 0
call fcn.00531e00
ret 4