Function at 0x46c080
Capabilities:
Encrypt data using aes
Reference aes constants
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0x10]
sub esp, 0x1c
mov eax, ecx
push ebx
sub eax, 0x80
je 0x46c0bd
sub eax, 0x40
je 0x46c0b2
sub eax, 0x40
je 0x46c0a7
mov eax, 0xffffffe0
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
mov dword [ebx], 0xe
jmp 0x46c0c6
mov ebx, dword [ebp + 8]
mov dword [ebx], 0xc
jmp 0x46c0c6
mov ebx, dword [ebp + 8]
mov dword [ebx], 0xa
push esi
push edi
shr ecx, 5
lea eax, [ebx + 8]
xor edi, edi
mov dword [ebx + 4], eax
test ecx, ecx
je 0x46c10d
mov esi, dword [ebp + 0xc]
mov ebx, ecx
add esi, 2
nop
movzx edx, byte [esi + 1]
lea esi, [esi + 4]
movzx ecx, byte [esi - 4]
shl edx, 8
or edx, ecx
movzx ecx, byte [esi - 5]
shl edx, 8
or edx, ecx
movzx ecx, byte [esi - 6]
shl edx, 8
or edx, ecx
mov dword [eax + edi*4], edx
inc edi
cmp edi, ebx
jb 0x46c0e0
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx]
sub ecx, 0xa
je 0x46cafc
sub ecx, 2
je 0x46c70e
sub ecx, 2
jne 0x46cec6
mov edx, dword [eax + 0x1c]
movzx ecx, dl
mov ebx, dword [eax + 4]
mov edi, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
movzx esi, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x1f]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
movzx ecx, byte [eax + 0x1e]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
movzx ecx, byte [eax + 0x1d]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
mov ecx, dword [eax + 8]
xor esi, dword [eax]
xor esi, 1
xor ebx, esi
mov dword [eax + 0x20], esi
xor ecx, ebx
mov dword [eax + 0x24], ebx
xor edi, ecx
mov dword [ebp - 8], ecx
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], edi
movzx ecx, byte [eax + 0x2f]
mov dword [ebp + 0x10], edi
movzx edi, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x2e]
shl edi, 8
movzx ecx, byte [ecx + str.cw]
xor edi, ecx
movzx ecx, byte [eax + 0x2d]
shl edi, 8
movzx ecx, byte [ecx + str.cw]
xor edi, ecx
mov ecx, dword [ebp + 0x10]
movzx ecx, cl
shl edi, 8
movzx ecx, byte [ecx + str.cw]
xor edi, ecx
mov ecx, dword [eax + 0x14]
xor edi, dword [eax + 0x10]
xor ecx, edi
mov dword [eax + 0x30], edi
xor edx, ecx
mov dword [ebp - 0xc], ecx
mov dword [eax + 0x34], ecx
mov ecx, edx
mov dword [eax + 0x38], ecx
xor ecx, dword [eax + 0x1c]
mov dword [ebp - 0x10], ecx
mov dword [eax + 0x3c], ecx
movzx ecx, cl
mov dword [ebp - 4], edx
movzx edx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x3f]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0x3e]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0x3d]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
mov ecx, dword [ebp - 8]
xor edx, esi
xor edx, 2
xor ebx, edx
mov dword [eax + 0x40], edx
xor ecx, ebx
mov dword [ebp - 0x14], ebx
mov dword [eax + 0x44], ebx
mov dword [ebp - 8], ecx
mov ebx, dword [ebp + 0x10]
xor ebx, ecx
mov dword [eax + 0x48], ecx
mov dword [eax + 0x4c], ebx
movzx ecx, byte [eax + 0x4f]
mov dword [ebp + 0x10], ebx
movzx ebx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x4e]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0x4d]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
mov ecx, dword [ebp + 0x10]
movzx ecx, cl
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
mov ecx, dword [ebp - 0xc]
xor ebx, edi
xor ecx, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xc], ecx
mov dword [eax + 0x50], ebx
mov ebx, dword [ebp - 4]
xor ebx, ecx
mov dword [eax + 0x54], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], ecx
mov dword [eax + 0x5c], ecx
movzx ecx, cl
mov dword [eax + 0x58], ebx
movzx ebx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x5f]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0x5e]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0x5d]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
xor ebx, edx
xor ebx, 4
mov edx, ebx
mov dword [ebp - 0x1c], ebx
xor edx, dword [ebp - 0x14]
mov esi, edx
mov dword [eax + 0x60], ebx
xor esi, dword [ebp - 8]
mov ebx, esi
mov dword [eax + 0x64], edx
xor ebx, dword [ebp + 0x10]
mov dword [eax + 0x6c], ebx
movzx ecx, byte [eax + 0x6f]
mov dword [eax + 0x68], esi
movzx edi, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x6e]
shl edi, 8
movzx ecx, byte [ecx + str.cw]
xor edi, ecx
movzx ecx, byte [eax + 0x6d]
shl edi, 8
movzx ecx, byte [ecx + str.cw]
xor edi, ecx
movzx ecx, bl
shl edi, 8
movzx ecx, byte [ecx + str.cw]
xor edi, ecx
xor edi, dword [ebp - 0x18]
mov dword [ebp - 0x18], edi
mov dword [eax + 0x70], edi
xor edi, dword [ebp - 0xc]
mov dword [eax + 0x74], edi
mov ecx, edi
xor ecx, dword [ebp - 4]
mov dword [ebp - 0x14], ecx
mov dword [eax + 0x78], ecx
xor ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], ecx
mov dword [eax + 0x7c], ecx
movzx ecx, cl
movzx ecx, byte [ecx + str.cw]
shl ecx, 8
mov dword [ebp + 0x10], ecx
movzx ecx, byte [eax + 0x7f]
movzx ecx, byte [ecx + str.cw]
xor dword [ebp + 0x10], ecx
movzx ecx, byte [eax + 0x7e]
shl dword [ebp + 0x10], 8
movzx ecx, byte [ecx + str.cw]
xor dword [ebp + 0x10], ecx
movzx ecx, byte [eax + 0x7d]
shl dword [ebp + 0x10], 8
movzx ecx, byte [ecx + str.cw]
xor dword [ebp + 0x10], ecx
mov ecx, dword [ebp + 0x10]
xor ecx, dword [ebp - 0x1c]
xor ecx, 8
mov dword [ebp + 0x10], ecx
mov dword [eax + 0x80], ecx
xor ecx, edx
mov edx, ecx
mov dword [ebp - 0xc], ecx
mov dword [eax + 0x84], ecx
xor edx, esi
mov ecx, edx
mov dword [eax + 0x88], edx
xor ecx, ebx
mov dword [ebp - 0x1c], ecx
mov dword [eax + 0x8c], ecx
movzx ecx, byte [eax + 0x8f]
mov ebx, dword [ebp - 0x1c]
movzx esi, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x8e]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
movzx ecx, byte [eax + 0x8d]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
movzx ecx, bl
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
xor esi, dword [ebp - 0x18]
mov dword [ebp - 0x1c], esi
mov dword [eax + 0x90], esi
xor esi, edi
mov edi, esi
mov dword [eax + 0x94], esi
xor edi, dword [ebp - 0x14]
mov ecx, edi
mov dword [eax + 0x98], edi
xor ecx, dword [ebp - 0x10]
mov dword [ebp - 0x18], ecx
mov dword [eax + 0x9c], ecx
movzx ecx, cl
movzx ecx, byte [ecx + str.cw]
shl ecx, 8
mov dword [ebp - 4], ecx
movzx ecx, byte [eax + 0x9f]
movzx ecx, byte [ecx + str.cw]
xor dword [ebp - 4], ecx
movzx ecx, byte [eax + 0x9e]
shl dword [ebp - 4], 8
movzx ecx, byte [ecx + str.cw]
xor dword [ebp - 4], ecx
movzx ecx, byte [eax + 0x9d]
shl dword [ebp - 4], 8
movzx ecx, byte [ecx + str.cw]
xor dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp + 0x10]
xor ecx, 0x10
mov dword [ebp - 4], ecx
mov dword [eax + 0xa0], ecx
xor ecx, dword [ebp - 0xc]
mov dword [ebp + 0x10], ecx
mov dword [eax + 0xa4], ecx
xor ecx, edx
mov edx, ecx
mov dword [ebp - 0x14], ecx
mov dword [eax + 0xa8], ecx
xor edx, ebx
mov dword [eax + 0xac], edx
movzx ecx, byte [eax + 0xaf]
movzx ebx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0xae]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0xad]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, dl
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
xor ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], ebx
mov dword [eax + 0xb0], ebx
xor ebx, esi
mov esi, ebx
mov dword [eax + 0xb4], ebx
xor esi, edi
mov ecx, esi
mov dword [eax + 0xb8], esi
xor ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov dword [eax + 0xbc], ecx
movzx ecx, cl
movzx edi, byte [ecx + str.cw]
movzx ecx, byte [eax + 0xbf]
shl edi, 8
movzx ecx, byte [ecx + str.cw]
xor edi, ecx
movzx ecx, byte [eax + 0xbe]
shl edi, 8
movzx ecx, byte [ecx + str.cw]
xor edi, ecx
movzx ecx, byte [eax + 0xbd]
shl edi, 8
movzx ecx, byte [ecx + str.cw]
xor edi, ecx
xor edi, dword [ebp - 4]
xor edi, 0x20
mov dword [ebp - 0xc], edi
mov dword [eax + 0xc0], edi
xor edi, dword [ebp + 0x10]
mov ecx, edi
mov dword [eax + 0xc4], edi
xor ecx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
mov dword [eax + 0xc8], ecx
xor ecx, edx
mov dword [ebp - 0x1c], ecx
mov dword [eax + 0xcc], ecx
movzx ecx, byte [eax + 0xcf]
movzx edx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0xce]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0xcd]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
shl edx, 8
mov dword [ebp + 0x10], edx
mov edx, dword [ebp - 0x1c]
movzx ecx, dl
movzx ecx, byte [ecx + str.cw]
xor dword [ebp + 0x10], ecx
mov ecx, dword [ebp + 0x10]
xor ecx, dword [ebp - 0x10]
mov dword [ebp + 0x10], ecx
mov dword [eax + 0xd0], ecx
xor ecx, ebx
mov dword [ebp - 0x1c], ecx
mov dword [eax + 0xd4], ecx
xor ecx, esi
mov dword [ebp - 0x10], ecx
mov dword [eax + 0xd8], ecx
xor ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov dword [eax + 0xdc], ecx
movzx ecx, cl
movzx ebx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0xdf]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0xde]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0xdd]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
xor ebx, dword [ebp - 0xc]
xor ebx, 0x40
mov dword [eax + 0xe0], ebx
xor ebx, edi
mov dword [eax + 0xe4], ebx
xor ebx, dword [ebp - 0x14]
mov dword [eax + 0xe8], ebx
xor ebx, edx
mov dword [eax + 0xec], ebx
movzx ecx, byte [eax + 0xef]
pop edi
pop esi
movzx edx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0xee]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0xed]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, bl
shl edx, 8
pop ebx
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
xor edx, dword [ebp + 0x10]
mov dword [eax + 0xf0], edx
xor edx, dword [ebp - 0x1c]
mov dword [eax + 0xf4], edx
xor edx, dword [ebp - 0x10]
mov dword [eax + 0xf8], edx
xor edx, dword [ebp - 0x18]
mov dword [eax + 0xfc], edx
xor eax, eax
mov esp, ebp
pop ebp
ret
mov ecx, dword [eax + 0x14]
movzx ecx, cl
mov edx, dword [eax + 4]
mov esi, dword [eax + 8]
mov edi, dword [eax + 0xc]
movzx ebx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x17]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0x16]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0x15]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
mov ecx, dword [eax + 0x14]
xor ebx, dword [eax]
xor ebx, 1
xor edx, ebx
mov dword [ebp - 0x1c], ebx
xor esi, edx
mov dword [eax + 0x18], ebx
mov ebx, dword [eax + 0x10]
xor edi, esi
xor ebx, edi
mov dword [eax + 0x1c], edx
xor ecx, ebx
mov dword [eax + 0x20], esi
mov dword [ebp - 0x18], ecx
mov dword [eax + 0x2c], ecx
movzx ecx, cl
mov dword [eax + 0x24], edi
mov dword [eax + 0x28], ebx
movzx ecx, byte [ecx + str.cw]
shl ecx, 8
mov dword [ebp + 0x10], ecx
movzx ecx, byte [eax + 0x2f]
movzx ecx, byte [ecx + str.cw]
xor dword [ebp + 0x10], ecx
movzx ecx, byte [eax + 0x2e]
shl dword [ebp + 0x10], 8
movzx ecx, byte [ecx + str.cw]
xor dword [ebp + 0x10], ecx
movzx ecx, byte [eax + 0x2d]
shl dword [ebp + 0x10], 8
movzx ecx, byte [ecx + str.cw]
xor dword [ebp + 0x10], ecx
mov ecx, dword [ebp + 0x10]
xor ecx, dword [ebp - 0x1c]
xor ecx, 2
mov dword [ebp + 0x10], ecx
mov dword [eax + 0x30], ecx
xor ecx, edx
mov edx, ecx
mov dword [ebp - 0x1c], ecx
xor edx, esi
mov dword [eax + 0x34], ecx
mov esi, edx
mov dword [eax + 0x38], edx
xor esi, edi
mov edi, esi
mov dword [eax + 0x3c], esi
xor edi, ebx
mov ebx, edi
mov dword [eax + 0x40], edi
xor ebx, dword [ebp - 0x18]
movzx ecx, bl
mov dword [eax + 0x44], ebx
movzx ecx, byte [ecx + str.cw]
shl ecx, 8
mov dword [ebp - 4], ecx
movzx ecx, byte [eax + 0x47]
movzx ecx, byte [ecx + str.cw]
xor dword [ebp - 4], ecx
movzx ecx, byte [eax + 0x46]
shl dword [ebp - 4], 8
movzx ecx, byte [ecx + str.cw]
xor dword [ebp - 4], ecx
movzx ecx, byte [eax + 0x45]
shl dword [ebp - 4], 8
movzx ecx, byte [ecx + str.cw]
xor dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp + 0x10]
xor ecx, 4
mov dword [ebp - 4], ecx
mov dword [eax + 0x48], ecx
xor ecx, dword [ebp - 0x1c]
mov dword [ebp + 0x10], ecx
mov dword [eax + 0x4c], ecx
xor ecx, edx
mov edx, ecx
mov dword [ebp - 0x1c], ecx
xor edx, esi
mov dword [eax + 0x50], ecx
mov esi, edx
mov dword [eax + 0x54], edx
xor esi, edi
mov ecx, esi
mov dword [eax + 0x58], esi
xor ecx, ebx
mov dword [ebp - 0x18], ecx
mov dword [eax + 0x5c], ecx
movzx ecx, cl
movzx ebx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x5f]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0x5e]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0x5d]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
xor ebx, dword [ebp - 4]
xor ebx, 8
mov edi, ebx
mov dword [ebp - 0x14], ebx
xor edi, dword [ebp + 0x10]
mov dword [eax + 0x60], ebx
mov ebx, edi
xor ebx, dword [ebp - 0x1c]
mov ecx, ebx
mov dword [eax + 0x64], edi
xor ecx, edx
mov dword [eax + 0x68], ebx
mov edx, ecx
mov dword [ebp + 0x10], ecx
xor edx, esi
mov dword [eax + 0x6c], ecx
mov ecx, edx
mov dword [eax + 0x70], edx
xor ecx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
mov dword [eax + 0x74], ecx
movzx ecx, cl
movzx esi, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x77]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
movzx ecx, byte [eax + 0x76]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
movzx ecx, byte [eax + 0x75]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
xor esi, dword [ebp - 0x14]
xor esi, 0x10
mov dword [ebp - 0x18], esi
mov dword [eax + 0x78], esi
xor esi, edi
mov dword [eax + 0x7c], esi
mov edi, esi
xor edi, ebx
mov ebx, edi
mov dword [eax + 0x80], edi
xor ebx, dword [ebp + 0x10]
mov ecx, ebx
mov dword [eax + 0x84], ebx
xor ecx, edx
mov edx, ecx
mov dword [ebp - 0x14], ecx
xor edx, dword [ebp - 0x1c]
mov dword [eax + 0x88], ecx
movzx ecx, dl
mov dword [eax + 0x8c], edx
movzx ecx, byte [ecx + str.cw]
shl ecx, 8
mov dword [ebp + 0x10], ecx
movzx ecx, byte [eax + 0x8f]
movzx ecx, byte [ecx + str.cw]
xor dword [ebp + 0x10], ecx
shl dword [ebp + 0x10], 8
movzx ecx, byte [eax + 0x8e]
movzx ecx, byte [ecx + str.cw]
xor dword [ebp + 0x10], ecx
movzx ecx, byte [eax + 0x8d]
shl dword [ebp + 0x10], 8
movzx ecx, byte [ecx + str.cw]
xor dword [ebp + 0x10], ecx
mov ecx, dword [ebp + 0x10]
xor ecx, dword [ebp - 0x18]
xor ecx, 0x20
mov dword [ebp + 0x10], ecx
mov dword [eax + 0x90], ecx
xor ecx, esi
mov esi, ecx
mov dword [ebp - 0x1c], ecx
xor esi, edi
mov dword [eax + 0x94], ecx
mov edi, esi
mov dword [eax + 0x98], esi
xor edi, ebx
mov ebx, edi
mov dword [eax + 0x9c], edi
xor ebx, dword [ebp - 0x14]
mov ecx, ebx
mov dword [eax + 0xa0], ebx
xor ecx, edx
mov dword [ebp - 0x18], ecx
mov dword [eax + 0xa4], ecx
movzx ecx, cl
movzx edx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0xa7]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0xa6]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0xa5]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
xor edx, dword [ebp + 0x10]
xor edx, 0x40
mov dword [ebp + 0x10], edx
mov dword [eax + 0xa8], edx
xor edx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], edx
mov dword [eax + 0xac], edx
xor edx, esi
mov esi, edx
mov dword [ebp - 0x14], edx
xor esi, edi
mov dword [eax + 0xb0], edx
mov edi, esi
mov dword [eax + 0xb4], esi
xor edi, ebx
mov ebx, edi
mov dword [eax + 0xb8], edi
xor ebx, dword [ebp - 0x18]
mov dword [eax + 0xbc], ebx
movzx ecx, bl
movzx edx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0xbf]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0xbe]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0xbd]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
xor edx, dword [ebp + 0x10]
xor edx, 0x80
mov dword [eax + 0xc0], edx
xor edx, dword [ebp - 0x1c]
mov dword [eax + 0xc4], edx
xor edx, dword [ebp - 0x14]
mov dword [eax + 0xc8], edx
xor edx, esi
mov dword [eax + 0xcc], edx
xor edx, edi
mov dword [eax + 0xd0], edx
xor edx, ebx
pop edi
pop esi
mov dword [eax + 0xd4], edx
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [eax + 0xc]
movzx ecx, dl
mov esi, dword [eax + 4]
mov edi, dword [eax + 8]
movzx ebx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0xf]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0xe]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0xd]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
xor ebx, dword [eax]
xor ebx, 1
xor esi, ebx
mov dword [ebp + 0x10], ebx
mov dword [eax + 0x10], ebx
xor edi, esi
mov ebx, edi
mov dword [eax + 0x14], esi
xor ebx, edx
mov dword [eax + 0x18], edi
movzx ecx, bl
mov dword [eax + 0x1c], ebx
movzx edx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x1f]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0x1e]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0x1d]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
xor edx, dword [ebp + 0x10]
xor edx, 2
mov dword [ebp + 0x10], edx
mov dword [eax + 0x20], edx
xor edx, esi
mov esi, edx
mov dword [eax + 0x24], edx
xor esi, edi
mov ecx, esi
mov dword [eax + 0x28], esi
xor ecx, ebx
mov dword [ebp - 0x1c], ecx
mov dword [eax + 0x2c], ecx
movzx ecx, cl
movzx ebx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x2f]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0x2e]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0x2d]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
xor ebx, dword [ebp + 0x10]
xor ebx, 4
mov edi, ebx
mov dword [ebp + 0x10], ebx
xor edi, edx
mov dword [eax + 0x30], ebx
mov edx, edi
mov dword [eax + 0x34], edi
xor edx, esi
mov ebx, edx
mov dword [eax + 0x38], edx
xor ebx, dword [ebp - 0x1c]
movzx ecx, bl
mov dword [eax + 0x3c], ebx
movzx esi, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x3f]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
movzx ecx, byte [eax + 0x3e]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
movzx ecx, byte [eax + 0x3d]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
xor esi, dword [ebp + 0x10]
xor esi, 8
mov dword [ebp + 0x10], esi
mov dword [eax + 0x40], esi
xor esi, edi
mov edi, esi
mov dword [eax + 0x44], esi
xor edi, edx
mov edx, edi
mov dword [eax + 0x48], edi
xor edx, ebx
movzx ecx, dl
mov dword [eax + 0x4c], edx
movzx ebx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x4f]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0x4e]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0x4d]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
xor ebx, dword [ebp + 0x10]
xor ebx, 0x10
mov dword [ebp + 0x10], ebx
mov dword [eax + 0x50], ebx
xor ebx, esi
mov esi, ebx
mov dword [eax + 0x54], ebx
xor esi, edi
mov ecx, esi
mov dword [eax + 0x58], esi
xor ecx, edx
mov dword [ebp - 0x1c], ecx
mov dword [eax + 0x5c], ecx
movzx ecx, cl
movzx edx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x5f]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0x5e]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0x5d]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
xor edx, dword [ebp + 0x10]
xor edx, 0x20
mov dword [ebp + 0x10], edx
mov dword [eax + 0x60], edx
xor edx, ebx
mov edi, edx
mov dword [eax + 0x64], edx
xor edi, esi
mov ebx, edi
mov dword [eax + 0x68], edi
xor ebx, dword [ebp - 0x1c]
mov dword [eax + 0x6c], ebx
movzx ecx, bl
movzx esi, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x6f]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
movzx ecx, byte [eax + 0x6e]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
movzx ecx, byte [eax + 0x6d]
shl esi, 8
movzx ecx, byte [ecx + str.cw]
xor esi, ecx
xor esi, dword [ebp + 0x10]
xor esi, 0x40
mov ecx, esi
mov dword [eax + 0x70], esi
xor ecx, edx
mov dword [ebp - 0x1c], ecx
mov dword [eax + 0x74], ecx
xor ecx, edi
mov dword [ebp + 0x10], ecx
mov dword [eax + 0x78], ecx
xor ecx, ebx
mov dword [ebp - 0x10], ecx
mov dword [eax + 0x7c], ecx
movzx ecx, cl
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x10]
movzx edx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x7f]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0x7e]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0x7d]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
mov ecx, dword [ebp + 0x10]
xor edx, esi
xor edx, 0x80
xor edi, edx
mov dword [eax + 0x80], edx
xor ecx, edi
mov dword [eax + 0x84], edi
xor ebx, ecx
mov dword [ebp + 0x10], ecx
mov dword [eax + 0x8c], ebx
mov dword [eax + 0x88], ecx
movzx ecx, bl
mov dword [ebp - 0x10], ebx
movzx ebx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x8f]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0x8e]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
movzx ecx, byte [eax + 0x8d]
shl ebx, 8
movzx ecx, byte [ecx + str.cw]
xor ebx, ecx
xor ebx, edx
xor ebx, 0x1b
mov esi, ebx
mov dword [ebp - 0x1c], ebx
xor esi, edi
mov dword [eax + 0x90], ebx
mov edi, esi
mov dword [eax + 0x94], esi
xor edi, dword [ebp + 0x10]
mov ebx, edi
mov dword [eax + 0x98], edi
xor ebx, dword [ebp - 0x10]
mov dword [eax + 0x9c], ebx
movzx ecx, bl
movzx edx, byte [ecx + str.cw]
movzx ecx, byte [eax + 0x9f]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0x9e]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
movzx ecx, byte [eax + 0x9d]
shl edx, 8
movzx ecx, byte [ecx + str.cw]
xor edx, ecx
xor edx, dword [ebp - 0x1c]
xor edx, 0x36
mov dword [eax + 0xa0], edx
xor edx, esi
mov dword [eax + 0xa4], edx
xor edx, edi
mov dword [eax + 0xa8], edx
xor edx, ebx
mov dword [eax + 0xac], edx
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret