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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x130
cmp dword [esp + 0x138], 0
push ebx
push ebp
push esi
push edi
je 0x41b064
mov edi, ecx
add edi, 2
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0x20]
mov ebp, dword [eax + 0x24]
dec dword [esp + 0x148]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0xb4], edx
mov dword [esp + 0x24], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x74], edx
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0xac], edx
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x50], ecx
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x54], edx
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x84], edx
mov dword [esp + 0x3c], edx
mov edx, dword [eax + 0x34]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
xor ebx, ebx
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x94], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x60], edi
jmp 0x41aa60
lea eax, [esp + ebx*8 + 0xc0]
mov dword [esp + 0x44], eax
movzx eax, byte [edi - 2]
cdq
shld edx, eax, 8
shl eax, 8
mov ecx, eax
movzx eax, byte [edi - 1]
mov ebx, edx
cdq
or ecx, eax
movzx eax, byte [edi]
or ebx, edx
shld ebx, ecx, 8
shl ecx, 8
cdq
or ecx, eax
movzx eax, byte [edi + 1]
or ebx, edx
shld ebx, ecx, 8
shl ecx, 8
cdq
or ecx, eax
movzx eax, byte [edi + 2]
or ebx, edx
shld ebx, ecx, 8
cdq
or ebx, edx
shl ecx, 8
or ecx, eax
movzx eax, byte [edi + 3]
shld ebx, ecx, 8
cdq
or ebx, edx
shl ecx, 8
or ecx, eax
movzx eax, byte [edi + 4]
shld ebx, ecx, 8
cdq
or ebx, edx
shl ecx, 8
or ecx, eax
movzx eax, byte [edi + 5]
shld ebx, ecx, 8
cdq
or ebx, edx
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x44]
mov edi, ebp
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov eax, ebp
mov edx, esi
shld edi, edx, 0x17
shl edx, 0x17
shr eax, 9
or eax, edx
mov ebx, esi
shrd ebx, ebp, 0x12
xor ecx, ecx
or ecx, edi
shr ebp, 0x12
xor edi, edi
or edi, ebx
mov edx, esi
shl edx, 0xe
or edx, ebp
mov ebp, dword [esp + 0x1c]
mov ebx, esi
shrd ebx, ebp, 0xe
xor ecx, edx
xor eax, edi
mov edx, esi
xor edi, edi
shl edx, 0x12
shr ebp, 0xe
or edi, ebx
or edx, ebp
xor eax, edi
xor ecx, edx
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x38]
and ebp, esi
mov edi, esi
mov esi, dword [esp + 0x3c]
and esi, edx
not edi
and edi, dword [esp + 0x30]
mov ebx, edx
mov edx, dword [esp + 0x40]
xor edi, ebp
not ebx
and ebx, dword [esp + 0x34]
xor ebx, esi
add eax, edi
adc ecx, ebx
add eax, dword [edx*8 + 0x4b7080]
mov esi, dword [esp + 0x20]
adc ecx, dword [edx*8 + 0x4b7084]
mov edx, dword [esp + 0x44]
add eax, dword [edx]
mov edi, esi
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x48]
adc ecx, dword [esp + 0x4c]
mov dword [esp + 0x58], eax
mov eax, esi
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x24]
mov ebx, ecx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
shl eax, 4
or eax, ebx
xor ebx, ebx
mov ebp, ecx
shld ebp, esi, 0x1e
or ebx, ebp
shl esi, 0x1e
xor eax, ebx
mov ebx, dword [esp + 0x20]
xor edx, edx
or edx, edi
mov edi, ecx
shr edi, 2
or edi, esi
xor edx, edi
mov ebp, ecx
shld ebp, ebx, 0x19
xor edi, edi
or edi, ebp
mov ebp, dword [esp + 0x14]
shl ebx, 0x19
mov esi, ecx
shr esi, 7
or esi, ebx
xor edx, esi
mov esi, dword [esp + 0x20]
xor eax, edi
mov edi, dword [esp + 0x10]
mov ebx, edi
xor ebx, esi
and ebx, dword [esp + 0x28]
and edi, esi
mov esi, dword [esp + 0x14]
and esi, ecx
xor ebp, ecx
and ebp, dword [esp + 0x2c]
xor ebx, edi
xor ebp, esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x3c]
add edx, ebx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x18]
adc eax, ebp
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], esi
mov esi, edi
add esi, dword [esp + 0x50]
mov dword [esp + 0x50], ebx
adc ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x20]
add edx, edi
adc eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x40]
inc ebx
mov dword [esp + 0x14], ecx
add edi, 8
cmp ebx, 0x10
mov ecx, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x60], edi
jl 0x41aa60
cmp ebx, 0x50
jge 0x41af84
lea edi, [ebx - 2]
mov dword [esp + 0x44], edi
jmp 0x41acc0
lea eax, [edi + 3]
and eax, 0xf
mov ecx, dword [esp + eax*8 + 0xc0]
mov edx, dword [esp + eax*8 + 0xc4]
mov dword [esp + 0x68], ecx
and ebx, 0xf
mov eax, edi
and eax, 0xf
mov ecx, dword [esp + eax*8 + 0xc0]
mov eax, dword [esp + eax*8 + 0xc4]
mov edi, ecx
mov dword [esp + 0x6c], edx
lea edx, [esp + ebx*8 + 0xc0]
mov dword [esp + 0xb8], ecx
mov ebp, eax
mov ebx, eax
shrd edi, ebx, 0x13
mov dword [esp + 0x64], edx
mov edx, ecx
shld ebp, ecx, 3
xor esi, esi
or esi, edi
add ecx, ecx
add ecx, ecx
mov edi, eax
add ecx, ecx
shr ebx, 0x13
shr edi, 0x1d
or edi, ecx
mov ecx, dword [esp + 0xb8]
shrd ecx, eax, 6
shl edx, 0xd
or edx, ebx
xor esi, edi
xor esi, ecx
mov ecx, dword [esp + 0x6c]
xor ebx, ebx
or ebx, ebp
shr eax, 6
xor edx, ebx
xor edx, eax
mov eax, dword [esp + 0x68]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov ebx, eax
mov dword [esp + 0x8c], esi
mov esi, eax
shrd eax, ecx, 1
shl esi, 0x18
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x6c]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x68]
shrd ecx, eax, 7
shr eax, 7
xor edi, ebp
xor esi, ebx
xor esi, eax
mov eax, dword [esp + 0x44]
xor edi, ecx
mov ecx, dword [esp + 0x8c]
add ecx, edi
adc edx, esi
mov esi, dword [esp + 0x1c]
add eax, 0xfffffffb
and eax, 0xf
add ecx, dword [esp + eax*8 + 0xc0]
adc edx, dword [esp + eax*8 + 0xc4]
mov eax, dword [esp + 0x64]
add dword [eax], ecx
adc dword [eax + 4], edx
mov eax, esi
shr eax, 9
mov edx, dword [esp + 0x18]
mov ebx, esi
xor ecx, ecx
mov edi, edx
shld ebx, edi, 0x17
or ecx, ebx
shl edi, 0x17
or eax, edi
xor ebx, ebx
mov ebp, edx
shrd ebp, esi, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x1c]
xor eax, ebx
shr esi, 0x12
mov edi, edx
shl edi, 0xe
or edi, esi
xor ecx, edi
xor edi, edi
mov ebx, edx
shrd ebx, ebp, 0xe
or edi, ebx
shr ebp, 0xe
xor eax, edi
mov esi, edx
shl esi, 0x12
or esi, ebp
mov ebp, dword [esp + 0x38]
xor ecx, esi
mov esi, dword [esp + 0x1c]
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x3c]
and edx, esi
not edi
and edi, dword [esp + 0x30]
mov ebx, esi
mov esi, dword [esp + 0x20]
xor edi, ebp
not ebx
and ebx, dword [esp + 0x34]
xor ebx, edx
mov edx, dword [esp + 0x40]
add eax, edi
adc ecx, ebx
add eax, dword [edx*8 + 0x4b7080]
mov edi, esi
adc ecx, dword [edx*8 + 0x4b7084]
mov edx, dword [esp + 0x64]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x48]
adc ecx, dword [esp + 0x4c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x24]
mov ebx, eax
shrd edi, ebx, 0x1c
mov dword [esp + 0x5c], ecx
mov ecx, esi
shr ebx, 0x1c
xor edx, edx
or edx, edi
mov ebp, eax
shld ebp, esi, 0x1e
shl ecx, 4
or ecx, ebx
xor ebx, ebx
shl esi, 0x1e
mov edi, eax
shr edi, 2
or edi, esi
or ebx, ebp
xor ecx, ebx
mov ebx, dword [esp + 0x20]
xor edx, edi
mov esi, eax
mov ebp, eax
shr esi, 7
xor edi, edi
shld ebp, ebx, 0x19
shl ebx, 0x19
or esi, ebx
or edi, ebp
mov ebp, dword [esp + 0x14]
xor edx, esi
mov esi, dword [esp + 0x20]
xor ecx, edi
mov edi, dword [esp + 0x10]
xor ebp, eax
and ebp, dword [esp + 0x2c]
mov ebx, edi
xor ebx, esi
and ebx, dword [esp + 0x28]
and edi, esi
mov esi, dword [esp + 0x14]
and esi, eax
xor ebp, esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x38]
xor ebx, edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x3c]
add edx, ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x18]
adc ecx, ebp
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], esi
mov esi, edi
add esi, dword [esp + 0x50]
mov dword [esp + 0x50], ebx
adc ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x20]
add edx, edi
adc ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x40]
inc ebx
inc edi
cmp ebx, 0x50
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], edi
jl 0x41acc0
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x144]
mov ebx, dword [esp + 0xb0]
add ebx, edx
mov edx, dword [esp + 0xb4]
adc edx, ecx
mov ecx, dword [esp + 0x70]
add ecx, dword [esp + 0x10]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x74]
adc edx, dword [esp + 0x14]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xa8]
add ecx, dword [esp + 0x28]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xac]
adc edx, dword [esp + 0x2c]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x98]
add ecx, dword [esp + 0x50]
mov dword [eax + 0x14], edx
mov edx, dword [esp + 0x9c]
adc edx, dword [esp + 0x54]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x78]
add ecx, esi
mov dword [eax + 0x1c], edx
mov edx, dword [esp + 0x7c]
adc edx, ebp
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x80]
add ecx, dword [esp + 0x38]
mov dword [eax + 0x24], edx
mov edx, dword [esp + 0x84]
adc edx, dword [esp + 0x3c]
mov dword [eax + 0x28], ecx
mov ecx, dword [esp + 0x90]
add ecx, dword [esp + 0x30]
mov dword [eax + 0x2c], edx
mov edx, dword [esp + 0x94]
adc edx, dword [esp + 0x34]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0xa0]
add ecx, dword [esp + 0x48]
mov dword [eax + 0x34], edx
mov edx, dword [esp + 0xa4]
adc edx, dword [esp + 0x4c]
cmp dword [esp + 0x148], 0
mov dword [eax], ebx
mov dword [eax + 0x38], ecx
mov dword [eax + 0x3c], edx
jne 0x41a971
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret