Function at 0x4eeb20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x400c0
call fcn.0050c2d0
mov eax, dword [0x551aa8]
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 0x4eeb62
push 0x53d214
call sub.MSVCR100.dll___iob_func
add eax, 0x40
push eax
call sub.MSVCR100.dll_fprintf
add esp, 8
xor esi, esi
mov dword [ebp - 0x4007c], esi
lea ebx, [ebx]
fild dword [ebp - 0x4007c]
fdiv qword [0x516d98]
fstp dword [ebp - 0x40078]
fld dword [0x53d210]
fld dword [ebp - 0x40078]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4eebb2
fld qword [0x53d208]
call sub.MSVCR100.dll__CIpow
fstp dword [ebp - 0x40078]
fld dword [ebp - 0x40078]
jmp 0x4eebbe
fmul qword [0x51a970]
fadd qword [0x51a960]
fstp dword [ebp + esi*4 - 0x40074]
inc esi
mov dword [ebp - 0x4007c], esi
cmp esi, 0x10000
jl 0x4eeb70
fldz
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4008c], ecx
mov esi, 0x539598
mov edx, 0x539558
mov edi, dword [ebx + 0x66d0]
test edi, edi
jle 0x4eec5d
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 0x4eebf9
mov ecx, dword [ebp - 0x4008c]
add edx, 0x18
add ecx, 0x10
add esi, 4
mov dword [ebp - 0x4008c], ecx
cmp edx, 0x5395a0
jl 0x4eebe9
push 5
fstp st(0)
push ebx
call fcn.004edab0
push 0x1a0000
call sub.MSVCR100.dll_malloc
push 0x53d1f0
push eax
push ebx
mov dword [ebp - 0x40094], eax
call fcn.004e0cb0
movzx eax, word [ebx + 0x66b4]
sub eax, 5
add esp, 0x18
mov dword [ebp - 0x400a8], 2
cmp eax, 2
jle 0x4efc4c
fld qword [0x511eb0]
fld qword [0x511eb8]
fld qword [0x51abc8]
fld qword [0x53d1e8]
fld qword [0x53d1e0]
movzx ecx, word [ebx + 0x66b6]
sub ecx, 5
mov dword [ebp - 0x40090], 2
cmp ecx, 2
jle 0x4efc1f
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 0x4eef56
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 0x4eef56
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 0x4eef2c
jmp 0x4eedb1
mov edi, dword [ebp - 0x4007c]
movzx eax, word [ebx + 0x66b6]
lea ecx, [eax - 2]
cmp edx, ecx
jge 0x4eef2c
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 0x4eee20
movzx esi, word [eax + 0xa]
cmp ecx, esi
jl 0x4eee12
mov edi, esi
movzx esi, word [eax - 6]
cmp esi, edi
jg 0x4eee3a
movzx esi, word [eax + 0xa]
jmp 0x4eee36
movzx esi, word [eax - 6]
cmp ecx, esi
jl 0x4eee2a
mov edi, esi
movzx esi, word [eax + 0xa]
cmp esi, edi
jg 0x4eee3a
movzx esi, word [eax - 6]
cmp ecx, esi
jl 0x4eee3c
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 0x4eeed6
movzx esi, word [ecx + eax + 2]
cmp edx, esi
jl 0x4eeece
mov edi, esi
sub eax, ecx
movzx eax, word [eax + 2]
jmp 0x4eeee9
mov esi, eax
sub esi, ecx
movzx esi, word [esi + 2]
cmp edx, esi
jl 0x4eeee4
mov edi, esi
movzx eax, word [ecx + eax + 2]
cmp eax, edi
jle 0x4eeef1
mov edx, eax
jmp 0x4eeef7
cmp edx, esi
jl 0x4eeef7
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 0x4eedab
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 0x4eed3b
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 0x4ef473
lea edx, [ecx*4 + 4]
mov dword [ebp - 0x4007c], edx
movzx eax, word [ebx + 0x66b4]
sub eax, 3
cmp ecx, eax
jge 0x4ef473
mov eax, dword [ebp - 0x40090]
lea ecx, [eax + 1]
add eax, 0xff
mov dword [ebp - 0x40084], ecx
cmp ecx, eax
jge 0x4ef44c
jmp 0x4eefcb
mov ecx, dword [ebp - 0x40084]
movzx eax, word [ebx + 0x66b6]
lea edx, [eax - 3]
cmp ecx, edx
jge 0x4ef44c
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 0x4ef0f7
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 0x4ef0a9
xor ebx, ebx
test eax, eax
sets bl
dec ebx
and eax, ebx
jmp 0x4ef0ae
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 0x4ef168
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 0x4ef187
xor ebx, ebx
test eax, eax
sets bl
dec ebx
and eax, ebx
mov ebx, dword [ebp - 0x400b0]
jmp 0x4ef18c
mov eax, 0xffff
fld dword [0x512658]
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 0x4ef2f1
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 0x4ef1d1
cmp eax, edx
jge 0x4ef33e
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 0x4ef2f5
fld dword [ebp - 0x400a4]
call fcn.0050c200
cmp eax, 0xffff
jge 0x4ef35f
test eax, eax
jns 0x4ef358
xor eax, eax
jmp 0x4ef364
cmp eax, 0xffff
jl 0x4ef364
mov eax, 0xffff
fld dword [ebp + eax*4 - 0x40074]
fstp dword [ebp - 0x400a4]
fld dword [ebp - 0x400a0]
call fcn.0050c200
cmp eax, 0xffff
jge 0x4ef392
test eax, eax
jns 0x4ef38b
xor eax, eax
jmp 0x4ef397
cmp eax, 0xffff
jl 0x4ef397
mov eax, 0xffff
fld dword [ebp + eax*4 - 0x40074]
fstp dword [ebp - 0x400a0]
fld dword [ebp - 0x4009c]
call fcn.0050c200
cmp eax, 0xffff
jge 0x4ef3c5
test eax, eax
jns 0x4ef3be
xor eax, eax
jmp 0x4ef3ca
cmp eax, 0xffff
jl 0x4ef3ca
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.0050c200
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.0050c200
fsub dword [ebp - 0x4009c]
mov word [esi + edi + 0xc0002], ax
fmul st(1)
call fcn.0050c200
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 0x4eefc5
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 0x4eef95
add dword [ebp - 0x40088], 0x100
dec dword [ebp - 0x400ac]
jne 0x4eef6c
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 sub.MSVCR100.dll_memset
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 0x4ef8d7
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 0x4ef8d7
mov eax, dword [ebp - 0x40090]
lea edx, [eax + 2]
add eax, 0xfe
mov dword [ebp - 0x40084], edx
cmp edx, eax
jge 0x4ef8aa
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 0x4ef8aa
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 0x4ef545
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
mov ecx, edi
cmp edi, ebx
ja 0x4ef6f2
mov ecx, ebx
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov eax, edx
cmp edx, esi
ja 0x4ef700
mov eax, esi
cmp ecx, eax
jae 0x4ef718
cmp edi, ebx
jbe 0x4ef710
mov dword [ebp - 0x4007c], edi
jmp 0x4ef728
mov dword [ebp - 0x4007c], ebx
jmp 0x4ef728
mov dword [ebp - 0x4007c], edx
cmp edx, esi
ja 0x4ef728
mov dword [ebp - 0x4007c], esi
mov edx, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x40]
mov ecx, edx
cmp edx, ebx
ja 0x4ef736
mov ecx, ebx
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x28]
mov eax, esi
cmp esi, edi
ja 0x4ef744
mov eax, edi
cmp ecx, eax
jae 0x4ef754
cmp edx, ebx
jbe 0x4ef750
mov edi, edx
jmp 0x4ef75a
mov edi, ebx
jmp 0x4ef75a
cmp esi, edi
jbe 0x4ef75a
mov edi, esi
mov ebx, dword [ebp - 0x4007c]
cmp dword [ebp - 0x24], ebx
ja 0x4ef787
cmp edx, edi
ja 0x4ef787
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 0x4ef793
mov ecx, dword [ebp - 0x40078]
mov eax, dword [ebp - 0x400ac]
mov edx, dword [ebp - 0x40094]
cmp dword [ebp - 0x20], ebx
ja 0x4ef7b4
cmp dword [ebp - 0x40], edi
ja 0x4ef7b4
lea esi, [ecx + eax]
inc byte [esi + edx + 0x180000]
lea esi, [esi + edx + 0x180000]
cmp dword [ebp - 0x1c], ebx
ja 0x4ef7cf
cmp dword [ebp - 0x3c], edi
ja 0x4ef7cf
lea esi, [ecx + eax]
inc byte [esi + edx + 0x180000]
lea esi, [esi + edx + 0x180000]
cmp dword [ebp - 0x18], ebx
ja 0x4ef7e9
cmp dword [ebp - 0x38], edi
ja 0x4ef7e9
add ecx, eax
inc byte [ecx + edx + 0x180000]
lea ecx, [ecx + edx + 0x180000]
cmp dword [ebp - 0x14], ebx
ja 0x4ef814
cmp dword [ebp - 0x34], edi
ja 0x4ef814
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 0x4ef81a
mov ecx, dword [ebp - 0x4008c]
cmp dword [ebp - 0x10], ebx
ja 0x4ef83d
cmp dword [ebp - 0x30], edi
ja 0x4ef83d
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 0x4ef860
cmp dword [ebp - 0x2c], edi
ja 0x4ef860
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 0x4ef87c
cmp dword [ebp - 0x28], edi
ja 0x4ef87c
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 0x4ef510
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 0x4ef4d4
mov ecx, dword [ebp - 0x400a8]
lea eax, [ecx + 3]
lea edx, [ecx + 0xfd]
mov dword [ebp - 0x40080], eax
cmp eax, edx
jge 0x4efbd6
mov edx, eax
sub edx, ecx
mov dword [ebp - 0x40088], edx
jmp 0x4ef906
mov eax, dword [ebp - 0x40080]
movzx ecx, word [ebx + 0x66b4]
sub ecx, 5
cmp eax, ecx
jge 0x4efbd6
mov eax, dword [ebp - 0x40090]
lea ecx, [eax + 3]
add eax, 0xfd
mov dword [ebp - 0x40084], ecx
cmp ecx, eax
jge 0x4efbaf
mov eax, ecx
sub eax, dword [ebp - 0x40090]
mov dword [ebp - 0x40098], eax
jmp 0x4ef950
movzx edx, word [ebx + 0x66b6]
lea eax, [edx - 5]
mov dword [ebp - 0x400b4], edx
cmp dword [ebp - 0x40084], eax
jge 0x4efbaf
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 0x4efa21
mov eax, dword [ebp - 0x40098]
inc eax
mov dword [ebp - 0x40078], eax
jmp 0x4ef9c0
mov eax, dword [ebp - 0x40098]
dec eax
cmp eax, dword [ebp - 0x40078]
jg 0x4efa0f
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 0x4ef9e3
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 0x4ef9c0
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 0x4ef990
mov edi, dword [ebp - 0x400c0]
mov eax, dword [ebp - 0x400bc]
cmp edi, eax
je 0x4efae2
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 0x4efb89
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 0x4ef950
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 0x4ef900
fld qword [0x53d1e0]
movzx ecx, word [ebx + 0x66b6]
fld qword [0x53d1e8]
mov eax, dword [ebp - 0x40090]
fld qword [0x51abc8]
add eax, 0xfa
fld qword [0x511eb8]
sub ecx, 5
fld qword [0x511eb0]
mov dword [ebp - 0x40090], eax
fxch st(4)
fxch st(1)
fxch st(3)
fxch st(1)
cmp eax, ecx
jl 0x4eed13
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 0x4eece2
fstp st(4)
fstp st(2)
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0x40094]
push eax
call sub.MSVCR100.dll_free
mov ecx, dword [ebp - 4]
add esp, 4
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0050bf32
mov esp, ebp
pop ebp
ret