Function at 0x401d40
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x134
and dword [ebp + 0x60], 0
push ebx
push esi
push edi
push 2
pop esi
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x78]
movzx edi, byte [eax + ecx]
mov ecx, eax
mov eax, edi
cdq
mov ebx, 0x80
idiv ebx
mov ebx, esi
shl ecx, 3
push 0x40
cdq
idiv ebx
pop ebx
mov eax, edi
push 0x20
mov byte [ebp + ecx - 0x10], dl
cdq
idiv ebx
mov ebx, esi
cdq
idiv ebx
pop ebx
mov eax, edi
push 0x10
mov byte [ebp + ecx - 0xf], dl
cdq
idiv ebx
mov ebx, esi
cdq
idiv ebx
pop ebx
mov eax, edi
push 8
mov byte [ebp + ecx - 0xe], dl
cdq
idiv ebx
mov ebx, esi
cdq
idiv ebx
mov eax, edi
pop ebx
push 4
mov byte [ebp + ecx - 0xd], dl
cdq
idiv ebx
mov ebx, esi
cdq
idiv ebx
mov eax, edi
pop ebx
mov byte [ebp + ecx - 0xc], dl
cdq
idiv ebx
mov ebx, esi
cdq
idiv ebx
mov eax, edi
mov byte [ebp + ecx - 0xb], dl
cdq
sub eax, edx
sar eax, 1
cdq
idiv ebx
mov eax, edi
mov edi, esi
mov byte [ebp + ecx - 0xa], dl
cdq
idiv edi
inc dword [ebp + 0x60]
cmp dword [ebp + 0x60], 8
mov byte [ebp + ecx - 9], dl
jl 0x401d55
and dword [ebp + 0x60], 0
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x70]
movzx edi, byte [eax + ecx]
mov ecx, eax
mov eax, edi
cdq
mov ebx, 0x80
idiv ebx
mov ebx, esi
shl ecx, 3
push 0x40
cdq
idiv ebx
pop ebx
mov eax, edi
push 0x20
mov byte [ebp + ecx - 0x50], dl
cdq
idiv ebx
mov ebx, esi
cdq
idiv ebx
pop ebx
mov eax, edi
push 0x10
mov byte [ebp + ecx - 0x4f], dl
cdq
idiv ebx
mov ebx, esi
cdq
idiv ebx
pop ebx
mov eax, edi
push 8
mov byte [ebp + ecx - 0x4e], dl
cdq
idiv ebx
mov ebx, esi
cdq
idiv ebx
mov eax, edi
pop ebx
push 4
mov byte [ebp + ecx - 0x4d], dl
cdq
idiv ebx
mov ebx, esi
cdq
idiv ebx
mov eax, edi
pop ebx
mov byte [ebp + ecx - 0x4c], dl
cdq
idiv ebx
mov ebx, esi
cdq
idiv ebx
mov eax, edi
mov byte [ebp + ecx - 0x4b], dl
cdq
sub eax, edx
sar eax, 1
cdq
idiv ebx
mov eax, edi
mov edi, esi
mov byte [ebp + ecx - 0x4a], dl
cdq
idiv edi
inc dword [ebp + 0x60]
cmp dword [ebp + 0x60], 8
mov byte [ebp + ecx - 0x49], dl
jl 0x401df6
mov al, byte [ebp - 0x17]
mov byte [ebp - 0x90], al
mov al, byte [ebp - 0x1f]
mov byte [ebp - 0x8f], al
mov al, byte [ebp - 0x27]
mov byte [ebp - 0x8e], al
mov al, byte [ebp - 0x2f]
mov byte [ebp - 0x8d], al
mov al, byte [ebp - 0x37]
mov byte [ebp - 0x8c], al
mov al, byte [ebp - 0x3f]
mov byte [ebp - 0x8b], al
mov al, byte [ebp - 0x47]
mov byte [ebp - 0x8a], al
mov al, byte [ebp - 0x4f]
mov byte [ebp - 0x89], al
mov al, byte [ebp - 0x15]
mov byte [ebp - 0x88], al
mov al, byte [ebp - 0x1d]
mov byte [ebp - 0x87], al
mov al, byte [ebp - 0x25]
mov byte [ebp - 0x86], al
mov al, byte [ebp - 0x2d]
mov byte [ebp - 0x85], al
mov al, byte [ebp - 0x35]
mov byte [ebp - 0x84], al
mov al, byte [ebp - 0x3d]
mov byte [ebp - 0x83], al
mov al, byte [ebp - 0x45]
mov byte [ebp - 0x82], al
mov al, byte [ebp - 0x4d]
mov byte [ebp - 0x81], al
mov al, byte [ebp - 0x13]
mov byte [ebp - 0x80], al
mov al, byte [ebp - 0x1b]
mov byte [ebp - 0x7f], al
mov al, byte [ebp - 0x23]
mov byte [ebp - 0x7e], al
mov al, byte [ebp - 0x2b]
mov byte [ebp - 0x7d], al
mov al, byte [ebp - 0x33]
mov byte [ebp - 0x7c], al
mov al, byte [ebp - 0x3b]
mov byte [ebp - 0x7b], al
mov al, byte [ebp - 0x43]
mov byte [ebp - 0x7a], al
mov al, byte [ebp - 0x4b]
mov byte [ebp - 0x79], al
mov al, byte [ebp - 0x11]
mov byte [ebp - 0x78], al
mov al, byte [ebp - 0x19]
mov byte [ebp - 0x77], al
mov al, byte [ebp - 0x21]
mov byte [ebp - 0x76], al
mov al, byte [ebp - 0x29]
mov byte [ebp - 0x75], al
mov al, byte [ebp - 0x31]
mov byte [ebp - 0x74], al
mov al, byte [ebp - 0x39]
mov byte [ebp - 0x73], al
mov al, byte [ebp - 0x41]
mov byte [ebp - 0x72], al
mov al, byte [ebp - 0x49]
mov byte [ebp - 0x71], al
mov al, byte [ebp - 0x18]
mov byte [ebp - 0x70], al
mov al, byte [ebp - 0x20]
mov byte [ebp - 0x6f], al
mov al, byte [ebp - 0x28]
mov byte [ebp - 0x6e], al
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x6d], al
mov al, byte [ebp - 0x38]
mov byte [ebp - 0x6c], al
mov al, byte [ebp - 0x40]
mov byte [ebp - 0x6b], al
mov al, byte [ebp - 0x48]
mov byte [ebp - 0x6a], al
mov al, byte [ebp - 0x50]
mov byte [ebp - 0x69], al
mov al, byte [ebp - 0x16]
mov byte [ebp - 0x68], al
mov al, byte [ebp - 0x1e]
mov byte [ebp - 0x67], al
mov al, byte [ebp - 0x26]
mov byte [ebp - 0x66], al
mov al, byte [ebp - 0x2e]
mov byte [ebp - 0x65], al
mov al, byte [ebp - 0x36]
mov byte [ebp - 0x64], al
mov al, byte [ebp - 0x3e]
mov byte [ebp - 0x63], al
mov al, byte [ebp - 0x46]
mov byte [ebp - 0x62], al
mov al, byte [ebp - 0x4e]
mov byte [ebp - 0x61], al
mov al, byte [ebp - 0x14]
mov byte [ebp - 0x60], al
mov al, byte [ebp - 0x1c]
mov byte [ebp - 0x5f], al
mov al, byte [ebp - 0x24]
mov byte [ebp - 0x5e], al
mov al, byte [ebp - 0x2c]
mov byte [ebp - 0x5d], al
mov al, byte [ebp - 0x34]
mov byte [ebp - 0x5c], al
mov al, byte [ebp - 0x3c]
mov byte [ebp - 0x5b], al
mov al, byte [ebp - 0x44]
mov byte [ebp - 0x5a], al
mov al, byte [ebp - 0x4c]
mov byte [ebp - 0x59], al
mov al, byte [ebp - 0x12]
mov byte [ebp - 0x58], al
mov al, byte [ebp - 0x1a]
mov byte [ebp - 0x57], al
mov al, byte [ebp - 0x22]
mov byte [ebp - 0x56], al
mov al, byte [ebp - 0x2a]
mov byte [ebp - 0x55], al
mov al, byte [ebp - 0x32]
mov byte [ebp - 0x54], al
mov al, byte [ebp - 0x3a]
mov byte [ebp - 0x53], al
mov al, byte [ebp - 0x42]
mov byte [ebp - 0x52], al
mov al, byte [ebp - 0x4a]
mov byte [ebp - 0x51], al
mov al, byte [ebp + 0x28]
mov byte [ebp - 0xc8], al
mov al, byte [ebp + 0x20]
mov byte [ebp - 0xc7], al
mov al, byte [ebp + 0x18]
mov byte [ebp - 0xc6], al
mov al, byte [ebp + 0x10]
mov byte [ebp - 0xc5], al
mov al, byte [ebp + 8]
mov byte [ebp - 0xc4], al
mov al, byte [ebp]
mov byte [ebp - 0xc3], al
mov al, byte [ebp - 8]
mov byte [ebp - 0xc2], al
mov al, byte [ebp - 0x10]
mov byte [ebp - 0xc1], al
mov al, byte [ebp + 0x29]
mov byte [ebp - 0xc0], al
mov al, byte [ebp + 0x21]
mov byte [ebp - 0xbf], al
mov al, byte [ebp + 0x19]
mov byte [ebp - 0xbe], al
mov al, byte [ebp + 0x11]
mov byte [ebp - 0xbd], al
mov al, byte [ebp + 9]
mov byte [ebp - 0xbc], al
mov al, byte [ebp + 1]
mov byte [ebp - 0xbb], al
mov al, byte [ebp - 7]
mov byte [ebp - 0xba], al
mov al, byte [ebp - 0xf]
mov byte [ebp - 0xb9], al
mov al, byte [ebp + 0x2a]
mov byte [ebp - 0xb8], al
mov al, byte [ebp + 0x22]
mov byte [ebp - 0xb7], al
mov al, byte [ebp + 0x1a]
mov byte [ebp - 0xb6], al
mov al, byte [ebp + 0x12]
mov byte [ebp - 0xb5], al
mov al, byte [ebp + 0xa]
mov byte [ebp - 0xb4], al
mov al, byte [ebp + 2]
mov byte [ebp - 0xb3], al
mov al, byte [ebp - 6]
mov byte [ebp - 0xb2], al
mov al, byte [ebp - 0xe]
mov byte [ebp - 0xb1], al
mov al, byte [ebp + 0x2b]
mov byte [ebp - 0xb0], al
mov al, byte [ebp + 0x23]
mov byte [ebp - 0xaf], al
mov al, byte [ebp + 0x1b]
mov byte [ebp - 0xae], al
mov al, byte [ebp + 0x13]
mov byte [ebp - 0xad], al
mov al, byte [ebp + 0x2e]
mov byte [ebp - 0xac], al
mov al, byte [ebp + 0x26]
mov byte [ebp - 0xab], al
mov al, byte [ebp + 0x1e]
mov byte [ebp - 0xaa], al
mov al, byte [ebp + 0x16]
mov byte [ebp - 0xa9], al
mov al, byte [ebp + 0xe]
mov byte [ebp - 0xa8], al
mov al, byte [ebp + 6]
mov byte [ebp - 0xa7], al
mov al, byte [ebp - 2]
mov byte [ebp - 0xa6], al
mov al, byte [ebp - 0xa]
mov byte [ebp - 0xa5], al
mov al, byte [ebp + 0x2d]
mov byte [ebp - 0xa4], al
mov al, byte [ebp + 0x25]
mov byte [ebp - 0xa3], al
mov al, byte [ebp + 0x1d]
mov byte [ebp - 0xa2], al
mov al, byte [ebp + 0x15]
mov byte [ebp - 0xa1], al
mov al, byte [ebp + 0xd]
mov byte [ebp - 0xa0], al
mov al, byte [ebp + 5]
mov byte [ebp - 0x9f], al
mov al, byte [ebp - 3]
mov byte [ebp - 0x9e], al
mov al, byte [ebp - 0xb]
mov byte [ebp - 0x9d], al
mov al, byte [ebp + 0x2c]
mov byte [ebp - 0x9c], al
mov al, byte [ebp + 0x24]
mov byte [ebp - 0x9b], al
mov al, byte [ebp + 0x1c]
mov byte [ebp - 0x9a], al
mov al, byte [ebp + 0x14]
mov byte [ebp - 0x99], al
mov al, byte [ebp + 0xc]
mov byte [ebp - 0x98], al
mov al, byte [ebp + 4]
mov byte [ebp - 0x97], al
mov al, byte [ebp - 4]
mov byte [ebp - 0x96], al
mov al, byte [ebp - 0xc]
mov byte [ebp - 0x95], al
mov al, byte [ebp + 0xb]
mov byte [ebp - 0x94], al
mov al, byte [ebp + 3]
mov byte [ebp - 0x93], al
mov al, byte [ebp - 5]
mov byte [ebp - 0x92], al
mov al, byte [ebp - 0xd]
mov byte [ebp - 0x91], al
mov dword [ebp - 0xcc], 1
mov dword [ebp + 0x60], str.0000000000600001000106000011002060000120030600001300406000014005060000150060600002000702000021008020000220090200002301002000024011020000300120600003101306000042014060000610150600004001606000041017060000320180600005001906000043020060000330210600004402206000091023060001160240600999909906
push 8
pop ecx
lea esi, [ebp - 0x70]
lea edi, [ebp - 0x50]
rep movsd dword es:[edi], dword [esi]
mov dl, byte [ebp - 0x4f]
mov byte [ebp + 0x32], dl
mov dl, byte [ebp - 0x4e]
mov byte [ebp + 0x33], dl
mov dl, byte [ebp - 0x4d]
mov byte [ebp + 0x34], dl
mov byte [ebp + 0x36], dl
mov dl, byte [ebp - 0x4b]
mov byte [ebp + 0x38], dl
mov dl, byte [ebp - 0x4a]
mov byte [ebp + 0x39], dl
mov dl, byte [ebp - 0x49]
mov byte [ebp + 0x3a], dl
mov byte [ebp + 0x3c], dl
mov dl, byte [ebp - 0x47]
mov byte [ebp + 0x3e], dl
mov dl, byte [ebp - 0x46]
mov byte [ebp + 0x3f], dl
mov dl, byte [ebp - 0x45]
mov bl, byte [ebp - 0x4c]
mov byte [ebp + 0x40], dl
mov byte [ebp + 0x42], dl
mov dl, byte [ebp - 0x43]
mov byte [ebp + 0x44], dl
mov dl, byte [ebp - 0x42]
mov byte [ebp + 0x45], dl
mov dl, byte [ebp - 0x41]
mov byte [ebp + 0x46], dl
mov byte [ebp + 0x48], dl
mov dl, byte [ebp - 0x3f]
mov byte [ebp + 0x4a], dl
mov dl, byte [ebp - 0x3e]
mov al, byte [ebp - 0x31]
mov cl, byte [ebp - 0x50]
mov byte [ebp + 0x4b], dl
mov dl, byte [ebp - 0x3d]
mov byte [ebp + 0x4c], dl
mov byte [ebp + 0x4e], dl
mov dl, byte [ebp - 0x3b]
mov byte [ebp + 0x35], bl
mov byte [ebp + 0x37], bl
mov bl, byte [ebp - 0x48]
mov byte [ebp + 0x50], dl
mov dl, byte [ebp - 0x3a]
mov byte [ebp + 0x3b], bl
mov byte [ebp + 0x3d], bl
mov bl, byte [ebp - 0x44]
mov byte [ebp + 0x51], dl
mov dl, byte [ebp - 0x39]
mov byte [ebp + 0x41], bl
mov byte [ebp + 0x43], bl
mov bl, byte [ebp - 0x40]
mov byte [ebp + 0x52], dl
mov byte [ebp + 0x54], dl
mov dl, byte [ebp - 0x37]
mov byte [ebp + 0x47], bl
mov byte [ebp + 0x49], bl
mov bl, byte [ebp - 0x3c]
mov byte [ebp + 0x56], dl
mov dl, byte [ebp - 0x36]
mov byte [ebp + 0x4d], bl
mov byte [ebp + 0x4f], bl
mov bl, byte [ebp - 0x38]
mov byte [ebp + 0x57], dl
mov dl, byte [ebp - 0x35]
mov byte [ebp + 0x53], bl
mov byte [ebp + 0x55], bl
mov bl, byte [ebp - 0x34]
mov byte [ebp + 0x58], dl
mov byte [ebp + 0x5a], dl
mov dl, byte [ebp - 0x33]
mov byte [ebp + 0x30], al
mov byte [ebp + 0x31], cl
mov byte [ebp + 0x59], bl
mov byte [ebp + 0x5b], bl
mov byte [ebp + 0x5c], dl
cmp dword [ebp + 0x7c], 0
mov dl, byte [ebp - 0x32]
mov byte [ebp + 0x5d], dl
mov byte [ebp + 0x5e], al
mov byte [ebp + 0x5f], cl
je 0x4023a1
mov eax, dword [ebp - 0xcc]
movzx eax, byte [eax + 0x46e177]
test eax, eax
jle 0x4023ef
mov esi, eax
mov al, byte [ebp - 0xac]
mov dl, byte [ebp - 0xc8]
mov byte [ebp + 0x67], al
xor ecx, ecx
lea eax, [ebp + ecx - 0xc8]
mov bl, byte [eax + 1]
mov byte [eax], bl
mov bl, byte [eax + 0x1d]
inc ecx
cmp ecx, 0x1b
mov byte [eax + 0x1c], bl
jl 0x402375
dec esi
mov al, byte [ebp + 0x67]
mov byte [ebp - 0xad], dl
mov byte [ebp - 0x91], al
jne 0x402364
jmp 0x4023ef
mov eax, dword [ebp + 0x60]
cmp eax, str.0000000000600001000106000011002060000120030600001300406000014005060000150060600002000702000021008020000220090200002301002000024011020000300120600003101306000042014060000610150600004001606000041017060000320180600005001906000043020060000330210600004402206000091023060001160240600999909906
jge 0x4023ef
movzx eax, byte [eax]
test eax, eax
jle 0x4023ef
mov esi, eax
mov al, byte [ebp - 0x91]
mov dl, byte [ebp - 0xad]
push 0x1b
mov byte [ebp + 0x67], al
pop ecx
lea eax, [ebp + ecx - 0xc8]
mov bl, byte [eax - 1]
mov byte [eax], bl
mov bl, byte [eax + 0x1b]
dec ecx
test ecx, ecx
mov byte [eax + 0x1c], bl
jg 0x4023c6
dec esi
mov al, byte [ebp + 0x67]
mov byte [ebp - 0xc8], dl
mov byte [ebp - 0xac], al
jne 0x4023b4
mov al, byte [ebp - 0xbb]
mov byte [ebp], al
mov al, byte [ebp - 0xb8]
mov byte [ebp + 1], al
mov al, byte [ebp - 0xbe]
mov byte [ebp + 2], al
mov al, byte [ebp - 0xb1]
mov byte [ebp + 3], al
mov al, byte [ebp - 0xc8]
mov byte [ebp + 4], al
mov al, byte [ebp - 0xc4]
mov byte [ebp + 5], al
mov al, byte [ebp - 0xc6]
mov byte [ebp + 6], al
mov al, byte [ebp - 0xad]
mov byte [ebp + 7], al
mov al, byte [ebp - 0xba]
mov byte [ebp + 8], al
mov al, byte [ebp - 0xc3]
mov byte [ebp + 9], al
mov al, byte [ebp - 0xb4]
mov byte [ebp + 0xa], al
mov al, byte [ebp - 0xbf]
mov byte [ebp + 0xb], al
mov al, byte [ebp - 0xb2]
mov byte [ebp + 0xc], al
mov al, byte [ebp - 0xb6]
mov byte [ebp + 0xd], al
mov al, byte [ebp - 0xbd]
mov byte [ebp + 0xe], al
mov al, byte [ebp - 0xc5]
mov byte [ebp + 0xf], al
mov al, byte [ebp - 0xaf]
mov byte [ebp + 0x10], al
mov al, byte [ebp - 0xc1]
mov byte [ebp + 0x11], al
mov al, byte [ebp - 0xb9]
mov byte [ebp + 0x12], al
mov al, byte [ebp - 0xc2]
mov byte [ebp + 0x13], al
mov al, byte [ebp - 0xae]
mov byte [ebp + 0x14], al
mov al, byte [ebp - 0xb5]
mov byte [ebp + 0x15], al
mov al, byte [ebp - 0xbc]
mov byte [ebp + 0x16], al
mov al, byte [ebp - 0xc7]
mov byte [ebp + 0x17], al
mov al, byte [ebp - 0xa0]
mov byte [ebp + 0x18], al
mov al, byte [ebp - 0x95]
mov byte [ebp + 0x19], al
mov al, byte [ebp - 0xaa]
mov byte [ebp + 0x1a], al
mov al, byte [ebp - 0xa4]
mov byte [ebp + 0x1b], al
mov al, byte [ebp - 0x9a]
mov byte [ebp + 0x1c], al
mov al, byte [ebp - 0x92]
mov byte [ebp + 0x1d], al
mov al, byte [ebp - 0xab]
mov byte [ebp + 0x1e], al
mov al, byte [ebp - 0xa1]
mov byte [ebp + 0x1f], al
mov al, byte [ebp - 0x96]
mov byte [ebp + 0x20], al
mov al, byte [ebp - 0x9c]
mov byte [ebp + 0x21], al
mov al, byte [ebp - 0xa8]
mov byte [ebp + 0x22], al
mov al, byte [ebp - 0x99]
mov byte [ebp + 0x23], al
mov al, byte [ebp - 0x9d]
mov byte [ebp + 0x24], al
mov al, byte [ebp - 0x98]
mov byte [ebp + 0x25], al
mov al, byte [ebp - 0xa2]
mov byte [ebp + 0x26], al
mov al, byte [ebp - 0x91]
mov byte [ebp + 0x27], al
mov al, byte [ebp - 0xa7]
mov byte [ebp + 0x28], al
mov al, byte [ebp - 0x94]
mov byte [ebp + 0x29], al
mov al, byte [ebp - 0x9b]
mov byte [ebp + 0x2a], al
mov al, byte [ebp - 0x9f]
mov byte [ebp + 0x2b], al
mov al, byte [ebp - 0x97]
mov byte [ebp + 0x2c], al
mov al, byte [ebp - 0xa5]
mov byte [ebp + 0x2d], al
mov al, byte [ebp - 0xac]
mov byte [ebp + 0x2e], al
mov al, byte [ebp - 0xa9]
mov byte [ebp + 0x2f], al
xor eax, eax
mov cl, byte [ebp + eax]
xor byte [ebp + eax + 0x30], cl
inc eax
cmp eax, 0x30
jl 0x4025a1
movzx ecx, byte [ebp + 0x35]
movzx eax, byte [ebp + 0x30]
lea eax, [ecx + eax*2]
movzx ecx, byte [ebp + 0x31]
lea eax, [ecx + eax*2]
movzx ecx, byte [ebp + 0x32]
lea eax, [ecx + eax*2]
movzx ecx, byte [ebp + 0x33]
lea eax, [ecx + eax*2]
movzx ecx, byte [ebp + 0x34]
movzx eax, byte [ecx + eax*2 + 0x46e138]
movzx edx, byte [ebp + 0x3b]
shl eax, 2
mov cl, byte [eax + 0x46e0f9]
mov byte [ebp + 1], cl
mov cl, byte [eax + 0x46e0fa]
mov byte [ebp + 2], cl
movzx ecx, byte [ebp + 0x36]
lea ecx, [edx + ecx*2]
movzx edx, byte [ebp + 0x37]
lea ecx, [edx + ecx*2]
movzx edx, byte [ebp + 0x38]
lea ecx, [edx + ecx*2]
movzx edx, byte [ebp + 0x39]
lea ecx, [edx + ecx*2]
movzx edx, byte [ebp + 0x3a]
movzx ecx, byte [edx + ecx*2 + 0x46e0b8]
shl ecx, 2
mov dl, byte [ecx + 0x46e0f8]
mov byte [ebp + 4], dl
mov dl, byte [ecx + 0x46e0f9]
mov byte [ebp + 5], dl
mov dl, byte [ecx + 0x46e0fa]
mov cl, byte [ecx + 0x46e0fb]
mov byte [ebp + 6], dl
movzx edx, byte [ebp + 0x41]
mov byte [ebp + 7], cl
movzx ecx, byte [ebp + 0x3c]
lea ecx, [edx + ecx*2]
movzx edx, byte [ebp + 0x3d]
lea ecx, [edx + ecx*2]
movzx edx, byte [ebp + 0x3e]
lea ecx, [edx + ecx*2]
movzx edx, byte [ebp + 0x3f]
lea ecx, [edx + ecx*2]
movzx edx, byte [ebp + 0x40]
movzx edx, byte [edx + ecx*2 + 0x46e078]
movzx esi, byte [ebp + 0x47]
shl edx, 2
mov cl, byte [edx + 0x46e0f8]
mov byte [ebp + 8], cl
mov cl, byte [edx + 0x46e0f9]
mov byte [ebp + 9], cl
mov cl, byte [edx + 0x46e0fa]
mov dl, byte [edx + 0x46e0fb]
mov byte [ebp + 0xb], dl
movzx edx, byte [ebp + 0x42]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x43]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x44]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x45]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x46]
movzx esi, byte [esi + edx*2 + 0x46e038]
mov bl, byte [eax + 0x46e0f8]
mov al, byte [eax + 0x46e0fb]
shl esi, 2
mov dl, byte [esi + 0x46e0f8]
mov byte [ebp + 0xc], dl
mov dl, byte [esi + 0x46e0f9]
mov byte [ebp + 0xd], dl
mov dl, byte [esi + 0x46e0fa]
mov byte [ebp + 0xe], dl
mov dl, byte [esi + 0x46e0fb]
movzx esi, byte [ebp + 0x4d]
mov byte [ebp + 0xf], dl
movzx edx, byte [ebp + 0x48]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x49]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x4a]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x4b]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x4c]
movzx esi, byte [esi + edx*2 + 0x46dff8]
shl esi, 2
mov dl, byte [esi + 0x46e0f8]
mov byte [ebp + 0x10], dl
mov dl, byte [esi + 0x46e0f9]
mov byte [ebp + 0x11], dl
mov dl, byte [esi + 0x46e0fa]
mov byte [ebp + 0x12], dl
mov dl, byte [esi + 0x46e0fb]
movzx esi, byte [ebp + 0x53]
mov byte [ebp + 0x13], dl
movzx edx, byte [ebp + 0x4e]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x4f]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x50]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x51]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x52]
movzx esi, byte [esi + edx*2 + 0x46dfb8]
shl esi, 2
mov dl, byte [esi + 0x46e0f8]
mov byte [ebp + 0x14], dl
mov dl, byte [esi + 0x46e0f9]
mov byte [ebp + 0x15], dl
mov dl, byte [esi + 0x46e0fa]
mov byte [ebp + 0x16], dl
mov dl, byte [esi + 0x46e0fb]
movzx esi, byte [ebp + 0x59]
mov byte [ebp + 0x17], dl
movzx edx, byte [ebp + 0x54]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x55]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x56]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x57]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x58]
movzx esi, byte [esi + edx*2 + 0x46df78]
shl esi, 2
mov dl, byte [esi + 0x46e0f8]
mov byte [ebp + 0x18], dl
mov dl, byte [esi + 0x46e0f9]
mov byte [ebp + 0x19], dl
mov dl, byte [esi + 0x46e0fa]
mov byte [ebp + 0x1a], dl
mov dl, byte [esi + 0x46e0fb]
movzx esi, byte [ebp + 0x5f]
mov byte [ebp + 0x1b], dl
movzx edx, byte [ebp + 0x5a]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x5b]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x5c]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x5d]
lea edx, [esi + edx*2]
movzx esi, byte [ebp + 0x5e]
movzx esi, byte [esi + edx*2 + 0x46df38]
shl esi, 2
mov dl, byte [esi + 0x46e0f8]
mov byte [ebp + 0x1c], dl
mov dl, byte [esi + 0x46e0f9]
mov byte [ebp + 0x1d], dl
mov dl, byte [esi + 0x46e0fa]
mov byte [ebp + 0x1e], dl
mov dl, byte [esi + 0x46e0fb]
mov byte [ebp + 0x1f], dl
mov dl, byte [ebp + 0xf]
mov byte [ebp + 0x30], dl
mov dl, byte [ebp + 6]
mov byte [ebp + 0x31], dl
mov dl, byte [ebp + 0x13]
mov byte [ebp + 0x32], dl
mov dl, byte [ebp + 0x14]
mov byte [ebp + 0x33], dl
mov dl, byte [ebp + 0x1c]
mov byte [ebp + 0x34], dl
mov dl, byte [ebp + 0xb]
mov byte [ebp + 0x35], dl
mov dl, byte [ebp + 0x1b]
mov byte [ebp + 0x36], dl
mov dl, byte [ebp + 0x10]
mov byte [ebp + 0x37], dl
mov dl, byte [ebp + 0xe]
mov byte [ebp + 0x39], dl
mov dl, byte [ebp + 0x16]
mov byte [ebp + 0x3a], dl
mov dl, byte [ebp + 0x19]
mov byte [ebp + 0x3b], dl
mov dl, byte [ebp + 4]
mov byte [ebp + 0x3c], dl
mov dl, byte [ebp + 0x11]
mov byte [ebp + 0x3d], dl
mov dl, byte [ebp + 0x1e]
mov byte [ebp + 0x3e], dl
mov dl, byte [ebp + 9]
mov byte [ebp + 0x3f], dl
mov dl, byte [ebp + 1]
mov byte [ebp + 0x40], dl
mov dl, byte [ebp + 7]
mov byte [ebp + 0x41], dl
mov dl, byte [ebp + 0x17]
mov byte [ebp + 0x42], dl
mov dl, byte [ebp + 0xd]
mov byte [ebp + 0x43], dl
mov dl, byte [ebp + 0x1f]
mov byte [ebp + 0x44], dl
mov dl, byte [ebp + 0x1a]
mov byte [ebp + 0x45], dl
mov dl, byte [ebp + 2]
mov byte [ebp + 0x46], dl
mov dl, byte [ebp + 8]
mov byte [ebp + 0x47], dl
mov dl, byte [ebp + 0x12]
mov byte [ebp + 0x48], dl
mov dl, byte [ebp + 0xc]
mov byte [ebp + 0x49], dl
mov dl, byte [ebp + 0x1d]
mov byte [ebp + 0x4a], dl
mov dl, byte [ebp + 5]
mov byte [ebp + 0x4e], al
mov al, byte [ebp + 0x18]
mov byte [ebp + 0x4b], dl
mov dl, byte [ebp + 0x15]
mov byte [ebp + 0x4f], al
mov byte [ebp + 0x38], bl
mov byte [ebp + 0x4c], dl
mov byte [ebp + 0x4d], cl
xor eax, eax
mov dl, byte [ebp + eax + 0x30]
lea ecx, [ebp + eax - 0x90]
xor dl, byte [ecx]
inc eax
cmp eax, 0x20
mov byte [ebp + eax - 0x71], dl
mov dl, byte [ebp + eax - 0x51]
mov byte [ecx], dl
jl 0x4028f7
inc dword [ebp - 0xcc]
dec dword [ebp + 0x60]
cmp dword [ebp + 0x60], 0x46e178
jg 0x40224c
xor esi, esi
lea eax, [ebp + esi - 0x70]
movzx ecx, byte [eax - 0x20]
mov dl, byte [eax]
inc esi
cmp esi, 0x20
mov byte [eax - 0x20], dl
mov byte [eax], cl
jl 0x40292c
mov al, byte [ebp - 0x69]
mov byte [ebp - 0x50], al
mov al, byte [ebp - 0x89]
mov byte [ebp - 0x4f], al
mov al, byte [ebp - 0x61]
mov byte [ebp - 0x4e], al
mov al, byte [ebp - 0x81]
mov byte [ebp - 0x4d], al
mov al, byte [ebp - 0x59]
mov byte [ebp - 0x4c], al
mov al, byte [ebp - 0x79]
mov byte [ebp - 0x4b], al
mov al, byte [ebp - 0x51]
mov byte [ebp - 0x4a], al
mov al, byte [ebp - 0x71]
mov byte [ebp - 0x49], al
mov al, byte [ebp - 0x6a]
mov byte [ebp - 0x48], al
mov al, byte [ebp - 0x8a]
mov byte [ebp - 0x47], al
mov al, byte [ebp - 0x62]
mov byte [ebp - 0x46], al
mov al, byte [ebp - 0x82]
mov byte [ebp - 0x45], al
mov al, byte [ebp - 0x5a]
mov byte [ebp - 0x44], al
mov al, byte [ebp - 0x7a]
mov byte [ebp - 0x43], al
mov al, byte [ebp - 0x52]
mov byte [ebp - 0x42], al
mov al, byte [ebp - 0x72]
mov byte [ebp - 0x41], al
mov al, byte [ebp - 0x6b]
mov byte [ebp - 0x40], al
mov al, byte [ebp - 0x8b]
mov byte [ebp - 0x3f], al
mov al, byte [ebp - 0x63]
mov byte [ebp - 0x3e], al
mov al, byte [ebp - 0x83]
mov byte [ebp - 0x3d], al
mov al, byte [ebp - 0x5b]
mov byte [ebp - 0x3c], al
mov al, byte [ebp - 0x7b]
mov byte [ebp - 0x3b], al
mov al, byte [ebp - 0x53]
mov byte [ebp - 0x3a], al
mov al, byte [ebp - 0x73]
mov byte [ebp - 0x39], al
mov al, byte [ebp - 0x6c]
mov byte [ebp - 0x38], al
mov al, byte [ebp - 0x8c]
mov byte [ebp - 0x37], al
mov al, byte [ebp - 0x64]
mov byte [ebp - 0x36], al
mov al, byte [ebp - 0x84]
mov byte [ebp - 0x35], al
mov al, byte [ebp - 0x5c]
mov byte [ebp - 0x34], al
mov al, byte [ebp - 0x7c]
mov byte [ebp - 0x33], al
mov al, byte [ebp - 0x54]
mov byte [ebp - 0x32], al
mov al, byte [ebp - 0x74]
mov byte [ebp - 0x31], al
mov al, byte [ebp - 0x6d]
mov byte [ebp - 0x30], al
mov al, byte [ebp - 0x8d]
mov byte [ebp - 0x2f], al
mov al, byte [ebp - 0x65]
mov byte [ebp - 0x2e], al
mov al, byte [ebp - 0x85]
mov byte [ebp - 0x2d], al
mov al, byte [ebp - 0x5d]
mov byte [ebp - 0x2c], al
mov al, byte [ebp - 0x7d]
mov byte [ebp - 0x2b], al
mov al, byte [ebp - 0x55]
mov byte [ebp - 0x2a], al
mov al, byte [ebp - 0x75]
mov byte [ebp - 0x29], al
mov al, byte [ebp - 0x6e]
mov byte [ebp - 0x28], al
mov al, byte [ebp - 0x8e]
mov byte [ebp - 0x27], al
mov al, byte [ebp - 0x66]
mov byte [ebp - 0x26], al
mov al, byte [ebp - 0x86]
mov byte [ebp - 0x25], al
mov al, byte [ebp - 0x5e]
mov byte [ebp - 0x24], al
mov al, byte [ebp - 0x7e]
mov byte [ebp - 0x23], al
mov al, byte [ebp - 0x56]
mov byte [ebp - 0x22], al
mov al, byte [ebp - 0x76]
mov byte [ebp - 0x21], al
mov al, byte [ebp - 0x6f]
mov byte [ebp - 0x20], al
mov al, byte [ebp - 0x8f]
mov byte [ebp - 0x1f], al
mov al, byte [ebp - 0x67]
mov byte [ebp - 0x1e], al
mov al, byte [ebp - 0x87]
mov byte [ebp - 0x1d], al
mov al, byte [ebp - 0x5f]
mov byte [ebp - 0x1c], al
mov al, byte [ebp - 0x7f]
mov byte [ebp - 0x1b], al
mov al, byte [ebp - 0x57]
mov byte [ebp - 0x1a], al
mov al, byte [ebp - 0x77]
mov byte [ebp - 0x19], al
mov al, byte [ebp - 0x70]
mov byte [ebp - 0x18], al
mov al, byte [ebp - 0x90]
mov byte [ebp - 0x17], al
mov al, byte [ebp - 0x68]
mov byte [ebp - 0x16], al
mov al, byte [ebp - 0x88]
mov byte [ebp - 0x15], al
mov al, byte [ebp - 0x60]
mov byte [ebp - 0x14], al
mov al, byte [ebp - 0x80]
mov byte [ebp - 0x13], al
mov al, byte [ebp - 0x58]
mov byte [ebp - 0x12], al
mov al, byte [ebp - 0x78]
mov byte [ebp - 0x11], al
xor edi, edi
lea esi, [ebp - 0x49]
mov eax, dword [ebp + 0x74]
add eax, edi
xor ecx, ecx
mov byte [eax], 0
xor dl, dl
mov bl, byte [ecx + esi - 7]
add bl, dl
shl bl, 1
inc ecx
cmp ecx, 7
mov dl, bl
jl 0x402b02
mov cl, byte [esi]
add cl, dl
add esi, 8
inc edi
cmp edi, 8
mov byte [eax], cl
jl 0x402af6
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret