Function at 0x473dd3
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x178
mov eax, dword [0x67da64]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 0x138], ecx
and dword [ebp - 0x168], 0
and dword [ebp - 0x16c], 0
xorps xmm0, xmm0
movsd qword [ebp - 0x150], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x148], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x148], xmm0
jmp 0x473e38
movsd xmm0, qword [ebp - 0x148]
addsd xmm0, qword [0x656dc8]
movsd qword [ebp - 0x148], xmm0
movsd xmm0, qword [0x657b08]
comisd xmm0, xmmword [ebp - 0x148]
jbe 0x473ee9
movsd xmm0, qword [0x6578e0]
mulsd xmm0, qword [ebp - 0x148]
mulsd xmm0, qword [ebp - 0x148]
movsd xmm1, qword [ebp - 0x148]
mulsd xmm1, qword [ebp - 0x148]
subsd xmm0, xmm1
movsd xmm1, qword [0x656f90]
mulsd xmm1, qword [ebp - 0x148]
mulsd xmm1, qword [ebp - 0x148]
addsd xmm1, qword [0x6572c0]
divsd xmm0, xmm1
addsd xmm0, qword [ebp - 0x150]
movsd qword [ebp - 0x150], xmm0
movsd xmm0, qword [ebp - 0x150]
comisd xmm0, xmmword [0x657718]
jbe 0x473ee4
movsd xmm0, qword [0x656d60]
mulsd xmm0, qword [ebp - 0x148]
movsd xmm1, qword [ebp - 0x150]
subsd xmm1, xmm0
movsd qword [ebp - 0x150], xmm1
jmp 0x473e20
xorps xmm0, xmm0
comisd xmm0, xmmword [ebp - 0x150]
jbe 0x473f4f
xor al, 0x50
jle 0x473f3f
arpl word [edx + 0x74], ax
push esp
jl 0x473f30
dec ecx
pop ecx
aaa
push ecx
imul esi, dword [ebx + 0x28], 0x66
pop edx
inc ebp
xor eax, 0x58604120
dec ebp
sub al, 0x5c
jo 0x473f54
pop edi
in al, dx
pop esi
hlt
pop esp
cmc
push edi
jmp 0x473f92
popal
out 0x64, al
cmc
ljmp 0x5e9
mov dword [ebp - 0x168], 0x473f14
mov dword [ebp - 0x16c], 0x473ef6
mov eax, dword [ebp - 0x168]
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x178], eax
mov byte [ebp - 0x125], 0x22
and dword [ebp - 0x118], 0
jmp 0x473f98
call dword [edi + edi]
inc edi
add bh, al
test dword [esi + edi*8 + 0x3ef6ffff], edx
inc edi
add byte [ebx - 0x1677b], cl
dec dword [ecx - 0x1237b]
dec dword [ebx - 0x16b7b]
dec dword [ecx - 0x1777b]
inc esi
test ebx, ebx
invalid
mov eax, dword [ebp - 0x118]
inc eax
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x118], 0x100
jae 0x473fb9
mov eax, dword [ebp - 0x118]
mov cl, byte [ebp - 0x118]
mov byte [ebp + eax - 0x104], cl
jmp 0x473f8b
and dword [ebp - 0x140], 0
mov byte [ebp - 0x10c], 0
mov dword [ebp - 0x118], 0xff
jmp 0x473fe0
mov eax, dword [ebp - 0x118]
dec eax
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x118], 0
jbe 0x474265
and dword [ebp - 0x15c], 0
mov dword [ebp - 0x154], 1
mov eax, dword [ebp - 0x154]
cmp eax, dword [ebp - 0x118]
jae 0x47401e
mov eax, dword [ebp - 0x154]
lea eax, [eax + eax + 1]
mov dword [ebp - 0x154], eax
jmp 0x473ffe
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
je 0x474063
sub dword [ebp - 0x120], 1
je 0x474091
sub dword [ebp - 0x120], 1
je 0x4740c2
sub dword [ebp - 0x120], 1
je 0x4740f0
jmp 0x47411e
movzx eax, byte [ebp - 0x10c]
movzx ebx, byte [ebp + eax - 0x104]
movsd xmm0, qword [ebp - 0x150]
call fcn.0060b411
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x10c], bl
jmp 0x474145
movzx eax, byte [ebp - 0x10c]
movzx ebx, byte [ebp + eax - 0x104]
movsd xmm0, qword [ebp - 0x150]
call fcn.0060b411
shr eax, 8
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x10c], bl
jmp 0x474145
movzx eax, byte [ebp - 0x10c]
movzx ebx, byte [ebp + eax - 0x104]
movsd xmm0, qword [ebp - 0x150]
call fcn.0060b411
shr eax, 0x10
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x10c], bl
jmp 0x474145
movzx eax, byte [ebp - 0x10c]
movzx ebx, byte [ebp + eax - 0x104]
movsd xmm0, qword [ebp - 0x150]
call fcn.0060b411
shr eax, 0x18
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x10c], bl
jmp 0x474145
movzx eax, byte [ebp - 0x10c]
movzx eax, byte [ebp + eax - 0x104]
mov ecx, dword [ebp - 0x178]
add ecx, dword [ebp - 0x140]
movzx ecx, byte [ecx - 4]
add eax, ecx
mov byte [ebp - 0x10c], al
mov eax, dword [ebp - 0x140]
inc eax
mov dword [ebp - 0x140], eax
movzx eax, byte [ebp - 0x125]
cmp dword [ebp - 0x140], eax
jb 0x47417e
and dword [ebp - 0x140], 0
movzx eax, byte [ebp - 0x125]
movzx ecx, byte [ebp - 0x10c]
add ecx, eax
mov byte [ebp - 0x10c], cl
movzx eax, byte [ebp - 0x10c]
and eax, dword [ebp - 0x154]
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x15c]
inc eax
mov dword [ebp - 0x15c], eax
cmp dword [ebp - 0x15c], 0xb
jbe 0x4741bb
mov eax, dword [ebp - 0x13c]
xor edx, edx
div dword [ebp - 0x118]
mov dword [ebp - 0x13c], edx
mov eax, dword [ebp - 0x13c]
cmp eax, dword [ebp - 0x118]
ja 0x47401e
mov eax, dword [ebp - 0x118]
cmp eax, dword [ebp - 0x13c]
je 0x474260
mov eax, dword [ebp - 0x13c]
movzx eax, byte [ebp + eax - 0x104]
mov ecx, dword [ebp - 0x118]
movzx ecx, byte [ebp + ecx - 0x104]
xor ecx, eax
mov eax, dword [ebp - 0x118]
mov byte [ebp + eax - 0x104], cl
mov eax, dword [ebp - 0x118]
movzx eax, byte [ebp + eax - 0x104]
mov ecx, dword [ebp - 0x13c]
movzx ecx, byte [ebp + ecx - 0x104]
xor ecx, eax
mov eax, dword [ebp - 0x13c]
mov byte [ebp + eax - 0x104], cl
mov eax, dword [ebp - 0x13c]
movzx eax, byte [ebp + eax - 0x104]
mov ecx, dword [ebp - 0x118]
movzx ecx, byte [ebp + ecx - 0x104]
xor ecx, eax
mov eax, dword [ebp - 0x118]
mov byte [ebp + eax - 0x104], cl
jmp 0x473fd3
xor eax, eax
inc eax
shl eax, 0
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x105], al
xor eax, eax
inc eax
imul eax, eax, 3
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x106], al
xor eax, eax
inc eax
imul eax, eax, 5
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x109], al
xor eax, eax
inc eax
imul eax, eax, 7
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x107], al
movzx eax, byte [ebp - 0x10c]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x108], al
mov dword [ebp - 0x170], 0x36
cmp dword [ebp - 0x170], 2
jle 0x474f24
mov eax, dword [ebp - 0x170]
and eax, 1
jne 0x474f24
and dword [ebp - 0x114], 0
mov dword [ebp - 0x11c], 1
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [ecx + eax*2]
sub eax, 0x57
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [ecx + eax*2 + 1]
sub eax, 0xe6
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x12c]
shl eax, 4
or eax, dword [ebp - 0x130]
mov dword [ebp - 0x134], eax
mov al, byte [ebp - 0x134]
mov byte [ebp - 0x10b], al
movzx eax, byte [ebp - 0x108]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x10a], al
movzx eax, byte [ebp - 0x105]
movzx eax, byte [ebp + eax - 0x104]
movzx ecx, byte [ebp - 0x106]
add ecx, eax
mov byte [ebp - 0x106], cl
mov al, byte [ebp - 0x105]
add al, 1
mov byte [ebp - 0x105], al
movzx eax, byte [ebp - 0x106]
movzx ecx, byte [ebp - 0x108]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x107]
movzx ecx, byte [ebp - 0x106]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp - 0x107]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x105]
mov cl, byte [ebp - 0x10a]
mov byte [ebp + eax - 0x104], cl
movzx eax, byte [ebp - 0x10a]
movzx eax, byte [ebp + eax - 0x104]
movzx ecx, byte [ebp - 0x109]
add ecx, eax
mov byte [ebp - 0x109], cl
movzx eax, byte [ebp - 0x10b]
movzx ecx, byte [ebp - 0x106]
movzx ecx, byte [ebp + ecx - 0x104]
movzx edx, byte [ebp - 0x105]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
xor eax, ecx
movzx ecx, byte [ebp - 0x107]
movzx ecx, byte [ebp + ecx - 0x104]
movzx edx, byte [ebp - 0x108]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
movzx edx, byte [ebp - 0x109]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp + ecx - 0x104]
xor eax, ecx
mov byte [ebp - 0x107], al
mov al, byte [ebp - 0x10b]
mov byte [ebp - 0x108], al
mov al, byte [ebp - 0x107]
mov byte [ebp - 0x10d], al
cmp dword [ebp - 0x114], 0
jle 0x4744d4
mov eax, dword [ebp - 0x138]
add eax, dword [ebp - 0x114]
mov cl, byte [ebp - 0x10d]
mov byte [eax - 1], cl
mov eax, dword [ebp - 0x114]
inc eax
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x11c]
inc eax
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [ecx + eax*2]
sub eax, 0x57
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [ecx + eax*2 + 1]
sub eax, 0xe6
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x12c]
shl eax, 4
or eax, dword [ebp - 0x130]
mov dword [ebp - 0x134], eax
mov al, byte [ebp - 0x134]
mov byte [ebp - 0x10b], al
movzx eax, byte [ebp - 0x108]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x10a], al
movzx eax, byte [ebp - 0x105]
movzx eax, byte [ebp + eax - 0x104]
movzx ecx, byte [ebp - 0x106]
add ecx, eax
mov byte [ebp - 0x106], cl
mov al, byte [ebp - 0x105]
add al, 1
mov byte [ebp - 0x105], al
movzx eax, byte [ebp - 0x106]
movzx ecx, byte [ebp - 0x108]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x107]
movzx ecx, byte [ebp - 0x106]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp - 0x107]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x105]
mov cl, byte [ebp - 0x10a]
mov byte [ebp + eax - 0x104], cl
movzx eax, byte [ebp - 0x10a]
movzx eax, byte [ebp + eax - 0x104]
movzx ecx, byte [ebp - 0x109]
add ecx, eax
mov byte [ebp - 0x109], cl
movzx eax, byte [ebp - 0x10b]
movzx ecx, byte [ebp - 0x106]
movzx ecx, byte [ebp + ecx - 0x104]
movzx edx, byte [ebp - 0x105]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
xor eax, ecx
movzx ecx, byte [ebp - 0x107]
movzx ecx, byte [ebp + ecx - 0x104]
movzx edx, byte [ebp - 0x108]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
movzx edx, byte [ebp - 0x109]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp + ecx - 0x104]
xor eax, ecx
mov byte [ebp - 0x107], al
mov al, byte [ebp - 0x10b]
mov byte [ebp - 0x108], al
mov al, byte [ebp - 0x107]
mov byte [ebp - 0x10d], al
cmp dword [ebp - 0x114], 0
jle 0x4746c6
mov eax, dword [ebp - 0x138]
add eax, dword [ebp - 0x114]
mov cl, byte [ebp - 0x10d]
mov byte [eax - 1], cl
mov eax, dword [ebp - 0x114]
inc eax
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x11c]
inc eax
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [ecx + eax*2]
sub eax, 0x57
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [ecx + eax*2 + 1]
sub eax, 0xe6
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x12c]
shl eax, 4
or eax, dword [ebp - 0x130]
mov dword [ebp - 0x134], eax
mov al, byte [ebp - 0x134]
mov byte [ebp - 0x10b], al
movzx eax, byte [ebp - 0x108]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x10a], al
movzx eax, byte [ebp - 0x105]
movzx eax, byte [ebp + eax - 0x104]
movzx ecx, byte [ebp - 0x106]
add ecx, eax
mov byte [ebp - 0x106], cl
mov al, byte [ebp - 0x105]
add al, 1
mov byte [ebp - 0x105], al
movzx eax, byte [ebp - 0x106]
movzx ecx, byte [ebp - 0x108]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x107]
movzx ecx, byte [ebp - 0x106]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp - 0x107]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x105]
mov cl, byte [ebp - 0x10a]
mov byte [ebp + eax - 0x104], cl
movzx eax, byte [ebp - 0x10a]
movzx eax, byte [ebp + eax - 0x104]
movzx ecx, byte [ebp - 0x109]
add ecx, eax
mov byte [ebp - 0x109], cl
movzx eax, byte [ebp - 0x10b]
movzx ecx, byte [ebp - 0x106]
movzx ecx, byte [ebp + ecx - 0x104]
movzx edx, byte [ebp - 0x105]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
xor eax, ecx
movzx ecx, byte [ebp - 0x107]
movzx ecx, byte [ebp + ecx - 0x104]
movzx edx, byte [ebp - 0x108]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
movzx edx, byte [ebp - 0x109]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp + ecx - 0x104]
xor eax, ecx
mov byte [ebp - 0x107], al
mov al, byte [ebp - 0x10b]
mov byte [ebp - 0x108], al
mov al, byte [ebp - 0x107]
mov byte [ebp - 0x10d], al
cmp dword [ebp - 0x114], 0
jle 0x4748b8
mov eax, dword [ebp - 0x138]
add eax, dword [ebp - 0x114]
mov cl, byte [ebp - 0x10d]
mov byte [eax - 1], cl
mov eax, dword [ebp - 0x11c]
add eax, 0xb
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x114]
inc eax
mov dword [ebp - 0x160], eax
jmp 0x4748e3
mov eax, dword [ebp - 0x160]
inc eax
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x160]
cmp eax, dword [ebp - 0x11c]
jge 0x474adf
mov eax, dword [ebp - 0x114]
inc eax
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [ecx + eax*2]
sub eax, 0x57
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [ecx + eax*2 + 1]
sub eax, 0xe6
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x12c]
shl eax, 4
or eax, dword [ebp - 0x130]
mov dword [ebp - 0x134], eax
mov al, byte [ebp - 0x134]
mov byte [ebp - 0x10b], al
movzx eax, byte [ebp - 0x108]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x10a], al
movzx eax, byte [ebp - 0x105]
movzx eax, byte [ebp + eax - 0x104]
movzx ecx, byte [ebp - 0x106]
add ecx, eax
mov byte [ebp - 0x106], cl
mov al, byte [ebp - 0x105]
add al, 1
mov byte [ebp - 0x105], al
movzx eax, byte [ebp - 0x106]
movzx ecx, byte [ebp - 0x108]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x107]
movzx ecx, byte [ebp - 0x106]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp - 0x107]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x105]
mov cl, byte [ebp - 0x10a]
mov byte [ebp + eax - 0x104], cl
movzx eax, byte [ebp - 0x10a]
movzx eax, byte [ebp + eax - 0x104]
movzx ecx, byte [ebp - 0x109]
add ecx, eax
mov byte [ebp - 0x109], cl
movzx eax, byte [ebp - 0x10b]
movzx ecx, byte [ebp - 0x106]
movzx ecx, byte [ebp + ecx - 0x104]
movzx edx, byte [ebp - 0x105]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
xor eax, ecx
movzx ecx, byte [ebp - 0x107]
movzx ecx, byte [ebp + ecx - 0x104]
movzx edx, byte [ebp - 0x108]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
movzx edx, byte [ebp - 0x109]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp + ecx - 0x104]
xor eax, ecx
mov byte [ebp - 0x107], al
mov al, byte [ebp - 0x10b]
mov byte [ebp - 0x108], al
mov al, byte [ebp - 0x107]
mov byte [ebp - 0x10d], al
cmp dword [ebp - 0x114], 0
jle 0x474ada
mov eax, dword [ebp - 0x138]
add eax, dword [ebp - 0x114]
mov cl, byte [ebp - 0x10d]
mov byte [eax - 1], cl
jmp 0x4748d6
mov eax, dword [ebp - 0x11c]
inc eax
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x11c]
add eax, 0xc
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x114]
inc eax
mov dword [ebp - 0x164], eax
jmp 0x474b17
mov eax, dword [ebp - 0x164]
inc eax
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x164]
cmp eax, dword [ebp - 0x11c]
jge 0x474d13
mov eax, dword [ebp - 0x114]
inc eax
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [ecx + eax*2]
sub eax, 0x57
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [ecx + eax*2 + 1]
sub eax, 0xe6
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x12c]
shl eax, 4
or eax, dword [ebp - 0x130]
mov dword [ebp - 0x134], eax
mov al, byte [ebp - 0x134]
mov byte [ebp - 0x10b], al
movzx eax, byte [ebp - 0x108]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x10a], al
movzx eax, byte [ebp - 0x105]
movzx eax, byte [ebp + eax - 0x104]
movzx ecx, byte [ebp - 0x106]
add ecx, eax
mov byte [ebp - 0x106], cl
mov al, byte [ebp - 0x105]
add al, 1
mov byte [ebp - 0x105], al
movzx eax, byte [ebp - 0x106]
movzx ecx, byte [ebp - 0x108]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x107]
movzx ecx, byte [ebp - 0x106]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp - 0x107]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x105]
mov cl, byte [ebp - 0x10a]
mov byte [ebp + eax - 0x104], cl
movzx eax, byte [ebp - 0x10a]
movzx eax, byte [ebp + eax - 0x104]
movzx ecx, byte [ebp - 0x109]
add ecx, eax
mov byte [ebp - 0x109], cl
movzx eax, byte [ebp - 0x10b]
movzx ecx, byte [ebp - 0x106]
movzx ecx, byte [ebp + ecx - 0x104]
movzx edx, byte [ebp - 0x105]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
xor eax, ecx
movzx ecx, byte [ebp - 0x107]
movzx ecx, byte [ebp + ecx - 0x104]
movzx edx, byte [ebp - 0x108]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
movzx edx, byte [ebp - 0x109]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp + ecx - 0x104]
xor eax, ecx
mov byte [ebp - 0x107], al
mov al, byte [ebp - 0x10b]
mov byte [ebp - 0x108], al
mov al, byte [ebp - 0x107]
mov byte [ebp - 0x10d], al
cmp dword [ebp - 0x114], 0
jle 0x474d0e
mov eax, dword [ebp - 0x138]
add eax, dword [ebp - 0x114]
mov cl, byte [ebp - 0x10d]
mov byte [eax - 1], cl
jmp 0x474b0a
mov eax, dword [ebp - 0x11c]
inc eax
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x114]
inc eax
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x11c]
inc eax
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [ecx + eax*2]
sub eax, 0x57
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [ecx + eax*2 + 1]
sub eax, 0xe6
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x12c]
shl eax, 4
or eax, dword [ebp - 0x130]
mov dword [ebp - 0x134], eax
mov al, byte [ebp - 0x134]
mov byte [ebp - 0x10b], al
movzx eax, byte [ebp - 0x108]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x10a], al
movzx eax, byte [ebp - 0x105]
movzx eax, byte [ebp + eax - 0x104]
movzx ecx, byte [ebp - 0x106]
add ecx, eax
mov byte [ebp - 0x106], cl
mov al, byte [ebp - 0x105]
add al, 1
mov byte [ebp - 0x105], al
movzx eax, byte [ebp - 0x106]
movzx ecx, byte [ebp - 0x108]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x107]
movzx ecx, byte [ebp - 0x106]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp - 0x107]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp - 0x105]
mov cl, byte [ebp - 0x10a]
mov byte [ebp + eax - 0x104], cl
movzx eax, byte [ebp - 0x10a]
movzx eax, byte [ebp + eax - 0x104]
movzx ecx, byte [ebp - 0x109]
add ecx, eax
mov byte [ebp - 0x109], cl
movzx eax, byte [ebp - 0x10b]
movzx ecx, byte [ebp - 0x106]
movzx ecx, byte [ebp + ecx - 0x104]
movzx edx, byte [ebp - 0x105]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
xor eax, ecx
movzx ecx, byte [ebp - 0x107]
movzx ecx, byte [ebp + ecx - 0x104]
movzx edx, byte [ebp - 0x108]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
movzx edx, byte [ebp - 0x109]
movzx edx, byte [ebp + edx - 0x104]
add ecx, edx
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp + ecx - 0x104]
xor eax, ecx
mov byte [ebp - 0x107], al
mov al, byte [ebp - 0x10b]
mov byte [ebp - 0x108], al
mov al, byte [ebp - 0x107]
mov byte [ebp - 0x10d], al
cmp dword [ebp - 0x114], 0
jle 0x474f12
mov eax, dword [ebp - 0x138]
add eax, dword [ebp - 0x114]
mov cl, byte [ebp - 0x10d]
mov byte [eax - 1], cl
xor eax, eax
inc eax
imul eax, eax, 0x1a
mov ecx, dword [ebp - 0x138]
mov byte [ecx + eax], 0
jmp 0x474f54
and dword [ebp - 0x158], 0
jmp 0x474f3a
mov eax, dword [ebp - 0x158]
inc eax
mov dword [ebp - 0x158], eax
cmp dword [ebp - 0x158], 0x1b
jge 0x474f54
mov eax, dword [ebp - 0x138]
add eax, dword [ebp - 0x158]
mov byte [eax], 0
jmp 0x474f2d
mov eax, dword [ebp - 0x138]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005e6627
mov esp, ebp
pop ebp
ret