Function at 0x466690
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x134
mov eax, dword [0x517728]
xor eax, esp
mov dword [esp + 0x130], eax
push ebx
push ebp
push esi
push edi
mov ecx, dword [esp + 0x148]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov esi, dword [esp + 0x14c]
mov dword [esp + 0x7c], eax
add esi, 2
mov dword [esp + 0x80], edx
xor ebx, ebx
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x1c], edx
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x20], edx
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x40], edx
mov edx, dword [ecx + 0x1c]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x28], edx
mov edx, dword [ecx + 0x24]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x18], edx
mov edx, dword [ecx + 0x2c]
mov edi, eax
mov dword [esp + 0xac], edx
mov eax, dword [ecx + 0x28]
mov dword [esp + 0xa8], eax
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x30]
mov dword [esp + 0x48], edx
mov edx, dword [ecx + 0x34]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edx
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 0x3c]
mov dword [esp + 0x84], ecx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x10], ebx
movzx eax, byte [esi - 2]
cdq
mov ebx, eax
mov ebp, edx
shld ebp, ebx, 8
movzx eax, byte [esi - 1]
shl ebx, 8
cdq
or ebx, eax
or ebp, edx
movzx eax, byte [esi]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 1]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 2]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 3]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 4]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 5]
mov esi, dword [esp + 0x18]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
mov dword [esp + 0x54], ebp
mov eax, dword [esp + 0x10]
mov edx, esi
mov dword [esp + 0x14], ebx
mov dword [esp + eax + 0xc4], ebp
mov ebp, esi
mov dword [esp + eax + 0xc0], ebx
xor ebx, ebx
mov eax, edi
shr ebp, 9
shld edx, eax, 0x17
or ebx, edx
shl eax, 0x17
or ebp, eax
mov dword [esp + 0x60], ebx
mov eax, edi
mov dword [esp + 0x64], ebp
mov edx, esi
mov ebp, edi
shrd eax, edx, 0x12
xor ebx, ebx
shl ebp, 0xe
shr edx, 0x12
or ebx, eax
mov eax, dword [esp + 0x58]
or ebp, edx
mov edx, dword [esp + 0x18]
xor esi, esi
shrd eax, edx, 0xe
shl edi, 0x12
shr edx, 0xe
or esi, eax
or edi, edx
mov edx, dword [esp + 0x2c]
xor edx, dword [esp + 0x44]
xor esi, ebx
and edx, dword [esp + 0x58]
xor edi, ebp
xor edx, dword [esp + 0x2c]
xor esi, dword [esp + 0x64]
xor edi, dword [esp + 0x60]
mov eax, dword [esp + 0x30]
xor eax, dword [esp + 0x48]
and eax, dword [esp + 0x18]
xor eax, dword [esp + 0x30]
add edx, esi
mov ebx, dword [esp + 0x10]
adc eax, edi
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
mov ebp, edi
add edx, dword [ebx + 0x4f5738]
adc eax, dword [ebx + 0x4f573c]
add edx, dword [esp + 0x14]
adc eax, dword [esp + 0x54]
add edx, dword [esp + 0x4c]
mov dword [esp + 0x4c], edx
adc eax, dword [esp + 0x50]
add dword [esp + 0x24], edx
mov edx, esi
mov dword [esp + 0x14], eax
adc dword [esp + 0x28], eax
xor ebx, ebx
shl ebp, 4
mov eax, edi
shrd eax, edx, 0x1c
or ebx, eax
shr edx, 0x1c
or ebp, edx
mov dword [esp + 0x60], ebx
mov eax, edi
mov dword [esp + 0x50], ebp
mov edx, esi
xor ebp, ebp
shld edx, eax, 0x1e
mov ebx, esi
or ebp, edx
shl eax, 0x1e
shr ebx, 2
mov edx, esi
or ebx, eax
mov dword [esp + 0x64], ebp
mov eax, edi
mov dword [esp + 0x54], ebx
shld edx, eax, 0x19
xor ebx, ebx
mov ebp, esi
mov esi, dword [esp + 0x20]
or ebx, edx
mov edx, dword [esp + 0x38]
mov edi, edx
xor edi, dword [esp + 0x34]
xor esi, dword [esp + 0x1c]
and edx, dword [esp + 0x34]
and edi, dword [esp + 0x3c]
and esi, dword [esp + 0x40]
xor edi, edx
xor ebx, dword [esp + 0x64]
xor ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
shl eax, 0x19
shr ebp, 7
or ebp, eax
mov eax, dword [esp + 0x20]
and eax, dword [esp + 0x1c]
xor ebp, dword [esp + 0x54]
xor esi, eax
xor ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x14]
add edi, ebp
adc esi, ebx
mov ebx, dword [esp + 0x2c]
add edx, edi
mov dword [esp + 0x4c], ebx
adc eax, esi
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], esi
add eax, 8
mov esi, dword [esp + 0x5c]
add esi, 8
mov dword [esp + 0x58], edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x10], eax
cmp eax, 0x80
jb 0x4667a8
mov ecx, 0x11
mov dword [esp + 0x5c], 0x4f57b8
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], 0x40
lea eax, [ecx - 3]
xor ebx, ebx
and eax, 0xf
mov edi, dword [esp + eax*8 + 0xc4]
mov edx, edi
mov esi, dword [esp + eax*8 + 0xc0]
mov ebp, esi
mov eax, esi
shl ebp, 0xd
shrd eax, edx, 0x13
mov dword [esp + 0x54], esi
or ebx, eax
shr edx, 0x13
or ebp, edx
mov dword [esp + 0x68], ebx
mov eax, esi
mov dword [esp + 0x6c], ebp
mov edx, edi
mov dword [esp + 0x74], edi
shld edx, eax, 3
mov ebp, edi
xor ebx, ebx
shl eax, 3
or ebx, edx
shr ebp, 0x1d
or ebp, eax
mov dword [esp + 0x70], ebx
mov eax, ecx
mov dword [esp + 0x78], ebp
and eax, 0xf
xor ebx, ebx
mov esi, dword [esp + eax*8 + 0xc0]
mov ebp, esi
mov edx, dword [esp + eax*8 + 0xc4]
mov edi, esi
mov dword [esp + 0x10], edx
mov eax, esi
shrd eax, edx, 1
mov dword [esp + 0x14], esi
xor esi, esi
or ebx, eax
shr edx, 1
mov eax, dword [esp + 0x14]
shl ebp, 0x1f
or ebp, edx
shl edi, 0x18
mov edx, dword [esp + 0x10]
shrd eax, edx, 8
or esi, eax
shr edx, 8
or edi, edx
lea eax, [ecx - 1]
and eax, 0xf
lea edx, [esp + 0xc0]
lea edx, [edx + eax*8]
lea eax, [ecx - 8]
mov ecx, dword [esp + 0x10]
shrd dword [esp + 0x14], ecx, 7
xor dword [esp + 0x14], esi
and eax, 0xf
mov esi, dword [esp + 0x14]
shr ecx, 7
xor esi, ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x10], ecx
xor dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
xor edi, ebp
add esi, dword [esp + eax*8 + 0xc0]
adc edi, dword [esp + eax*8 + 0xc4]
mov eax, dword [esp + 0x54]
shrd eax, ebx, 6
xor eax, dword [esp + 0x78]
xor eax, dword [esp + 0x68]
shr ebx, 6
xor ebx, dword [esp + 0x70]
xor ebx, dword [esp + 0x6c]
add esi, eax
adc edi, ebx
add esi, dword [edx]
mov dword [esp + 0x14], esi
adc edi, dword [edx + 4]
xor ebx, ebx
mov ecx, dword [esp + 0x58]
mov eax, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x18]
mov ebp, esi
mov dword [edx + 4], edi
mov edx, esi
shld edx, eax, 0x17
shr ebp, 9
or ebx, edx
shl eax, 0x17
or ebp, eax
mov dword [esp + 0x68], ebx
xor ebx, ebx
mov dword [esp + 0x6c], ebp
mov edx, esi
mov dword [esp + 0x10], edi
mov eax, ecx
mov ebp, ecx
shrd eax, edx, 0x12
shl ebp, 0xe
xor esi, esi
shr edx, 0x12
or ebx, eax
or ebp, edx
mov eax, ecx
mov edx, dword [esp + 0x18]
mov edi, ecx
shrd eax, edx, 0xe
shl edi, 0x12
shr edx, 0xe
or esi, eax
mov eax, dword [esp + 0x2c]
or edi, edx
xor eax, dword [esp + 0x44]
xor esi, ebx
xor esi, dword [esp + 0x6c]
and eax, ecx
xor eax, dword [esp + 0x2c]
xor edi, ebp
xor edi, dword [esp + 0x68]
mov edx, dword [esp + 0x30]
xor edx, dword [esp + 0x48]
and edx, dword [esp + 0x18]
xor edx, dword [esp + 0x30]
add eax, esi
mov ebx, dword [esp + 0x5c]
adc edx, edi
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
mov ebp, edi
add eax, dword [ebx]
adc edx, dword [ebx + 4]
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0x10]
add eax, dword [esp + 0x4c]
mov dword [esp + 0x74], eax
adc edx, dword [esp + 0x50]
add dword [esp + 0x24], eax
mov eax, edi
mov dword [esp + 0x54], edx
adc dword [esp + 0x28], edx
mov edx, esi
shrd eax, edx, 0x1c
xor ebx, ebx
shl ebp, 4
or ebx, eax
shr edx, 0x1c
or ebp, edx
mov dword [esp + 0x70], ebx
mov eax, edi
mov dword [esp + 0x78], ebp
mov edx, esi
mov ebx, esi
shld edx, eax, 0x1e
shr ebx, 2
xor ebp, ebp
shl eax, 0x1e
or ebx, eax
or ebp, edx
mov dword [esp + 0x6c], ebx
mov eax, edi
mov dword [esp + 0x68], ebp
mov edx, esi
mov ebp, esi
mov esi, dword [esp + 0x20]
xor ebx, ebx
xor esi, dword [esp + 0x1c]
and esi, dword [esp + 0x40]
shld edx, eax, 0x19
shr ebp, 7
shl eax, 0x19
or ebx, edx
mov edx, dword [esp + 0x38]
or ebp, eax
mov eax, dword [esp + 0x20]
mov edi, edx
and eax, dword [esp + 0x1c]
xor edi, dword [esp + 0x34]
xor esi, eax
mov eax, dword [esp + 0x2c]
and edi, dword [esp + 0x3c]
and edx, dword [esp + 0x34]
xor ebp, dword [esp + 0x6c]
xor edi, edx
xor ebx, dword [esp + 0x68]
xor ebp, dword [esp + 0x70]
xor ebx, dword [esp + 0x78]
add edi, ebp
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x4c], eax
adc esi, ebx
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x50], eax
add ebx, edi
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x2c], eax
adc edi, esi
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x38]
add dword [esp + 0x5c], 8
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x3c], esi
sub dword [esp + 0x64], 1
mov esi, dword [esp + 0x34]
mov dword [esp + 0x58], eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x60], ecx
jne 0x466a40
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
add edx, ebx
adc esi, edi
mov dword [ecx], edx
mov edx, dword [esp + 0x88]
add edx, dword [esp + 0x38]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x90]
mov dword [ecx + 4], esi
mov esi, dword [esp + 0x8c]
adc esi, dword [esp + 0x20]
add edx, dword [esp + 0x3c]
mov dword [ecx + 0x10], edx
mov edx, dword [esp + 0x98]
mov dword [ecx + 0xc], esi
mov esi, dword [esp + 0x94]
adc esi, dword [esp + 0x40]
add edx, dword [esp + 0x24]
mov dword [ecx + 0x18], edx
mov edx, dword [esp + 0xa0]
mov dword [ecx + 0x14], esi
mov esi, dword [esp + 0x9c]
adc esi, dword [esp + 0x28]
add edx, eax
mov eax, dword [esp + 0xa4]
adc eax, ebp
mov dword [ecx + 0x20], edx
mov edx, dword [esp + 0xac]
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 0xa8]
add eax, dword [esp + 0x44]
mov dword [ecx + 0x28], eax
adc edx, dword [esp + 0x48]
mov eax, dword [esp + 0xb0]
add eax, dword [esp + 0x2c]
mov dword [ecx + 0x2c], edx
mov edx, dword [esp + 0xb4]
adc edx, dword [esp + 0x30]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0xb8]
add eax, dword [esp + 0x4c]
mov dword [ecx + 0x34], edx
mov edx, dword [esp + 0xbc]
adc edx, dword [esp + 0x50]
pop edi
mov dword [ecx + 0x1c], esi
pop esi
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], edx
mov ecx, dword [esp + 0x138]
pop ebp
pop ebx
xor ecx, esp
call fcn.004b90ac
add esp, 0x134
ret