Function at 0x5d3a23
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x400c0
call fcn.005862f3
mov eax, dword [0x10148050]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0xbc], 0
push esi
push edi
mov dword [ebp - 0x400b0], ebx
je 0x5d3a65
push 0x1010c0f4
call fcn.0057c111
add eax, 0x40
push eax
call fcn.00575bd4
add esp, 8
xor esi, esi
mov dword [ebp - 0x4007c], esi
lea ebx, [ebx]
fild dword [ebp - 0x4007c]
fdiv qword [0x101056f8]
fstp dword [ebp - 0x40078]
fld dword [0x1010c0f0]
fld dword [ebp - 0x40078]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x5d3ab5
fld qword [0x1010c0e8]
call fcn.0064b163
fstp dword [ebp - 0x40078]
fld dword [ebp - 0x40078]
jmp 0x5d3ac1
fmul qword [0x1010c0e0]
fadd qword [0x1010c0d8]
fstp dword [ebp + esi*4 - 0x40074]
inc esi
mov dword [ebp - 0x4007c], esi
cmp esi, 0x10000
jl 0x5d3a73
fldz
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4008c], ecx
mov esi, 0x10108448
mov edx, 0x10108408
mov edi, dword [ebx + 0x66d0]
test edi, edi
jle 0x5d3b60
lea eax, [ebx + 0xe7d4]
fst dword [ecx]
add eax, 4
fld dword [eax - 0x14]
add ecx, 4
dec edi
fmul qword [edx - 8]
fdiv dword [esi]
fstp dword [ebp - 0x40078]
fld dword [ebp - 0x40078]
fadd dword [ecx - 4]
fstp dword [ebp - 0x40078]
fld dword [ebp - 0x40078]
fld dword [eax - 4]
fmul qword [edx]
fdiv dword [esi]
fstp dword [ebp - 0x40078]
fadd dword [ebp - 0x40078]
fstp dword [ebp - 0x40078]
fld dword [ebp - 0x40078]
fld dword [eax + 0xc]
fmul qword [edx + 8]
fdiv dword [esi]
fstp dword [ebp - 0x40078]
fadd dword [ebp - 0x40078]
fstp dword [ecx - 4]
jne 0x5d3afc
mov ecx, dword [ebp - 0x4008c]
add edx, 0x18
add ecx, 0x10
add esi, 4
mov dword [ebp - 0x4008c], ecx
cmp edx, 0x10108450
jl 0x5d3aec
push 5
fstp st(0)
push ebx
call fcn.005d29b3
push 0x1a0000
call fcn.0057652f
push 0x1010c0c0
push eax
push ebx
mov dword [ebp - 0x40094], eax
call fcn.005c5ba3
movzx eax, word [ebx + 0x66b4]
sub eax, 5
add esp, 0x18
mov dword [ebp - 0x400a8], 2
cmp eax, 2
jle 0x5d4b4f
fld qword [0x10104a10]
fld qword [0x10104a18]
fld qword [0x1010c0b8]
fld qword [0x1010c0b0]
fld qword [0x1010c0a8]
movzx ecx, word [ebx + 0x66b6]
sub ecx, 5
mov dword [ebp - 0x40090], 2
cmp ecx, 2
jle 0x5d4b22
mov eax, dword [ebp - 0x400a8]
mov esi, dword [ebp - 0x40094]
neg eax
mov dword [ebp - 0x400b8], eax
mov eax, dword [ebp - 0x400a8]
lea ecx, [eax + 0x100]
mov dword [ebp - 0x40080], eax
cmp eax, ecx
jge 0x5d3e59
mov eax, dword [ebp - 0x40090]
neg eax
mov dword [ebp - 0x40088], eax
movzx edx, word [ebx + 0x66b4]
sub edx, 2
cmp dword [ebp - 0x40080], edx
jge 0x5d3e59
mov eax, dword [ebp - 0x40080]
mov ecx, dword [ebp - 0x40090]
mov edi, dword [ebx + 0x65b0]
and ecx, 1
and eax, 7
add eax, eax
add ecx, eax
add ecx, ecx
mov edx, edi
shr edx, cl
and edx, 1
add edx, dword [ebp - 0x40090]
mov ecx, edx
and ecx, 1
add ecx, eax
mov eax, dword [ebp - 0x40090]
add ecx, ecx
shr edi, cl
add eax, 0x100
mov dword [ebp - 0x40084], edx
and edi, 3
mov dword [ebp - 0x4007c], edi
cmp edx, eax
jge 0x5d3e2f
jmp 0x5d3cb4
mov edi, dword [ebp - 0x4007c]
movzx eax, word [ebx + 0x66b6]
lea ecx, [eax - 2]
cmp edx, ecx
jge 0x5d3e2f
imul eax, dword [ebp - 0x40080]
mov ecx, dword [ebx + 0x66e0]
add eax, edx
lea eax, [ecx + eax*8]
movzx esi, word [eax + edi*2]
movzx ecx, word [eax - 6]
add esi, ecx
movzx ecx, word [eax + 0xa]
add esi, ecx
lea ecx, [esi + esi]
movzx esi, word [eax + edi*2 - 0x10]
sub ecx, esi
movzx esi, word [eax + edi*2 + 0x10]
movzx edi, word [eax - 6]
sub ecx, esi
movzx esi, word [eax + 0xa]
sar ecx, 2
cmp di, si
mov edi, ecx
jae 0x5d3d23
movzx esi, word [eax + 0xa]
cmp ecx, esi
jl 0x5d3d15
mov edi, esi
movzx esi, word [eax - 6]
cmp esi, edi
jg 0x5d3d3d
movzx esi, word [eax + 0xa]
jmp 0x5d3d39
movzx esi, word [eax - 6]
cmp ecx, esi
jl 0x5d3d2d
mov edi, esi
movzx esi, word [eax + 0xa]
cmp esi, edi
jg 0x5d3d3d
movzx esi, word [eax - 6]
cmp ecx, esi
jl 0x5d3d3f
mov ecx, esi
add edx, dword [ebp - 0x40088]
mov esi, dword [ebp - 0x40094]
lea edx, [edx + edx*2]
mov word [esi + edx*2 + 2], cx
movzx ecx, word [ebx + 0x66b6]
lea edx, [esi + edx*2]
mov edi, dword [ebp - 0x4007c]
movzx edi, word [eax + edi*2]
add ecx, ecx
mov dword [ebp - 0x4008c], edx
add ecx, ecx
add ecx, ecx
mov edx, eax
sub edx, ecx
movzx esi, word [edx + 2]
movzx edx, word [ecx + eax + 2]
mov dword [ebp - 0x40078], edx
movzx edx, dx
add edx, esi
add edx, edi
mov edi, dword [ebp - 0x4007c]
add edi, ecx
movzx edi, word [eax + edi*2]
add edx, edx
sub edx, edi
mov edi, dword [ebp - 0x4007c]
sub edi, ecx
movzx ecx, word [eax + edi*2]
sub edx, ecx
movzx ecx, word [ebx + 0x66b6]
add ecx, ecx
add ecx, ecx
sar edx, 2
add ecx, ecx
mov edi, edx
cmp si, word [ebp - 0x40078]
jae 0x5d3dd9
movzx esi, word [ecx + eax + 2]
cmp edx, esi
jl 0x5d3dd1
mov edi, esi
sub eax, ecx
movzx eax, word [eax + 2]
jmp 0x5d3dec
mov esi, eax
sub esi, ecx
movzx esi, word [esi + 2]
cmp edx, esi
jl 0x5d3de7
mov edi, esi
movzx eax, word [ecx + eax + 2]
cmp eax, edi
jle 0x5d3df4
mov edx, eax
jmp 0x5d3dfa
cmp edx, esi
jl 0x5d3dfa
mov edx, esi
mov eax, dword [ebp - 0x4008c]
mov esi, dword [ebp - 0x40094]
mov word [eax + 0x60002], dx
mov edx, dword [ebp - 0x40084]
mov eax, dword [ebp - 0x40090]
add edx, 2
add eax, 0x100
mov dword [ebp - 0x40084], edx
cmp edx, eax
jl 0x5d3cae
mov ecx, dword [ebp - 0x40080]
mov eax, dword [ebp - 0x400a8]
add dword [ebp - 0x40088], 0x100
inc ecx
add eax, 0x100
mov dword [ebp - 0x40080], ecx
cmp ecx, eax
jl 0x5d3c3e
mov ecx, dword [ebp - 0x400b8]
mov dword [ebp - 0x40088], ecx
mov dword [ebp - 0x400ac], 2
mov eax, dword [ebp - 0x400a8]
lea ecx, [eax + 1]
add eax, 0xff
mov dword [ebp - 0x40080], ecx
cmp ecx, eax
jge 0x5d4376
lea edx, [ecx*4 + 4]
mov dword [ebp - 0x4007c], edx
movzx eax, word [ebx + 0x66b4]
sub eax, 3
cmp ecx, eax
jge 0x5d4376
mov eax, dword [ebp - 0x40090]
lea ecx, [eax + 1]
add eax, 0xff
mov dword [ebp - 0x40084], ecx
cmp ecx, eax
jge 0x5d434f
jmp 0x5d3ece
mov ecx, dword [ebp - 0x40084]
movzx eax, word [ebx + 0x66b6]
lea edx, [eax - 3]
cmp ecx, edx
jge 0x5d434f
mov ecx, dword [ebp - 0x40080]
mov edx, dword [ebp - 0x40084]
imul eax, ecx
mov esi, dword [ebx + 0x66e0]
add eax, edx
lea edi, [esi + eax*8]
mov eax, dword [ebp - 0x40088]
mov esi, dword [ebp - 0x40094]
add eax, ecx
shl eax, 8
sub eax, dword [ebp - 0x40090]
and ecx, 7
add eax, edx
and edx, 1
lea eax, [eax + eax*2]
add eax, eax
mov dword [ebp - 0x40078], edx
lea edx, [edx + ecx*2]
add esi, eax
add edx, edx
mov dword [ebp - 0x40098], eax
mov eax, dword [ebx + 0x65b0]
mov ecx, edx
mov ebx, eax
shr ebx, cl
mov ecx, 2
mov dword [ebp - 0x4008c], edx
and ebx, 3
sub ecx, ebx
cmp ecx, 1
jne 0x5d3ffa
mov ecx, dword [ebp - 0x4007c]
mov edx, dword [ebp - 0x40078]
and ecx, 0x1c
lea ecx, [ecx + edx*2]
shr eax, cl
mov ebx, edi
and eax, 3
mov ecx, eax
lea eax, [ecx + ecx + 4]
sub ebx, eax
movzx eax, word [ebx]
mov edx, ecx
neg edx
movzx ebx, word [edi + edx*2 + 0xc]
add eax, ebx
movzx ebx, word [esi + 8]
sub eax, ebx
movzx ebx, word [esi - 4]
sub eax, ebx
movzx ebx, word [edi + 2]
sar eax, 1
add eax, ebx
cmp eax, 0xffff
jge 0x5d3fac
xor ebx, ebx
test eax, eax
sets bl
dec ebx
and eax, ebx
jmp 0x5d3fb1
mov eax, 0xffff
mov word [esi + edx*2 + 4], ax
mov edx, dword [ebp - 0x400b0]
movzx edx, word [edx + 0x66b6]
add edx, edx
add edx, edx
lea eax, [edx + ecx]
movzx eax, word [edi + eax*2]
mov ebx, ecx
sub ebx, edx
movzx edx, word [edi + ebx*2]
add eax, edx
movzx edx, word [esi + 0x602]
sub eax, edx
movzx edx, word [esi - 0x5fe]
sub eax, edx
movzx edx, word [edi + 2]
sar eax, 1
add eax, edx
mov edx, dword [ebp - 0x4008c]
jmp 0x5d406b
mov eax, dword [ebp - 0x400b0]
movzx ebx, word [eax + 0x66b6]
add ebx, ebx
add ebx, ebx
mov eax, ecx
sub eax, ebx
mov dword [ebp - 0x4008c], eax
add ebx, ecx
movzx eax, word [edi + ebx*2 - 8]
movzx ebx, word [edi + ebx*2 + 8]
add eax, ebx
mov ebx, dword [ebp - 0x4008c]
movzx ebx, word [edi + ebx*2 - 8]
add eax, ebx
mov ebx, dword [ebp - 0x4008c]
movzx ebx, word [edi + ebx*2 + 8]
add eax, ebx
movzx ebx, word [esi + 0x608]
sub eax, ebx
movzx ebx, word [esi - 0x604]
sub eax, ebx
movzx ebx, word [esi + 0x5fc]
sub eax, ebx
movzx ebx, word [esi - 0x5f8]
sub eax, ebx
movzx ebx, word [esi + 2]
inc eax
sar eax, 2
add eax, ebx
mov ebx, dword [ebp - 0x400b0]
cmp eax, 0xffff
jge 0x5d408a
xor ebx, ebx
test eax, eax
sets bl
dec ebx
and eax, ebx
mov ebx, dword [ebp - 0x400b0]
jmp 0x5d408f
mov eax, 0xffff
fld dword [0x10105350]
mov word [esi + ecx*2], ax
mov eax, dword [ebx + 0x65b0]
fst dword [ebp - 0x4009c]
mov ecx, edx
fst dword [ebp - 0x400a0]
shr eax, cl
fstp dword [ebp - 0x400a4]
and eax, 3
mov cx, word [edi + eax*2]
mov word [esi + eax*2], cx
mov edx, dword [ebx + 0x66d0]
xor eax, eax
cmp edx, 4
jl 0x5d41f4
lea ecx, [esi + 4]
movzx edi, word [ecx - 4]
mov dword [ebp - 0x40078], edi
movzx edi, word [ecx - 2]
fild dword [ebp - 0x40078]
fld dword [ebp + eax*4 - 0x74]
mov dword [ebp - 0x40078], edi
movzx edi, word [ecx]
fmul st(1)
add eax, 4
fadd dword [ebp - 0x400a4]
add ecx, 8
fstp dword [ebp - 0x400a4]
fld dword [ebp + eax*4 - 0x74]
fmul st(1)
fadd dword [ebp - 0x400a0]
fstp dword [ebp - 0x400a0]
fmul dword [ebp + eax*4 - 0x64]
fadd dword [ebp - 0x4009c]
fstp dword [ebp - 0x4009c]
fild dword [ebp - 0x40078]
mov dword [ebp - 0x40078], edi
fld dword [ebp + eax*4 - 0x80]
movzx edi, word [ecx - 6]
fmul st(1)
fadd dword [ebp - 0x400a4]
fstp dword [ebp - 0x400a4]
fld dword [ebp + eax*4 - 0x70]
fmul st(1)
fadd dword [ebp - 0x400a0]
fstp dword [ebp - 0x400a0]
fmul dword [ebp + eax*4 - 0x60]
fadd dword [ebp - 0x4009c]
fstp dword [ebp - 0x4009c]
fild dword [ebp - 0x40078]
mov dword [ebp - 0x40078], edi
fld dword [ebp + eax*4 - 0x7c]
lea edi, [edx - 3]
fmul st(1)
fadd dword [ebp - 0x400a4]
fstp dword [ebp - 0x400a4]
fld dword [ebp + eax*4 - 0x6c]
fmul st(1)
fadd dword [ebp - 0x400a0]
fstp dword [ebp - 0x400a0]
fmul dword [ebp + eax*4 - 0x5c]
fadd dword [ebp - 0x4009c]
fstp dword [ebp - 0x4009c]
fild dword [ebp - 0x40078]
fld dword [ebp + eax*4 - 0x78]
fmul st(1)
fadd dword [ebp - 0x400a4]
fstp dword [ebp - 0x400a4]
fld dword [ebp + eax*4 - 0x68]
fmul st(1)
fadd dword [ebp - 0x400a0]
fstp dword [ebp - 0x400a0]
fmul dword [ebp + eax*4 - 0x58]
fadd dword [ebp - 0x4009c]
fstp dword [ebp - 0x4009c]
cmp eax, edi
jl 0x5d40d4
cmp eax, edx
jge 0x5d4241
movzx ecx, word [esi + eax*2]
mov dword [ebp - 0x40078], ecx
inc eax
fild dword [ebp - 0x40078]
fld dword [ebp + eax*4 - 0x78]
fmul st(1)
fadd dword [ebp - 0x400a4]
fstp dword [ebp - 0x400a4]
fld dword [ebp + eax*4 - 0x68]
fmul st(1)
fadd dword [ebp - 0x400a0]
fstp dword [ebp - 0x400a0]
fmul dword [ebp + eax*4 - 0x58]
fadd dword [ebp - 0x4009c]
fstp dword [ebp - 0x4009c]
cmp eax, edx
jl 0x5d41f8
fld dword [ebp - 0x400a4]
call fcn.0064aa73
cmp eax, 0xffff
jge 0x5d4262
test eax, eax
jns 0x5d425b
xor eax, eax
jmp 0x5d4267
cmp eax, 0xffff
jl 0x5d4267
mov eax, 0xffff
fld dword [ebp + eax*4 - 0x40074]
fstp dword [ebp - 0x400a4]
fld dword [ebp - 0x400a0]
call fcn.0064aa73
cmp eax, 0xffff
jge 0x5d4295
test eax, eax
jns 0x5d428e
xor eax, eax
jmp 0x5d429a
cmp eax, 0xffff
jl 0x5d429a
mov eax, 0xffff
fld dword [ebp + eax*4 - 0x40074]
fstp dword [ebp - 0x400a0]
fld dword [ebp - 0x4009c]
call fcn.0064aa73
cmp eax, 0xffff
jge 0x5d42c8
test eax, eax
jns 0x5d42c1
xor eax, eax
jmp 0x5d42cd
cmp eax, 0xffff
jl 0x5d42cd
mov eax, 0xffff
fld dword [ebp + eax*4 - 0x40074]
fstp dword [ebp - 0x4009c]
fld dword [ebp - 0x400a0]
fld st(0)
fmul st(6)
fsub st(5)
fmul st(4)
call fcn.0064aa73
fld dword [ebp - 0x400a4]
mov esi, dword [ebp - 0x40098]
fsub st(1)
mov edi, dword [ebp - 0x40094]
mov word [esi + edi + 0xc0000], ax
fmul st(3)
call fcn.0064aa73
fsub dword [ebp - 0x4009c]
mov word [esi + edi + 0xc0002], ax
fmul st(1)
call fcn.0064aa73
mov ecx, dword [ebp - 0x40084]
mov word [esi + edi + 0xc0004], ax
mov eax, dword [ebp - 0x40090]
inc ecx
add eax, 0xff
mov dword [ebp - 0x40084], ecx
mov esi, edi
cmp ecx, eax
jl 0x5d3ec8
mov ecx, dword [ebp - 0x40080]
mov eax, dword [ebp - 0x400a8]
add dword [ebp - 0x4007c], 4
inc ecx
add eax, 0xff
mov dword [ebp - 0x40080], ecx
cmp ecx, eax
jl 0x5d3e98
add dword [ebp - 0x40088], 0x100
dec dword [ebp - 0x400ac]
jne 0x5d3e6f
fstp st(4)
push 0x20000
fstp st(2)
lea eax, [esi + 0x180000]
fstp st(0)
push 0
fstp st(0)
push eax
fstp st(0)
call fcn.005778d3
mov ecx, dword [ebp - 0x400a8]
lea edx, [ecx + 2]
lea eax, [ecx + 0xfe]
add esp, 0xc
mov dword [ebp - 0x40080], edx
cmp edx, eax
jge 0x5d47da
mov ecx, edx
sub ecx, dword [ebp - 0x400a8]
mov dword [ebp - 0x4008c], ecx
movzx eax, word [ebx + 0x66b4]
sub eax, 4
cmp edx, eax
jge 0x5d47da
mov eax, dword [ebp - 0x40090]
lea edx, [eax + 2]
add eax, 0xfe
mov dword [ebp - 0x40084], edx
cmp edx, eax
jge 0x5d47ad
mov eax, edx
sub eax, dword [ebp - 0x40090]
mov dword [ebp - 0x400ac], eax
movzx esi, word [ebx + 0x66b6]
sub esi, 4
cmp edx, esi
jge 0x5d47ad
mov edx, dword [ebp - 0x40094]
shl ecx, 8
add eax, ecx
mov dword [ebp - 0x40078], ecx
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*2 + 0xbfffa]
xor edx, edx
mov dword [ebp - 0x40098], edx
movsx ecx, word [eax + 6]
movsx edi, word [eax]
mov esi, ecx
sub esi, edi
mov edi, esi
sar edi, 0x1f
mov ebx, edi
xor ebx, esi
sub ebx, edi
movsx esi, word [eax + 0xa]
movsx edi, word [eax + 4]
mov dword [ebp + edx - 0x24], ebx
movsx ebx, word [eax + 2]
mov dword [ebp - 0x40088], esi
sub esi, edi
movsx edi, word [eax + 8]
imul esi, esi
mov dword [ebp - 0x4007c], edi
sub edi, ebx
imul edi, edi
add edi, esi
movsx esi, word [eax + 0xc]
mov dword [ebp + edx - 0x44], edi
mov edi, ecx
sub edi, esi
movsx esi, word [eax + 0xc]
sar edi, 0x1f
mov ebx, ecx
sub ebx, esi
movsx esi, word [eax + 0xc]
xor edi, ebx
mov ebx, ecx
sub ebx, esi
movsx esi, word [eax + 0xe]
sar ebx, 0x1f
sub edi, ebx
mov dword [ebp + edx - 0x20], edi
mov edx, dword [ebp - 0x4007c]
mov edi, edx
sub edi, esi
movsx esi, word [eax + 0xe]
sub edx, esi
movsx esi, word [eax + 0x10]
imul edi, edx
mov edx, dword [ebp - 0x40088]
mov ebx, edx
sub ebx, esi
movsx esi, word [eax + 0x10]
sub edx, esi
movsx esi, word [eax - 0x5fa]
imul ebx, edx
mov edx, dword [ebp - 0x40098]
add edi, ebx
mov dword [ebp + edx - 0x40], edi
mov edi, ecx
sub edi, esi
movsx esi, word [eax - 0x5fa]
sar edi, 0x1f
mov ebx, ecx
sub ebx, esi
movsx esi, word [eax - 0x5fa]
xor edi, ebx
mov ebx, ecx
sub ebx, esi
movsx esi, word [eax - 0x5f8]
sar ebx, 0x1f
sub edi, ebx
mov dword [ebp + edx - 0x1c], edi
mov edx, dword [ebp - 0x4007c]
mov edi, edx
sub edi, esi
movsx esi, word [eax - 0x5f8]
sub edx, esi
movsx esi, word [eax - 0x5f6]
imul edi, edx
mov edx, dword [ebp - 0x40088]
mov ebx, edx
sub ebx, esi
movsx esi, word [eax - 0x5f6]
sub edx, esi
imul ebx, edx
mov edx, dword [ebp - 0x40098]
movsx esi, word [eax + 0x606]
add edi, ebx
mov dword [ebp + edx - 0x3c], edi
mov edi, ecx
sub edi, esi
movsx esi, word [eax + 0x606]
mov ebx, ecx
sub ebx, esi
movsx esi, word [eax + 0x606]
sub ecx, esi
movsx esi, word [eax + 0x608]
sar edi, 0x1f
xor edi, ebx
sar ecx, 0x1f
sub edi, ecx
mov ecx, dword [ebp - 0x4007c]
mov dword [ebp + edx - 0x18], edi
mov edi, ecx
sub edi, esi
movsx esi, word [eax + 0x608]
sub ecx, esi
movsx esi, word [eax + 0x60a]
imul edi, ecx
mov ecx, dword [ebp - 0x40088]
mov ebx, ecx
sub ebx, esi
movsx esi, word [eax + 0x60a]
sub ecx, esi
imul ebx, ecx
add edi, ebx
mov dword [ebp + edx - 0x38], edi
add edx, 0x10
add eax, 0x60000
mov dword [ebp - 0x40098], edx
cmp edx, 0x20
jl 0x5d4448
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
mov ecx, edi
cmp edi, ebx
ja 0x5d45f5
mov ecx, ebx
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov eax, edx
cmp edx, esi
ja 0x5d4603
mov eax, esi
cmp ecx, eax
jae 0x5d461b
cmp edi, ebx
jbe 0x5d4613
mov dword [ebp - 0x4007c], edi
jmp 0x5d462b
mov dword [ebp - 0x4007c], ebx
jmp 0x5d462b
mov dword [ebp - 0x4007c], edx
cmp edx, esi
ja 0x5d462b
mov dword [ebp - 0x4007c], esi
mov edx, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x40]
mov ecx, edx
cmp edx, ebx
ja 0x5d4639
mov ecx, ebx
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x28]
mov eax, esi
cmp esi, edi
ja 0x5d4647
mov eax, edi
cmp ecx, eax
jae 0x5d4657
cmp edx, ebx
jbe 0x5d4653
mov edi, edx
jmp 0x5d465d
mov edi, ebx
jmp 0x5d465d
cmp esi, edi
jbe 0x5d465d
mov edi, esi
mov ebx, dword [ebp - 0x4007c]
cmp dword [ebp - 0x24], ebx
ja 0x5d468a
cmp edx, edi
ja 0x5d468a
mov ecx, dword [ebp - 0x40078]
mov eax, dword [ebp - 0x400ac]
mov edx, dword [ebp - 0x40094]
lea esi, [ecx + eax]
inc byte [edx + esi + 0x180000]
jmp 0x5d4696
mov ecx, dword [ebp - 0x40078]
mov eax, dword [ebp - 0x400ac]
mov edx, dword [ebp - 0x40094]
cmp dword [ebp - 0x20], ebx
ja 0x5d46b7
cmp dword [ebp - 0x40], edi
ja 0x5d46b7
lea esi, [ecx + eax]
inc byte [esi + edx + 0x180000]
lea esi, [esi + edx + 0x180000]
cmp dword [ebp - 0x1c], ebx
ja 0x5d46d2
cmp dword [ebp - 0x3c], edi
ja 0x5d46d2
lea esi, [ecx + eax]
inc byte [esi + edx + 0x180000]
lea esi, [esi + edx + 0x180000]
cmp dword [ebp - 0x18], ebx
ja 0x5d46ec
cmp dword [ebp - 0x38], edi
ja 0x5d46ec
add ecx, eax
inc byte [ecx + edx + 0x180000]
lea ecx, [ecx + edx + 0x180000]
cmp dword [ebp - 0x14], ebx
ja 0x5d4717
cmp dword [ebp - 0x34], edi
ja 0x5d4717
mov ecx, dword [ebp - 0x4008c]
lea esi, [ecx + 0x100]
shl esi, 8
add esi, eax
inc byte [esi + edx + 0x180000]
lea esi, [esi + edx + 0x180000]
jmp 0x5d471d
mov ecx, dword [ebp - 0x4008c]
cmp dword [ebp - 0x10], ebx
ja 0x5d4740
cmp dword [ebp - 0x30], edi
ja 0x5d4740
lea esi, [ecx + 0x100]
shl esi, 8
add esi, eax
inc byte [esi + edx + 0x180000]
lea esi, [esi + edx + 0x180000]
cmp dword [ebp - 0xc], ebx
ja 0x5d4763
cmp dword [ebp - 0x2c], edi
ja 0x5d4763
lea esi, [ecx + 0x100]
shl esi, 8
add esi, eax
inc byte [esi + edx + 0x180000]
lea esi, [esi + edx + 0x180000]
cmp dword [ebp - 8], ebx
ja 0x5d477f
cmp dword [ebp - 0x28], edi
ja 0x5d477f
lea esi, [ecx + 0x100]
shl esi, 8
add esi, eax
inc byte [edx + esi + 0x180000]
mov edx, dword [ebp - 0x40084]
mov esi, dword [ebp - 0x40090]
mov ebx, dword [ebp - 0x400b0]
inc edx
inc eax
add esi, 0xfe
mov dword [ebp - 0x40084], edx
mov dword [ebp - 0x400ac], eax
cmp edx, esi
jl 0x5d4413
mov edx, dword [ebp - 0x40080]
mov eax, dword [ebp - 0x400a8]
mov esi, dword [ebp - 0x40094]
inc edx
inc ecx
add eax, 0xfe
mov dword [ebp - 0x40080], edx
mov dword [ebp - 0x4008c], ecx
cmp edx, eax
jl 0x5d43d7
mov ecx, dword [ebp - 0x400a8]
lea eax, [ecx + 3]
lea edx, [ecx + 0xfd]
mov dword [ebp - 0x40080], eax
cmp eax, edx
jge 0x5d4ad9
mov edx, eax
sub edx, ecx
mov dword [ebp - 0x40088], edx
jmp 0x5d4809
mov eax, dword [ebp - 0x40080]
movzx ecx, word [ebx + 0x66b4]
sub ecx, 5
cmp eax, ecx
jge 0x5d4ad9
mov eax, dword [ebp - 0x40090]
lea ecx, [eax + 3]
add eax, 0xfd
mov dword [ebp - 0x40084], ecx
cmp ecx, eax
jge 0x5d4ab2
mov eax, ecx
sub eax, dword [ebp - 0x40090]
mov dword [ebp - 0x40098], eax
jmp 0x5d4853
movzx edx, word [ebx + 0x66b6]
lea eax, [edx - 5]
mov dword [ebp - 0x400b4], edx
cmp dword [ebp - 0x40084], eax
jge 0x5d4ab2
mov eax, dword [ebp - 0x40088]
lea edi, [ebp - 0x400c0]
inc eax
mov dword [ebp - 0x4008c], 0
mov dword [ebp - 0x400ac], edi
lea esp, [esp]
mov ecx, dword [ebp - 0x40088]
dec ecx
mov dword [edi], 0
mov dword [ebp - 0x4007c], ecx
cmp ecx, eax
jg 0x5d4924
mov eax, dword [ebp - 0x40098]
inc eax
mov dword [ebp - 0x40078], eax
jmp 0x5d48c3
mov eax, dword [ebp - 0x40098]
dec eax
cmp eax, dword [ebp - 0x40078]
jg 0x5d4912
mov edx, dword [ebp - 0x4008c]
add edx, ecx
mov ecx, dword [edi]
shl edx, 8
lea edx, [edx + esi + 0x180000]
movsx edi, byte [edx + eax]
add ecx, edi
mov edi, dword [ebp - 0x40098]
inc edi
inc eax
mov dword [ebp - 0x40078], edi
cmp eax, edi
jle 0x5d48e6
mov edi, dword [ebp - 0x400ac]
mov edx, dword [ebp - 0x400b4]
mov dword [edi], ecx
mov ecx, dword [ebp - 0x4007c]
mov eax, dword [ebp - 0x40088]
inc ecx
inc eax
mov dword [ebp - 0x4007c], ecx
cmp ecx, eax
jle 0x5d48c3
mov ecx, dword [ebp - 0x4008c]
add ecx, 0x100
add edi, 4
mov dword [ebp - 0x400ac], edi
mov dword [ebp - 0x4008c], ecx
cmp ecx, 0x200
jl 0x5d4893
mov edi, dword [ebp - 0x400c0]
mov eax, dword [ebp - 0x400bc]
cmp edi, eax
je 0x5d49e5
xor ecx, ecx
cmp eax, edi
setg cl
imul edx, dword [ebp - 0x40080]
add edx, dword [ebp - 0x40084]
shl ecx, 8
add ecx, dword [ebp - 0x40088]
shl ecx, 8
add ecx, dword [ebp - 0x40098]
mov eax, ecx
mov ecx, dword [ebx + 0x66e0]
lea eax, [eax + eax*2]
movzx edi, word [esi + eax*2]
mov word [ecx + edx*8], di
movzx edx, word [ebx + 0x66b6]
imul edx, dword [ebp - 0x40080]
add edx, dword [ebp - 0x40084]
movzx edi, word [esi + eax*2 + 2]
mov ecx, dword [ebx + 0x66e0]
mov word [ecx + edx*8 + 2], di
movzx edx, word [ebx + 0x66b6]
imul edx, dword [ebp - 0x40080]
add edx, dword [ebp - 0x40084]
mov ecx, dword [ebx + 0x66e0]
mov ax, word [esi + eax*2 + 4]
mov word [ecx + edx*8 + 4], ax
jmp 0x5d4a8c
imul edx, dword [ebp - 0x40080]
mov ecx, dword [ebp - 0x40088]
mov edi, dword [ebp - 0x40098]
add edx, dword [ebp - 0x40084]
mov eax, ecx
add ecx, 0x100
shl ecx, 8
add ecx, edi
lea ecx, [ecx + ecx*2]
movzx ecx, word [esi + ecx*2]
shl eax, 8
add eax, edi
lea eax, [eax + eax*2]
movzx edi, word [esi + eax*2]
add ecx, edi
mov edi, dword [ebx + 0x66e0]
sar ecx, 1
mov word [edi + edx*8], cx
movzx ecx, word [esi + eax*2 + 2]
movzx edx, word [esi + eax*2 + 0x60002]
mov edi, dword [ebx + 0x66e0]
add edx, ecx
movzx ecx, word [ebx + 0x66b6]
imul ecx, dword [ebp - 0x40080]
add ecx, dword [ebp - 0x40084]
sar edx, 1
mov word [edi + ecx*8 + 2], dx
movzx ecx, word [ebx + 0x66b6]
movzx edx, word [esi + eax*2 + 4]
imul ecx, dword [ebp - 0x40080]
movzx eax, word [esi + eax*2 + 0x60004]
add edx, eax
mov eax, dword [ebx + 0x66e0]
sar edx, 1
add ecx, dword [ebp - 0x40084]
mov word [eax + ecx*8 + 4], dx
mov ecx, dword [ebp - 0x40084]
mov eax, dword [ebp - 0x40090]
inc dword [ebp - 0x40098]
inc ecx
add eax, 0xfd
mov dword [ebp - 0x40084], ecx
cmp ecx, eax
jl 0x5d4853
mov eax, dword [ebp - 0x40080]
mov ecx, dword [ebp - 0x400a8]
inc dword [ebp - 0x40088]
inc eax
add ecx, 0xfd
mov dword [ebp - 0x40080], eax
cmp eax, ecx
jl 0x5d4803
fld qword [0x1010c0a8]
movzx ecx, word [ebx + 0x66b6]
fld qword [0x1010c0b0]
mov eax, dword [ebp - 0x40090]
fld qword [0x1010c0b8]
add eax, 0xfa
fld qword [0x10104a18]
sub ecx, 5
fld qword [0x10104a10]
mov dword [ebp - 0x40090], eax
fxch st(4)
fxch st(1)
fxch st(3)
fxch st(1)
cmp eax, ecx
jl 0x5d3c16
movzx edx, word [ebx + 0x66b4]
mov eax, dword [ebp - 0x400a8]
add eax, 0xfa
sub edx, 5
mov dword [ebp - 0x400a8], eax
cmp eax, edx
jl 0x5d3be5
fstp st(4)
fstp st(2)
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0x40094]
push eax
call fcn.00575960
mov ecx, dword [ebp - 4]
add esp, 4
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0057371d
mov esp, ebp
pop ebp
ret