Function at 0x4ae9c5
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x8c
push esi
push edi
mov edi, dword [esp + 0x98]
test edi, edi
je 0x4af378
mov esi, dword [esp + 0xa8]
test esi, esi
je 0x4af378
push ebx
mov ebx, dword [esp + 0xbc]
push ebp
push 1
mov eax, dword [ebx + 0xc]
mov ecx, eax
shl ecx, 8
sub ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x84], edx
call dword [sym.imp.MSVCRT.dll_srand]
mov ecx, dword [edi + 8]
mov ebp, dword [esi + 8]
mov edx, dword [ebx + 4]
mov eax, ecx
sub eax, ebp
mov ebx, ecx
sub eax, edx
sub ebx, edx
add esp, 4
cmp eax, ebx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x70], eax
jge 0x4af368
mov bl, byte [esp + 0x26]
jmp 0x4ad78b
mov edi, dword [esp + 0xa0]
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0xb0]
cmp eax, ecx
jge case.0x4ad8e4.6
test eax, eax
jl case.0x4ad8e4.6
xor edx, edx
mov ecx, dword [esp + 0xa4]
mov dx, word [edi + 0xe]
mov edi, dword [edi + 4]
mov dword [esp + 0x50], edi
imul edi, edx
add edi, 0x1f
xor ebp, ebp
sar edi, 3
and edi, 0xfffffffc
mov bp, word [esi + 0xe]
imul edi, eax
add edi, ecx
mov ecx, dword [esi + 4]
mov esi, ebp
mov ebp, dword [esp + 0xb4]
imul esi, ecx
add esi, 0x1f
mov dword [esp + 0x60], edx
sar esi, 3
and esi, 0xfffffffc
imul esi, dword [esp + 0x4c]
add esi, ebp
mov ebp, dword [esp + 0xa8]
test ebp, ebp
jne 0x4ad868
mov ebp, dword [esp + 0xb8]
test ebp, ebp
jne 0x4ad896
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0x50]
mov edx, dword [edx]
lea ebp, [edx + ecx]
cmp ebp, eax
jge 0x4ad81c
lea ecx, [ecx + ecx*2]
jmp 0x4ad821
sub eax, edx
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0xc0]
cmp dword [eax + 8], 0x10
jne 0x4ad855
test ecx, ecx
jle case.0x4ad8e4.6
sub esi, edi
mov ebp, ecx
xor ecx, ecx
xor eax, eax
mov cl, byte [esi + edi]
mov al, byte [edi]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
mov byte [edi], al
inc edi
dec ebp
jne 0x4ad83a
jmp case.0x4ad8e4.6
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp case.0x4ad8e4.6
xor edx, edx
mov dx, word [ebp + 0xe]
imul edx, dword [ebp + 4]
add edx, 0x1f
mov ebp, dword [esp + 0xb8]
sar edx, 3
and edx, 0xfffffffc
imul edx, eax
add edx, dword [esp + 0xac]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x60]
jmp 0x4ad89e
mov dword [esp + 0x30], 0
test ebp, ebp
je 0x4ad8c8
xor eax, eax
mov ax, word [ebp + 0xe]
imul eax, dword [ebp + 4]
add eax, 0x1f
mov ebp, dword [esp + 0xbc]
sar eax, 3
and al, 0xfc
imul eax, dword [esp + 0x4c]
add eax, ebp
mov dword [esp + 0x2c], eax
jmp 0x4ad8d0
mov dword [esp + 0x2c], 0
lea ebp, [edx - 1]
cmp ebp, 0x17
ja case.0x4ad8e4.6
xor eax, eax
mov al, byte [ebp + 0x4af39c]
jmp dword [eax*4 + 0x4af384]
mov edx, dword [esp + 0xc0]
mov eax, dword [edx]
mov ebp, eax
add ecx, eax
lea edx, [eax + edi]
cmp ebp, ecx
mov dword [esp + 0x60], ebp
lea edi, [edx + eax*2]
jge case.0x4ad8e4.6
test ebp, ebp
jge 0x4ad919
add esi, 3
add edi, 3
jmp 0x4aef94
mov edx, dword [esp + 0xa0]
cmp ebp, dword [edx + 4]
jge case.0x4ad8e4.6
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x4ad968
mov ecx, dword [esp + 0xb8]
test ecx, ecx
je 0x4ad95d
mov edx, dword [esp + 0x2c]
mov ecx, ebp
sub ecx, eax
xor eax, eax
mov al, byte [ecx + edx]
mov edx, dword [esp + 0x30]
xor ecx, ecx
mov cl, byte [edx + ebp]
imul eax, ecx
sar eax, 8
jmp 0x4ad975
mov ecx, dword [esp + 0x30]
xor eax, eax
mov al, byte [ecx + ebp]
jmp 0x4ad975
mov ecx, dword [esp + 0x2c]
mov edx, ebp
sub edx, eax
xor eax, eax
mov al, byte [edx + ecx]
imul eax, dword [esp + 0x80]
shr eax, 8
mov dword [esp + 0x50], eax
je 0x4aef8e
mov edx, dword [esp + 0xc0]
mov eax, dword [edx + 8]
cmp eax, 0xf
ja case.default.0x4ad99d
jmp dword [eax*4 + 0x4af3b4]
mov eax, esi
mov cx, word [eax]
mov word [esp + 0x24], cx
mov bl, byte [eax + 2]
mov byte [esp + 0x26], bl
jmp case.default.0x4ad99d
mov al, byte [edi + 2]
mov bl, byte [esi + 2]
cmp al, bl
ja 0x4ad9c6
mov bl, al
mov al, byte [edi + 1]
mov cl, byte [esi + 1]
cmp al, cl
mov byte [esp + 0x26], bl
mov byte [esp + 0x25], cl
ja 0x4ad9dc
mov byte [esp + 0x25], al
mov al, byte [edi]
mov cl, byte [esi]
cmp al, cl
jbe 0x4aede7
mov byte [esp + 0x24], cl
jmp case.default.0x4ad99d
mov al, byte [edi + 2]
mov bl, byte [esi + 2]
cmp al, bl
jb 0x4ad9fd
mov bl, al
mov al, byte [edi + 1]
mov cl, byte [esi + 1]
cmp al, cl
mov byte [esp + 0x26], bl
mov byte [esp + 0x25], cl
jb 0x4ada13
mov byte [esp + 0x25], al
mov al, byte [edi]
mov cl, byte [esi]
cmp al, cl
jae 0x4aede7
mov byte [esp + 0x24], cl
jmp case.default.0x4ad99d
xor edx, edx
xor eax, eax
mov dl, byte [esi + 2]
mov al, byte [esi + 1]
mov dword [esp + 0x10], edx
xor ecx, ecx
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov cl, byte [esi]
fmul dword [0x530074]
fstp dword [esp + 0x1c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul dword [0x530074]
fstp dword [esp + 0x18]
fild dword [esp + 0x10]
fmul dword [0x530074]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x4ada81
fld dword [esp + 0x18]
jmp 0x4ada85
fld dword [esp + 0x14]
fld dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x4ada9a
fld dword [esp + 0x1c]
jmp 0x4adab3
fld dword [esp + 0x18]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x4adaaf
fld dword [esp + 0x18]
jmp 0x4adab3
fld dword [esp + 0x14]
fld dword [esp + 0x18]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x4adac8
fld dword [esp + 0x18]
jmp 0x4adacc
fld dword [esp + 0x14]
fld dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x4adae1
fld dword [esp + 0x1c]
jmp 0x4adafa
fld dword [esp + 0x18]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x4adaf6
fld dword [esp + 0x18]
jmp 0x4adafa
fld dword [esp + 0x14]
fld st(1)
fsub st(1)
mov dword [esp + 0x7c], 0xbf800000
fst dword [esp + 0x20]
fcomp dword [0x530068]
fnstsw ax
test ah, 0x40
jne 0x4adc00
fld dword [esp + 0x1c]
fcomp st(2)
fld dword [esp + 0x18]
fnstsw ax
test ah, 0x40
je 0x4adb71
fcomp st(1)
fnstsw ax
test ah, 0x40
fstp st(0)
je 0x4adb54
fsub dword [esp + 0x14]
fdiv dword [esp + 0x20]
fadd dword [0x530048]
fmul dword [0x530044]
fstp dword [esp + 0x7c]
jmp 0x4adc04
fsub dword [esp + 0x18]
fdiv dword [esp + 0x20]
fsubr dword [0x53006c]
fmul dword [0x530044]
fstp dword [esp + 0x7c]
jmp 0x4adc04
fcomp st(2)
fnstsw ax
test ah, 0x40
je 0x4adbbd
fld dword [esp + 0x14]
fcomp st(1)
fnstsw ax
test ah, 0x40
fstp st(0)
je 0x4adba3
fsub dword [esp + 0x1c]
fdiv dword [esp + 0x20]
fadd dword [0x53006c]
fmul dword [0x530044]
fstp dword [esp + 0x7c]
jmp 0x4adc04
fsub dword [esp + 0x14]
fdiv dword [esp + 0x20]
fsubr dword [0x530040]
fmul dword [0x530044]
fstp dword [esp + 0x7c]
jmp 0x4adc04
fld dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 0x40
fstp st(0)
je 0x4adbe6
fsub dword [esp + 0x18]
fdiv dword [esp + 0x20]
fadd dword [0x530040]
fmul dword [0x530044]
fstp dword [esp + 0x7c]
jmp 0x4adc04
fsub dword [esp + 0x1c]
fdiv dword [esp + 0x20]
fsubr dword [0x530048]
fmul dword [0x530044]
fstp dword [esp + 0x7c]
jmp 0x4adc04
fstp st(0)
fstp st(0)
xor edx, edx
xor eax, eax
mov dl, byte [edi + 2]
mov al, byte [edi + 1]
mov dword [esp + 0x10], edx
xor ecx, ecx
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov cl, byte [edi]
fmul dword [0x530074]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul dword [0x530074]
fstp dword [esp + 0x1c]
fild dword [esp + 0x10]
fmul dword [0x530074]
fstp dword [esp + 0x14]
fld dword [esp + 0x1c]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x4adc59
fld dword [esp + 0x1c]
jmp 0x4adc5d
fld dword [esp + 0x14]
fld st(1)
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x4adc70
fst dword [esp + 0x68]
jmp 0x4adc91
fld dword [esp + 0x1c]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x4adc89
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x68], edx
jmp 0x4adc91
mov eax, dword [esp + 0x14]
mov dword [esp + 0x68], eax
fld dword [esp + 0x1c]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x4adca6
fld dword [esp + 0x1c]
jmp 0x4adcaa
fld dword [esp + 0x14]
fld st(1)
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x4adcbd
fstp dword [esp + 0x58]
jmp 0x4adce0
fstp st(0)
fld dword [esp + 0x1c]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x4adcd8
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x58], ecx
jmp 0x4adce0
mov edx, dword [esp + 0x14]
mov dword [esp + 0x58], edx
fld dword [0x530068]
fld dword [esp + 0x58]
fadd dword [esp + 0x68]
fst dword [esp + 0x10]
fmul dword [0x530070]
fstp dword [esp + 0x20]
fld dword [esp + 0x68]
fsub dword [esp + 0x58]
fst dword [esp + 0x1c]
fcomp dword [0x530068]
fnstsw ax
test ah, 0x40
jne 0x4add40
fstp st(0)
fld dword [esp + 0x20]
fcomp qword [0x530050]
fnstsw ax
test ah, 0x41
je 0x4add2e
fld dword [esp + 0x10]
jmp 0x4add3c
fld dword [0x53004c]
fsub dword [esp + 0x68]
fsub dword [esp + 0x58]
fdivr dword [esp + 0x1c]
fld dword [esp + 0x20]
fcomp dword [0x530070]
fnstsw ax
test ah, 0x41
fld st(0)
je 0x4add5f
fadd dword [0x53006c]
fmul dword [esp + 0x20]
jmp 0x4add6b
fadd dword [esp + 0x20]
fld st(1)
fmul dword [esp + 0x20]
fsubp st(1)
fstp dword [esp + 0x14]
fcomp dword [0x530068]
fnstsw ax
test ah, 0x40
jne 0x4ade9f
fld dword [esp + 0x7c]
fcomp dword [0x530064]
fnstsw ax
test ah, 0x40
jne 0x4ade9f
fld dword [esp + 0x20]
fadd st(0), st(0)
fsub dword [esp + 0x14]
fstp dword [esp + 0x18]
fld dword [esp + 0x7c]
fmul dword [0x530060]
fld st(0)
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
cmp eax, 5
fisub dword [esp + 0x10]
fld dword [esp + 0x14]
fsub dword [esp + 0x18]
fmulp st(1)
fld st(0)
fadd dword [esp + 0x18]
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
fsub st(1)
fstp dword [esp + 0x20]
fstp st(0)
ja case.0x4adde1.0
jmp dword [eax*4 + 0x4af3f4]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
fld dword [esp + 0x20]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
jmp 0x4ade66
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
fld dword [esp + 0x18]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
jmp 0x4ade66
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
fld dword [esp + 0x18]
mov dword [esp + 0x38], eax
jmp 0x4ade62
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
fld dword [esp + 0x10]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
jmp 0x4ade66
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
fld dword [esp + 0x14]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
jmp 0x4ade66
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
fld dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], ecx
fmul dword [0x53005c]
fadd dword [0x530070]
call sub.MSVCRT.dll__ftol
fld dword [esp + 0x38]
fmul dword [0x53005c]
mov bl, al
mov byte [esp + 0x26], bl
fadd dword [0x530070]
call sub.MSVCRT.dll__ftol
fld dword [esp + 0x34]
mov byte [esp + 0x25], al
jmp 0x4ae790
fld dword [esp + 0x20]
jmp 0x4ae325
xor edx, edx
xor eax, eax
mov dl, byte [esi + 2]
mov al, byte [esi + 1]
mov dword [esp + 0x10], edx
xor ecx, ecx
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov cl, byte [esi]
fmul dword [0x530074]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul dword [0x530074]
fstp dword [esp + 0x1c]
fild dword [esp + 0x10]
fmul dword [0x530074]
fstp dword [esp + 0x14]
fld dword [esp + 0x1c]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x4adefd
fld dword [esp + 0x1c]
jmp 0x4adf01
fld dword [esp + 0x14]
fld st(1)
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x4adf14
fst dword [esp + 0x54]
jmp 0x4adf35
fld dword [esp + 0x1c]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x4adf2d
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x54], edx
jmp 0x4adf35
mov eax, dword [esp + 0x14]
mov dword [esp + 0x54], eax
fld dword [esp + 0x1c]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x4adf4a
fld dword [esp + 0x1c]
jmp 0x4adf4e
fld dword [esp + 0x14]
fld st(1)
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x4adf61
fstp dword [esp + 0x5c]
jmp 0x4adf84
fstp st(0)
fld dword [esp + 0x1c]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x4adf7c
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x5c], ecx
jmp 0x4adf84
mov edx, dword [esp + 0x14]
mov dword [esp + 0x5c], edx
fld dword [0x530068]
fld dword [esp + 0x54]
fsub dword [esp + 0x5c]
fst dword [esp + 0x10]
fcomp dword [0x530068]
fnstsw ax
test ah, 0x40
jne 0x4adfd6
fstp st(0)
fld dword [esp + 0x5c]
fadd dword [esp + 0x54]
fld st(0)
fmul dword [0x530070]
fcomp qword [0x530050]
fnstsw ax
test ah, 0x41
jne 0x4adfd2
fstp st(0)
fld dword [0x53004c]
fsub dword [esp + 0x54]
fsub dword [esp + 0x5c]
fdivr dword [esp + 0x10]
xor eax, eax
xor ecx, ecx
mov al, byte [edi + 2]
mov cl, byte [edi + 1]
mov dword [esp + 0x10], eax
xor edx, edx
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov dl, byte [edi]
fmul dword [0x530074]
fstp dword [esp + 0x1c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul dword [0x530074]
fstp dword [esp + 0x18]
fild dword [esp + 0x10]
fmul dword [0x530074]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x4ae02f
fld dword [esp + 0x18]
jmp 0x4ae033
fld dword [esp + 0x14]
fld dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x4ae048
fld dword [esp + 0x1c]
jmp 0x4ae061
fld dword [esp + 0x18]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x4ae05d
fld dword [esp + 0x18]
jmp 0x4ae061
fld dword [esp + 0x14]
fld dword [esp + 0x18]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x4ae076
fld dword [esp + 0x18]
jmp 0x4ae07a
fld dword [esp + 0x14]
fld dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x4ae08f
fld dword [esp + 0x1c]
jmp 0x4ae0a8
fld dword [esp + 0x18]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x4ae0a4
fld dword [esp + 0x18]
jmp 0x4ae0a8
fld dword [esp + 0x14]
fld st(0)
fadd st(2)
mov dword [esp + 0x78], 0xbf800000
fmul dword [0x530070]
fstp dword [esp + 0x10]
fld st(1)
fsub st(1)
fst dword [esp + 0x20]
fcomp dword [0x530068]
fnstsw ax
test ah, 0x40
jne 0x4ae1bc
fld dword [esp + 0x1c]
fcomp st(2)
fld dword [esp + 0x18]
fnstsw ax
test ah, 0x40
je 0x4ae12d
fcomp st(1)
fnstsw ax
test ah, 0x40
fstp st(0)
je 0x4ae110
fsub dword [esp + 0x14]
fdiv dword [esp + 0x20]
fadd dword [0x530048]
fmul dword [0x530044]
fstp dword [esp + 0x78]
jmp 0x4ae1c0
fsub dword [esp + 0x18]
fdiv dword [esp + 0x20]
fsubr dword [0x53006c]
fmul dword [0x530044]
fstp dword [esp + 0x78]
jmp 0x4ae1c0
fcomp st(2)
fnstsw ax
test ah, 0x40
je 0x4ae179
fld dword [esp + 0x14]
fcomp st(1)
fnstsw ax
test ah, 0x40
fstp st(0)
je 0x4ae15f
fsub dword [esp + 0x1c]
fdiv dword [esp + 0x20]
fadd dword [0x53006c]
fmul dword [0x530044]
fstp dword [esp + 0x78]
jmp 0x4ae1c0
fsub dword [esp + 0x14]
fdiv dword [esp + 0x20]
fsubr dword [0x530040]
fmul dword [0x530044]
fstp dword [esp + 0x78]
jmp 0x4ae1c0
fld dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 0x40
fstp st(0)
je 0x4ae1a2
fsub dword [esp + 0x18]
fdiv dword [esp + 0x20]
fadd dword [0x530040]
fmul dword [0x530044]
fstp dword [esp + 0x78]
jmp 0x4ae1c0
fsub dword [esp + 0x1c]
fdiv dword [esp + 0x20]
fsubr dword [0x530048]
fmul dword [0x530044]
fstp dword [esp + 0x78]
jmp 0x4ae1c0
fstp st(0)
fstp st(0)
fld dword [esp + 0x10]
fcomp dword [0x530070]
fnstsw ax
test ah, 0x41
je 0x4ae1df
fld st(0)
fadd dword [0x53006c]
fmul dword [esp + 0x10]
jmp 0x4ae1ed
fld dword [esp + 0x10]
fadd st(1)
fld dword [esp + 0x10]
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x14]
fcomp dword [0x530068]
fnstsw ax
test ah, 0x40
jne 0x4ae321
fld dword [esp + 0x78]
fcomp dword [0x530064]
fnstsw ax
test ah, 0x40
jne 0x4ae321
fld dword [esp + 0x10]
fadd st(0), st(0)
fsub dword [esp + 0x14]
fstp dword [esp + 0x18]
fld dword [esp + 0x78]
fmul dword [0x530060]
fld st(0)
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
cmp eax, 5
fisub dword [esp + 0x10]
fld dword [esp + 0x14]
fsub dword [esp + 0x18]
fmulp st(1)
fld dword [esp + 0x18]
fadd st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
fsub st(1)
fstp dword [esp + 0x20]
fstp st(0)
ja case.0x4ae263.0
jmp dword [eax*4 + 0x4af40c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
fld dword [esp + 0x20]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], eax
jmp 0x4ae2e8
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
fld dword [esp + 0x18]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], edx
jmp 0x4ae2e8
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
fld dword [esp + 0x18]
mov dword [esp + 0x44], eax
jmp 0x4ae2e4
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
fld dword [esp + 0x10]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], eax
jmp 0x4ae2e8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
fld dword [esp + 0x14]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], edx
jmp 0x4ae2e8
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
fld dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], ecx
fmul dword [0x53005c]
fadd dword [0x530070]
call sub.MSVCRT.dll__ftol
fld dword [esp + 0x44]
fmul dword [0x53005c]
mov bl, al
mov byte [esp + 0x26], bl
fadd dword [0x530070]
call sub.MSVCRT.dll__ftol
fld dword [esp + 0x3c]
mov byte [esp + 0x25], al
jmp 0x4ae790
fld dword [esp + 0x10]
fmul dword [0x53005c]
fadd dword [0x530070]
call sub.MSVCRT.dll__ftol
mov bl, al
mov byte [esp + 0x25], al
mov byte [esp + 0x26], bl
mov byte [esp + 0x24], al
jmp case.default.0x4ad99d
xor edx, edx
xor eax, eax
mov dl, byte [esi + 2]
mov al, byte [esi + 1]
mov dword [esp + 0x10], edx
xor ecx, ecx
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov cl, byte [esi]
fmul dword [0x530074]
fstp dword [esp + 0x1c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul dword [0x530074]
fstp dword [esp + 0x18]
fild dword [esp + 0x10]
fmul dword [0x530074]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x4ae3a2
fld dword [esp + 0x18]
jmp 0x4ae3a6
fld dword [esp + 0x14]
fld dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x4ae3bb
fld dword [esp + 0x1c]
jmp 0x4ae3d4
fld dword [esp + 0x18]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x4ae3d0
fld dword [esp + 0x18]
jmp 0x4ae3d4
fld dword [esp + 0x14]
fld dword [esp + 0x18]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x4ae3e9
fld dword [esp + 0x18]
jmp 0x4ae3ed
fld dword [esp + 0x14]
fld dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x4ae402
fld dword [esp + 0x1c]
jmp 0x4ae41b
fld dword [esp + 0x18]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x4ae417
fld dword [esp + 0x18]
jmp 0x4ae41b
fld dword [esp + 0x14]
fld st(1)
fsub st(1)
mov dword [esp + 0x74], 0xbf800000
mov dword [esp + 0x64], 0
fst dword [esp + 0x20]
fcomp dword [0x530068]
fnstsw ax
test ah, 0x40
jne 0x4ae55a
fld st(0)
fadd st(2)
fld st(0)
fmul dword [0x530070]
fcomp qword [0x530050]
fnstsw ax
test ah, 0x41
jne 0x4ae469
fstp st(0)
fld dword [0x53004c]
fsub st(2)
fsub st(1)
fld dword [esp + 0x20]
fdiv st(1)
fstp dword [esp + 0x64]
fstp st(0)
fld dword [esp + 0x1c]
fcomp st(2)
fld dword [esp + 0x18]
fnstsw ax
test ah, 0x40
je 0x4ae4cb
fcomp st(1)
fnstsw ax
test ah, 0x40
fstp st(0)
je 0x4ae4ae
fsub dword [esp + 0x14]
fdiv dword [esp + 0x20]
fadd dword [0x530048]
fmul dword [0x530044]
fstp dword [esp + 0x74]
jmp 0x4ae55e
fsub dword [esp + 0x18]
fdiv dword [esp + 0x20]
fsubr dword [0x53006c]
fmul dword [0x530044]
fstp dword [esp + 0x74]
jmp 0x4ae55e
fcomp st(2)
fnstsw ax
test ah, 0x40
je 0x4ae517
fld dword [esp + 0x14]
fcomp st(1)
fnstsw ax
test ah, 0x40
fstp st(0)
je 0x4ae4fd
fsub dword [esp + 0x1c]
fdiv dword [esp + 0x20]
fadd dword [0x53006c]
fmul dword [0x530044]
fstp dword [esp + 0x74]
jmp 0x4ae55e
fsub dword [esp + 0x14]
fdiv dword [esp + 0x20]
fsubr dword [0x530040]
fmul dword [0x530044]
fstp dword [esp + 0x74]
jmp 0x4ae55e
fld dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 0x40
fstp st(0)
je 0x4ae540
fsub dword [esp + 0x18]
fdiv dword [esp + 0x20]
fadd dword [0x530040]
fmul dword [0x530044]
fstp dword [esp + 0x74]
jmp 0x4ae55e
fsub dword [esp + 0x1c]
fdiv dword [esp + 0x20]
fsubr dword [0x530048]
fmul dword [0x530044]
fstp dword [esp + 0x74]
jmp 0x4ae55e
fstp st(0)
fstp st(0)
xor edx, edx
xor eax, eax
mov dl, byte [edi + 2]
mov al, byte [edi + 1]
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
fild dword [esp + 0x10]
xor ecx, ecx
mov cl, byte [edi]
fmul dword [0x530074]
mov dword [esp + 0x1c], ecx
fstp dword [esp + 0x10]
fild dword [esp + 0x20]
fmul dword [0x530074]
fstp dword [esp + 0x20]
fild dword [esp + 0x1c]
fmul dword [0x530074]
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 0x41
jne 0x4ae5b7
fld dword [esp + 0x20]
jmp 0x4ae5bb
fld dword [esp + 0x1c]
fld dword [esp + 0x10]
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x4ae5d0
fld dword [esp + 0x10]
jmp 0x4ae5e9
fld dword [esp + 0x20]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 0x41
jne 0x4ae5e5
fld dword [esp + 0x20]
jmp 0x4ae5e9
fld dword [esp + 0x1c]
fld dword [esp + 0x20]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 1
je 0x4ae5fe
fld dword [esp + 0x20]
jmp 0x4ae602
fld dword [esp + 0x1c]
fld dword [esp + 0x10]
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x4ae617
fld dword [esp + 0x10]
jmp 0x4ae630
fld dword [esp + 0x20]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 1
je 0x4ae62c
fld dword [esp + 0x20]
jmp 0x4ae630
fld dword [esp + 0x1c]
faddp st(1)
fmul dword [0x530070]
fcom dword [0x530070]
fnstsw ax
test ah, 0x41
je 0x4ae653
fld dword [esp + 0x64]
fadd dword [0x53006c]
fmul st(1)
jmp 0x4ae661
fld st(0)
fadd dword [esp + 0x64]
fld st(1)
fmul dword [esp + 0x64]
fsubp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x64]
fcomp dword [0x530068]
fnstsw ax
test ah, 0x40
jne 0x4ae325
fld dword [esp + 0x74]
fcomp dword [0x530064]
fnstsw ax
test ah, 0x40
jne 0x4ae325
fadd st(0), st(0)
fsub dword [esp + 0x14]
fstp dword [esp + 0x18]
fld dword [esp + 0x74]
fmul dword [0x530060]
fld st(0)
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
cmp eax, 5
fisub dword [esp + 0x10]
fld dword [esp + 0x14]
fsub dword [esp + 0x18]
fmulp st(1)
fld dword [esp + 0x18]
fadd st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
fsub st(1)
fstp dword [esp + 0x20]
fstp st(0)
ja case.0x4ae6d7.0
jmp dword [eax*4 + 0x4af424]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
fld dword [esp + 0x20]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], edx
jmp 0x4ae75c
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
fld dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], ecx
jmp 0x4ae75c
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
fld dword [esp + 0x18]
mov dword [esp + 0x40], edx
jmp 0x4ae758
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
fld dword [esp + 0x10]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], edx
jmp 0x4ae75c
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
fld dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], ecx
jmp 0x4ae75c
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
fld dword [esp + 0x14]
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], eax
fmul dword [0x53005c]
fadd dword [0x530070]
call sub.MSVCRT.dll__ftol
fld dword [esp + 0x40]
fmul dword [0x53005c]
mov bl, al
mov byte [esp + 0x26], bl
fadd dword [0x530070]
call sub.MSVCRT.dll__ftol
fld dword [esp + 0x48]
mov byte [esp + 0x25], al
fmul dword [0x53005c]
fadd dword [0x530070]
call sub.MSVCRT.dll__ftol
mov byte [esp + 0x24], al
jmp case.default.0x4ad99d
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 2]
mov dl, byte [esi + 1]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], edx
fild dword [esp + 0x10]
xor eax, eax
mov al, byte [esi]
fmul dword [0x530074]
mov dword [esp + 0x1c], eax
fstp dword [esp + 0x10]
fild dword [esp + 0x20]
fmul dword [0x530074]
fstp dword [esp + 0x20]
fild dword [esp + 0x1c]
fmul dword [0x530074]
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 0x41
jne 0x4ae803
fld dword [esp + 0x20]
jmp 0x4ae807
fld dword [esp + 0x1c]
fld dword [esp + 0x10]
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x4ae81c
fld dword [esp + 0x10]
jmp 0x4ae835
fld dword [esp + 0x20]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 0x41
jne 0x4ae831
fld dword [esp + 0x20]
jmp 0x4ae835
fld dword [esp + 0x1c]
fld dword [esp + 0x20]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 1
je 0x4ae84a
fld dword [esp + 0x20]
jmp 0x4ae84e
fld dword [esp + 0x1c]
fld dword [esp + 0x10]
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x4ae863
fld dword [esp + 0x10]
jmp 0x4ae87c
fld dword [esp + 0x20]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 1
je 0x4ae878
fld dword [esp + 0x20]
jmp 0x4ae87c
fld dword [esp + 0x1c]
fadd st(1)
lea ecx, [esp + 0x98]
lea edx, [esp + 0x90]
push ecx
mov cl, byte [edi]
fmul dword [0x530070]
lea eax, [esp + 0x98]
push edx
mov dl, byte [edi + 1]
push eax
mov al, byte [edi + 2]
push ecx
fstp dword [esp + 0x20]
push edx
push eax
fstp st(0)
call fcn.004af440
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x3d]
push ecx
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x42]
push edx
mov edx, dword [esp + 0xb0]
push eax
mov eax, dword [esp + 0xb8]
push ecx
push edx
push eax
call fcn.004026f8
mov bl, byte [esp + 0x56]
add esp, 0x30
jmp case.default.0x4ad99d
xor edx, edx
xor eax, eax
mov dl, byte [esi + 1]
mov al, byte [edi + 1]
imul edx, eax
xor ebx, ebx
xor ecx, ecx
mov bl, byte [esi + 2]
mov cl, byte [edi + 2]
sar edx, 8
imul ebx, ecx
mov byte [esp + 0x25], dl
xor ecx, ecx
mov cl, byte [esi]
xor edx, edx
mov dl, byte [edi]
imul ecx, edx
sar ebx, 8
sar ecx, 8
mov byte [esp + 0x26], bl
mov byte [esp + 0x24], cl
jmp case.default.0x4ad99d
mov cl, byte [esi + 2]
mov bl, byte [edi + 2]
mov ebp, ecx
mov eax, ebx
and ebp, 0xff
and eax, 0xff
imul ebp, eax
mov eax, 0x80808081
imul ebp
add edx, ebp
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov al, byte [edi + 1]
sub cl, dl
and eax, 0xff
add cl, bl
mov bl, cl
mov cl, byte [esi + 1]
mov ebp, ecx
mov byte [esp + 0x26], bl
and ebp, 0xff
imul ebp, eax
mov eax, 0x80808081
imul ebp
add edx, ebp
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov al, byte [edi + 1]
sub cl, dl
add cl, al
mov al, byte [edi]
mov byte [esp + 0x25], cl
mov cl, byte [esi]
mov ebp, ecx
and eax, 0xff
and ebp, 0xff
imul ebp, eax
mov eax, 0x80808081
imul ebp
add edx, ebp
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov al, byte [edi]
sub cl, dl
add cl, al
mov byte [esp + 0x24], cl
jmp case.default.0x4ad99d
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 0x64
idiv ecx
mov ecx, dword [esp + 0x50]
mov eax, 0x80808081
mov ebx, edx
lea edx, [ecx + ecx*2]
lea ecx, [ecx + edx*8]
shl ecx, 2
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax - 1]
cmp ebx, ecx
jle 0x4aea11
mov edx, edi
mov ax, word [edx]
mov word [esp + 0x24], ax
mov bl, byte [edx + 2]
mov byte [esp + 0x26], bl
jmp 0x4aef81
mov ecx, esi
mov dx, word [ecx]
mov word [esp + 0x24], dx
mov bl, byte [ecx + 2]
mov byte [esp + 0x26], bl
jmp 0x4aef81
mov al, byte [edi + 2]
cmp al, 0x80
mov byte [esp + 0x8c], al
jae 0x4aea49
xor ebx, ebx
and eax, 0xff
mov bl, byte [esi + 2]
imul ebx, eax
sar ebx, 8
shl bl, 1
jmp 0x4aea7e
mov bl, byte [esi + 2]
and eax, 0xff
mov ecx, ebx
and ecx, 0xff
imul ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
sub bl, dl
mov dl, byte [esp + 0x8c]
add bl, dl
shl bl, 1
inc bl
mov al, byte [edi + 1]
mov byte [esp + 0x26], bl
cmp al, 0x80
mov byte [esp + 0x84], al
jae 0x4aeaa4
xor ecx, ecx
and eax, 0xff
mov cl, byte [esi + 1]
imul ecx, eax
sar ecx, 8
shl cl, 1
jmp 0x4aeae5
mov cl, byte [esi + 1]
and eax, 0xff
mov ebp, ecx
and ebp, 0xff
imul ebp, eax
mov eax, 0x80808081
mov dword [esp + 0x10], ebp
imul ebp
mov eax, dword [esp + 0x10]
mov ebp, edx
add ebp, eax
sar ebp, 7
mov edx, ebp
shr edx, 0x1f
add ebp, edx
mov eax, ebp
sub cl, al
mov al, byte [esp + 0x84]
add cl, al
shl cl, 1
inc cl
mov al, byte [edi]
mov byte [esp + 0x25], cl
cmp al, 0x80
mov byte [esp + 0x88], al
jae 0x4aeb10
xor ecx, ecx
and eax, 0xff
mov cl, byte [esi]
imul ecx, eax
sar ecx, 8
shl cl, 1
mov byte [esp + 0x24], cl
jmp case.default.0x4ad99d
mov cl, byte [esi]
and eax, 0xff
mov ebp, ecx
and ebp, 0xff
imul ebp, eax
mov eax, 0x80808081
mov dword [esp + 0x10], ebp
imul ebp
mov eax, dword [esp + 0x10]
mov ebp, edx
add ebp, eax
sar ebp, 7
mov edx, ebp
shr edx, 0x1f
add ebp, edx
mov eax, ebp
sub cl, al
mov al, byte [esp + 0x88]
add cl, al
shl cl, 1
inc cl
mov byte [esp + 0x24], cl
jmp case.default.0x4ad99d
mov cl, byte [esi + 2]
cmp cl, 0x80
jae 0x4aeb76
xor ebx, ebx
and ecx, 0xff
mov bl, byte [edi + 2]
imul ebx, ecx
sar ebx, 8
shl bl, 1
jmp 0x4aeba9
mov al, byte [edi + 2]
mov ebx, ecx
and ebx, 0xff
and eax, 0xff
imul ebx, eax
mov eax, 0x80808081
imul ebx
add edx, ebx
mov bl, byte [edi + 2]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
sub cl, dl
add cl, bl
shl cl, 1
inc cl
mov bl, cl
mov cl, byte [esi + 1]
mov byte [esp + 0x26], bl
cmp cl, 0x80
jae 0x4aebce
xor edx, edx
and ecx, 0xff
mov dl, byte [edi + 1]
imul edx, ecx
sar edx, 8
shl dl, 1
mov byte [esp + 0x25], dl
jmp 0x4aec0f
mov al, byte [edi + 1]
mov ebp, ecx
and ebp, 0xff
and eax, 0xff
imul ebp, eax
mov eax, 0x80808081
mov dword [esp + 0x10], ebp
imul ebp
mov ebp, edx
mov edx, dword [esp + 0x10]
add ebp, edx
sar ebp, 7
mov eax, ebp
shr eax, 0x1f
add ebp, eax
mov al, byte [edi + 1]
mov edx, ebp
sub cl, dl
add cl, al
shl cl, 1
inc cl
mov byte [esp + 0x25], cl
mov cl, byte [esi]
cmp cl, 0x80
jae 0x4aec31
xor eax, eax
and ecx, 0xff
mov al, byte [edi]
imul eax, ecx
sar eax, 8
shl al, 1
mov byte [esp + 0x24], al
jmp case.default.0x4ad99d
mov al, byte [edi]
mov ebp, ecx
and ebp, 0xff
and eax, 0xff
imul ebp, eax
mov eax, 0x80808081
mov dword [esp + 0x10], ebp
imul ebp
mov eax, dword [esp + 0x10]
mov ebp, edx
add ebp, eax
sar ebp, 7
mov edx, ebp
shr edx, 0x1f
add ebp, edx
mov eax, ebp
sub cl, al
mov al, byte [edi]
add cl, al
shl cl, 1
inc cl
mov byte [esp + 0x24], cl
jmp case.default.0x4ad99d
xor ecx, ecx
xor ebx, ebx
mov cl, byte [edi + 1]
mov bl, byte [edi + 2]
mov ebp, ecx
xor ecx, ecx
mov cl, byte [edi]
mov eax, 0x55555556
mov dword [esp + 0x10], ecx
add ecx, ebp
add ecx, ebx
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov al, byte [esi + 2]
cmp al, 0x80
jae 0x4aecc9
and eax, 0xff
mov ecx, 0xff
sub ecx, eax
mov eax, 0xff
sub eax, edx
imul ecx, eax
sar ecx, 0xa
mov eax, ebx
sub eax, ecx
test eax, eax
setle bl
dec ebx
and ebx, eax
jmp 0x4aecec
and eax, 0xff
imul eax, edx
sar eax, 7
add eax, ebx
mov ecx, eax
and ecx, 0xfffffffe
cmp ecx, 0x1fe
jge 0x4aece9
mov ebx, eax
sar ebx, 1
jmp 0x4aecec
or bl, 0xff
mov al, byte [esi + 1]
mov byte [esp + 0x26], bl
cmp al, 0x80
jae 0x4aed20
and eax, 0xff
mov ecx, 0xff
sub ecx, eax
mov eax, 0xff
sub eax, edx
imul ecx, eax
sar ecx, 0xa
sub ebp, ecx
test ebp, ebp
setle cl
dec ecx
and ecx, ebp
mov byte [esp + 0x25], cl
jmp 0x4aed47
and eax, 0xff
imul eax, edx
sar eax, 7
add ebp, eax
mov eax, ebp
and al, 0xfe
cmp eax, 0x1fe
jge 0x4aed42
mov ecx, ebp
sar ecx, 1
mov byte [esp + 0x25], cl
jmp 0x4aed47
mov byte [esp + 0x25], 0xff
mov al, byte [esi]
cmp al, 0x80
jae 0x4aed7d
and eax, 0xff
mov ecx, 0xff
sub ecx, eax
mov eax, 0xff
sub eax, edx
imul ecx, eax
mov eax, dword [esp + 0x10]
sar ecx, 0xa
sub eax, ecx
test eax, eax
setle cl
dec ecx
and ecx, eax
mov byte [esp + 0x24], cl
jmp case.default.0x4ad99d
and eax, 0xff
imul eax, edx
mov edx, dword [esp + 0x10]
sar eax, 7
add eax, edx
mov ecx, eax
and ecx, 0xfffffffe
cmp ecx, 0x1fe
jge 0x4aee6b
sar eax, 1
mov byte [esp + 0x24], al
jmp case.default.0x4ad99d
xor edx, edx
xor eax, eax
mov dl, byte [esi + 2]
mov al, byte [edi + 2]
sub eax, edx
cdq
mov ebx, eax
xor eax, eax
mov al, byte [esi + 1]
xor ebx, edx
mov ecx, eax
xor eax, eax
mov al, byte [edi + 1]
sub ebx, edx
sub eax, ecx
mov byte [esp + 0x26], bl
cdq
xor eax, edx
sub eax, edx
xor edx, edx
mov dl, byte [esi]
mov byte [esp + 0x25], al
xor eax, eax
mov al, byte [edi]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov byte [esp + 0x24], al
jmp case.default.0x4ad99d
xor eax, eax
xor ecx, ecx
mov al, byte [edi + 1]
mov cl, byte [edi]
xor ebx, ebx
mov ebp, eax
mov bl, byte [edi + 2]
mov dword [esp + 0x10], ecx
add ecx, ebp
mov eax, 0x55555556
add ecx, ebx
imul ecx
mov ecx, edx
xor eax, eax
mov al, byte [esi + 2]
shr ecx, 0x1f
add edx, ecx
imul eax, edx
shr eax, 7
add ebx, eax
cmp ebx, 0xff
jb 0x4aee2e
or bl, 0xff
xor ecx, ecx
mov byte [esp + 0x26], bl
mov cl, byte [esi + 1]
imul ecx, edx
shr ecx, 7
lea eax, [ecx + ebp]
cmp eax, 0xff
mov byte [esp + 0x25], al
jb 0x4aee50
mov byte [esp + 0x25], 0xff
xor eax, eax
mov ecx, dword [esp + 0x10]
mov al, byte [esi]
imul eax, edx
shr eax, 7
add eax, ecx
cmp eax, 0xff
jb 0x4ae340
mov byte [esp + 0x24], 0xff
jmp case.default.0x4ad99d
xor edx, edx
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi]
xor ebx, ebx
mov ebp, edx
mov bl, byte [edi + 2]
mov dword [esp + 0x10], ecx
add ecx, ebp
mov eax, 0x55555556
add ecx, ebx
imul ecx
mov eax, edx
xor ecx, ecx
mov cl, byte [esi + 2]
shr eax, 0x1f
add edx, eax
mov eax, 0xff
sub eax, edx
mov edx, 0xff
sub edx, ecx
mov ecx, ebx
imul edx, eax
sar edx, 8
sub ecx, edx
mov edx, 0xff
test ecx, ecx
setle bl
dec ebx
and ebx, ecx
xor ecx, ecx
mov cl, byte [esi + 1]
mov byte [esp + 0x26], bl
sub edx, ecx
imul edx, eax
sar edx, 8
sub ebp, edx
test ebp, ebp
setle cl
dec ecx
xor edx, edx
mov dl, byte [esi]
and ecx, ebp
mov byte [esp + 0x25], cl
mov ecx, 0xff
sub ecx, edx
imul ecx, eax
mov eax, dword [esp + 0x10]
sar ecx, 8
sub eax, ecx
test eax, eax
setle dl
dec edx
and edx, eax
mov byte [esp + 0x24], dl
mov ebp, dword [esp + 0x50]
cmp ebp, 0xff
jge 0x4aef7d
mov al, byte [edi]
mov edx, dword [esp + 0x24]
mov ecx, eax
and edx, 0xff
and ecx, 0xff
sub edx, ecx
imul edx, ebp
sar edx, 8
add dl, al
mov al, byte [edi + 1]
mov byte [edi], dl
mov edx, dword [esp + 0x25]
mov ecx, eax
and edx, 0xff
and ecx, 0xff
sub edx, ecx
imul edx, ebp
sar edx, 8
add dl, al
mov al, byte [edi + 2]
mov byte [edi + 1], dl
mov edx, dword [esp + 0x26]
mov ecx, eax
and edx, 0xff
and ecx, 0xff
sub edx, ecx
imul edx, ebp
mov ebp, dword [esp + 0x60]
sar edx, 8
add dl, al
mov byte [edi + 2], dl
jmp 0x4aef8e
mov ebp, dword [esp + 0x60]
mov cx, word [esp + 0x24]
mov eax, edi
mov word [eax], cx
mov byte [eax + 2], bl
add edi, 3
add esi, 3
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xb0]
inc ebp
mov eax, dword [edx]
mov edx, dword [ecx + 4]
add edx, eax
mov dword [esp + 0x60], ebp
cmp ebp, edx
jl 0x4ad90a
jmp case.0x4ad8e4.6
mov eax, dword [esp + 0xc0]
mov edx, dword [eax]
mov eax, edx
add ecx, edx
cmp eax, ecx
lea edi, [edi + edx*2]
jge case.0x4ad8e4.6
test eax, eax
jl 0x4af03f
mov ecx, dword [esp + 0xa0]
cmp eax, dword [ecx + 4]
jge case.0x4ad8e4.6
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x4af022
mov ecx, dword [esp + 0xb8]
test ecx, ecx
je 0x4af017
mov ecx, dword [esp + 0x30]
cmp byte [eax + ecx], 0
je 0x4af03f
mov ecx, eax
sub ecx, edx
mov edx, dword [esp + 0x2c]
cmp byte [ecx + edx], 0
jne 0x4af035
jmp 0x4af03f
mov edx, dword [esp + 0x30]
xor ecx, ecx
mov cl, byte [eax + edx]
jmp 0x4af031
mov ebp, dword [esp + 0x2c]
mov ecx, eax
sub ecx, edx
xor edx, edx
mov dl, byte [ecx + ebp]
mov ecx, edx
test ecx, ecx
je 0x4af03f
mov cl, byte [esi]
mov byte [edi], cl
mov dl, byte [esi + 1]
mov byte [edi + 1], dl
mov ecx, dword [esp + 0xc0]
add esi, 2
add edi, 2
inc eax
mov edx, dword [ecx]
mov ecx, dword [esp + 0xb0]
mov ecx, dword [ecx + 4]
add ecx, edx
cmp eax, ecx
jl 0x4aefd3
jmp case.0x4ad8e4.6
mov edx, dword [esp + 0xc0]
mov edx, dword [edx]
mov eax, edx
add ecx, edx
add edi, edx
cmp eax, ecx
jge case.0x4ad8e4.6
test eax, eax
jge 0x4af087
inc esi
inc edi
jmp 0x4af0eb
mov ecx, dword [esp + 0xa0]
cmp eax, dword [ecx + 4]
jge case.0x4ad8e4.6
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x4af0d2
mov ecx, dword [esp + 0xb8]
test ecx, ecx
je 0x4af0c7
mov ecx, dword [esp + 0x30]
cmp byte [eax + ecx], 0
je 0x4af0e9
mov ecx, eax
sub ecx, edx
mov edx, dword [esp + 0x2c]
cmp byte [ecx + edx], 0
jne 0x4af0e5
jmp 0x4af0e9
mov edx, dword [esp + 0x30]
xor ecx, ecx
mov cl, byte [eax + edx]
jmp 0x4af0e1
mov ebp, dword [esp + 0x2c]
mov ecx, eax
sub ecx, edx
xor edx, edx
mov dl, byte [ecx + ebp]
mov ecx, edx
test ecx, ecx
je 0x4af0e9
mov cl, byte [esi]
mov byte [edi], cl
inc edi
inc esi
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xb0]
inc eax
mov edx, dword [edx]
mov ecx, dword [ecx + 4]
add ecx, edx
cmp eax, ecx
jl 0x4af07f
jmp case.0x4ad8e4.6
mov edx, dword [esp + 0xc0]
xor eax, eax
mov dword [esp + 0x10], eax
mov edx, dword [edx]
mov ebp, edx
add ecx, edx
cmp ebp, ecx
jge case.0x4ad8e4.6
test ebp, ebp
jl 0x4af1f9
mov ecx, dword [esp + 0xa0]
cmp ebp, dword [ecx + 4]
jge case.0x4ad8e4.6
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x4af183
mov ecx, dword [esp + 0xb8]
test ecx, ecx
je 0x4af178
mov ecx, dword [esp + 0x30]
cmp byte [ecx + ebp], 0
je 0x4af1f9
mov ecx, ebp
sub ecx, edx
mov edx, dword [esp + 0x2c]
cmp byte [ecx + edx], 0
jne 0x4af198
jmp 0x4af1f9
mov edx, dword [esp + 0x30]
xor ecx, ecx
mov cl, byte [edx + ebp]
jmp 0x4af194
mov eax, ebp
sub eax, edx
mov edx, dword [esp + 0x2c]
xor ecx, ecx
mov cl, byte [eax + edx]
mov eax, dword [esp + 0x10]
test ecx, ecx
je 0x4af1f9
test al, 1
cdq
je 0x4af1ac
sub eax, edx
sar eax, 1
mov al, byte [eax + esi]
and al, 0xf
mov byte [esp + 0x6c], al
jmp 0x4af1ba
sub eax, edx
sar eax, 1
mov cl, byte [eax + esi]
shr cl, 4
mov byte [esp + 0x6c], cl
mov eax, ebp
mov ecx, ebp
cdq
sub eax, edx
and ecx, 1
sar eax, 1
mov edx, ecx
add eax, edi
neg edx
sbb dl, dl
and dl, 0xe1
add dl, 0xf
and byte [eax], dl
mov dl, byte [eax]
test ecx, ecx
mov ecx, dword [esp + 0x6c]
je 0x4af1e8
and ecx, 0xff
jmp 0x4af1f1
and ecx, 0xff
shl ecx, 4
or dl, cl
mov byte [eax], dl
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc0]
inc eax
inc ebp
mov dword [esp + 0x10], eax
mov edx, dword [ecx]
mov ecx, dword [esp + 0xb0]
mov ecx, dword [ecx + 4]
add ecx, edx
cmp ebp, ecx
jl 0x4af129
jmp case.0x4ad8e4.6
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x10], 0
mov eax, dword [edx]
mov ebp, eax
add ecx, eax
cmp ebp, ecx
jge case.0x4ad8e4.6
test ebp, ebp
jl 0x4af30f
mov edx, dword [esp + 0xa0]
cmp ebp, dword [edx + 4]
jge case.0x4ad8e4.6
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x4af298
mov ecx, dword [esp + 0xb8]
test ecx, ecx
je 0x4af28d
mov ecx, dword [esp + 0x30]
cmp byte [ecx + ebp], 0
je 0x4af30f
mov edx, ebp
sub edx, eax
mov eax, dword [esp + 0x2c]
cmp byte [edx + eax], 0
jne 0x4af2a9
jmp 0x4af30f
mov ecx, dword [esp + 0x30]
xor eax, eax
mov al, byte [ecx + ebp]
jmp 0x4af2a5
mov ecx, dword [esp + 0x2c]
mov edx, ebp
sub edx, eax
xor eax, eax
mov al, byte [edx + ecx]
test eax, eax
je 0x4af30f
mov eax, dword [esp + 0x10]
mov edx, 0x80
mov ecx, eax
and ecx, 7
sar edx, cl
mov dword [esp + 0x50], edx
cdq
and edx, 7
add eax, edx
mov edx, dword [esp + 0x50]
sar eax, 3
mov cl, byte [eax + esi]
mov eax, ebp
test cl, dl
cdq
je 0x4af2f0
and edx, 7
mov ecx, ebp
add eax, edx
and ecx, 7
sar eax, 3
mov edx, 0x80
add eax, edi
sar edx, cl
mov cl, byte [eax]
or cl, dl
jmp 0x4af30d
and edx, 7
mov ecx, ebp
add eax, edx
and ecx, 7
mov edx, 0x80
sar eax, 3
sar edx, cl
mov cl, byte [eax + edi]
add eax, edi
not dl
and cl, dl
mov byte [eax], cl
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xb0]
inc eax
inc ebp
mov edx, dword [ecx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc0]
mov eax, dword [eax]
add edx, eax
cmp ebp, edx
jl 0x4af23e
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0xc0]
inc eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x70]
mov edi, dword [esi + 4]
mov edx, ecx
inc eax
sub edx, edi
mov dword [esp + 0x70], eax
cmp eax, edx
jl 0x4ad779
pop ebp
pop ebx
pop edi
mov eax, 1
pop esi
add esp, 0x8c
ret
pop edi
xor eax, eax
pop esi
add esp, 0x8c
ret