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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov esi, esp
mov edi, ecx
mov ebx, dword [ebp + 0xc]
mov dword [esi + 0xcc], 0
mov dword [esi + 0xc8], 0
mov dword [esi + 0xc4], 0
mov dword [esi + 0xc0], 0
mov dword [esi + 0xbc], 0
mov dword [esi + 0xb0], 0
mov dword [esi + 0xb4], 2
mov dword [esi + 0xb8], 1
push 0x565577c1
push dword [0x44927c]
call fcn.0043c470
add esp, 8
lea ecx, [esi + 0x28]
lea edx, [esi + 0xb0]
push ecx
push edx
push ebx
push dword [ebp + 8]
call eax
test eax, eax
je 0x41a21c
cmp dword [edi], 0xffffffff
jne 0x41a2c9
jmp 0x41a7ce
push 0xb646c33f
push dword [0x44927c]
call fcn.0043c470
add esp, 8
mov dword [esi], eax
push 0xe7db718c
push dword [0x44927c]
call fcn.0043c470
add esp, 8
mov dword [esi + 8], eax
push 0xa3d60213
push dword [0x44927c]
call fcn.0043c470
add esp, 8
mov dword [esi + 4], eax
mov ebx, dword [esi + 0x28]
jmp 0x41a273
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x41a2a5
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [esi]
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x41a270
push dword [ebx + 0x10]
push dword [ebx + 0x18]
push eax
call dword [esi + 8]
cmp eax, 0xffffffff
jne 0x41a2a5
push dword [edi]
call dword [esi + 4]
mov dword [edi], 0xffffffff
jmp 0x41a270
push 0xeb17dc3b
push dword [0x44927c]
call fcn.0043c470
add esp, 8
push dword [esi + 0x28]
call eax
mov ebx, dword [ebp + 0xc]
cmp dword [edi], 0xffffffff
je 0x41a7ce
mov ecx, dword [ebp + 0x10]
mov eax, 0x8d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax - 0x8d], 0
lea eax, [eax + 1]
jne 0x41a2e0
mov ecx, dword [ebp + 8]
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x41a2f0
mov dword [esi + 0x20], edi
mov ecx, ebx
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x41a300
add eax, 3
and eax, 0xfffffffc
call fcn.00408850
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 4], eax
mov esp, eax
mov dword [esi + 0x30], 0xefeed930
mov dword [esi + 0x34], 0xc9cfcaec
mov dword [esi + 0x38], 0xd3102cc9
mov dword [esi + 0x3c], 0xdd9a9693
mov dword [esi + 0x40], 0x120
mov byte [esi + 0x44], 0
mov eax, 0x951876ef
mov dword [esi + 8], 0xeae78910
mov edi, 0x5ab9e244
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi], edi
movzx ecx, byte [esi + eax + 0x6ae78941]
mov edi, dword [esi]
and edi, ecx
add edi, edi
mov ebx, edi
sub ebx, ecx
mov edx, dword [esi + 8]
add ebx, edx
or ebx, 1
add ebx, ecx
sub ecx, edi
add ecx, eax
sub ebx, edi
add ebx, eax
lea edi, [ebx*2 + 2]
mov ebx, edi
and ebx, ecx
xor ecx, edi
mov edi, dword [esi]
xor ecx, 1
lea ecx, [ecx + ebx*2]
mov byte [esi + eax + 0x6ae78941], cl
inc eax
dec edx
mov dword [esi + 8], edx
inc edi
cmp eax, 0x95187704
jne 0x41a360
mov dword [esi + 0xc], 0x336e5c5f
mov byte [esi + 0x10], 0x1c
mov dword [esi + 0x11], 0
mov word [esi + 0x15], 0
mov eax, 0x84
mov edx, 0x7b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esi + eax - 0x78]
mov ecx, edi
not ecx
mov ebx, edx
or ebx, ecx
add edi, ebx
inc edi
and ecx, eax
or ecx, edi
add cl, 0x6c
mov byte [esi + eax - 0x78], cl
inc eax
dec edx
cmp eax, 0x8f
jne 0x41a3e0
movzx edx, byte [esi + 0xc]
mov edi, dword [esi + 4]
test dl, dl
je 0x41a42b
lea ebx, [esi + 0xd]
mov edi, dword [esi + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ebx]
inc ebx
test dl, dl
jne 0x41a420
mov byte [edi], 0
mov ecx, dword [ebp + 0x10]
movzx edx, byte [ecx]
test dl, dl
je 0x41a44d
inc ecx
mov eax, dword [ebp + 8]
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x41a440
jmp 0x41a450
mov eax, dword [ebp + 8]
mov byte [edi], 0
movzx ecx, byte [esi + 0x30]
test cl, cl
je 0x41a46b
lea edx, [esi + 0x31]
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41a460
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x41a48b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x41a480
mov byte [edi], 0x3a
mov dword [esi + 0x30], 0x53b7cbcd
mov dword [esi + 0x34], 0xa3a757a3
mov dword [esi + 0x38], 0x5cea93ad
mov dword [esi + 0x3c], 0xa05dafa9
mov dword [esi + 0x40], 0x67979a93
mov dword [esi + 0x44], 0x98b5fff9
mov dword [esi + 0x48], 0x989f9796
mov dword [esi + 0x4c], 0x91919468
mov dword [esi + 0x50], 0x7397c1ba
mov dword [esi + 0x54], 0x83877783
mov dword [esi + 0x58], 0x98e0e48d
mov dword [esi + 0x5c], 0x98c38e89
mov dword [esi + 0x60], 0x7c617375
mov dword [esi + 0x64], 0x83737e77
mov dword [esi + 0x68], 0x827f5235
mov dword [esi + 0x6c], 0x6c563d46
mov dword [esi + 0x70], 0x5361936d
mov dword [esi + 0x74], 0x7e6a4897
mov dword [esi + 0x78], 0x4c4b627d
mov dword [esi + 0x7c], 0x405b6061
mov dword [esi + 0x80], 0x6175a140
mov dword [esi + 0x84], 0x4071547c
mov dword [esi + 0x88], 0x31376453
mov dword [esi + 0x8c], 0x125d584f
mov dword [esi + 0x90], 0x50404457
mov dword [esi + 0x94], 0x424d464b
mov dword [esi + 0x98], 0x4e5c04bc
mov dword [esi + 0x9c], 0x4047bebe
mov dword [esi + 0xa0], 0x2720b3e
mov dword [esi + 0xa4], 0x5a5c5807
mov word [esi + 0xa8], 0x5952
mov byte [esi + 0xac], 0
mov word [esi + 0xaa], 0
mov ecx, 0xf4c69ed0
nop
nop
nop
nop
movzx eax, byte [esi + ecx + 0xb396160]
mov dword [esi], eax
mov edx, ecx
and edx, eax
mov eax, edx
or eax, 0xfffffffd
inc eax
mov ebx, edx
and ebx, 0xfffffffd
imul ebx, eax
mov eax, edx
and eax, 2
or edx, 2
imul edx, eax
add ebx, dword [esi]
sub ebx, edx
add ebx, ecx
mov eax, ebx
and eax, 0x6f
xor ebx, 0xef
lea eax, [ebx + eax*2]
inc al
mov byte [esi + ecx + 0xb396160], al
inc ecx
cmp ecx, 0xf4c69f4d
jne 0x41a5a0
inc edi
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
test cl, cl
je 0x41a60b
inc eax
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x41a600
mov byte [edi], 0
movzx ecx, byte [esi + 0x30]
test cl, cl
je 0x41a62b
lea edx, [esi + 0x31]
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41a620
mov byte [edi], 0
mov eax, edi
not eax
mov ebx, dword [esi + 4]
and eax, ebx
not ebx
and ebx, edi
sub ebx, eax
push 0xefae2064
push dword [0x44927c]
call fcn.0043c470
add esp, 8
push 0
push ebx
push dword [esi + 4]
mov edi, dword [esi + 0x20]
push dword [edi]
call eax
cmp eax, 0xffffffff
jne 0x41a6a4
cmp dword [edi], 0xffffffff
je 0x41a6a4
push 0xea8d1240
push dword [0x44927c]
call fcn.0043c470
add esp, 8
push 2
push dword [edi]
call eax
push 0xa3d60213
push dword [0x44927c]
call fcn.0043c470
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
xor eax, eax
jmp 0x41ab65
cmp eax, 0xffffffff
je 0x41a7ce
push 0x400
call fcn.00408940
add esp, 4
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
add eax, 0x400
mov dword [esi + 0x14], eax
lea eax, [esi + 0xc]
mov ecx, edi
push eax
call fcn.0041ab70
mov cl, 1
mov dword [esi + 4], ecx
test al, al
je 0x41ab4d
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov ebx, ecx
sub ebx, eax
cmp ecx, dword [esi + 0x14]
jne 0x41a836
mov dword [esi + 8], ecx
mov dword [esi], eax
lea eax, [ebx + 1]
mov ecx, ebx
shr ecx, 1
mov dword [esi + 0x18], ecx
lea edi, [ecx + ebx]
cmp edi, eax
ja 0x41a70b
mov edi, eax
push edi
call fcn.00408940
add esp, 4
mov ecx, dword [esi]
test ecx, ecx
je 0x41a828
mov dword [esi + 0x24], edi
cmp eax, ecx
mov dword [esi + 4], ebx
mov edx, dword [esi + 8]
mov dword [esi + 0x1c], eax
jbe 0x41a7d5
cmp edx, eax
jbe 0x41a7d5
test ebx, ebx
je 0x41a814
mov edx, dword [esi + 4]
lea eax, [ecx + edx]
dec eax
mov ecx, dword [esi + 0x1c]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x41a76d
neg edi
xor edx, edx
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x41a75a
add eax, edx
add ecx, edx
add edx, dword [esi + 4]
mov edi, dword [esi]
sub edi, dword [esi + 8]
cmp edi, 0xfffffff8
ja 0x41a814
neg edx
xor edi, edi
movzx ebx, byte [eax + edi]
mov byte [ecx + edi], bl
movzx ebx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], bl
movzx ebx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], bl
movzx ebx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], bl
movzx ebx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], bl
movzx ebx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], bl
movzx ebx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], bl
movzx ebx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x41a77f
jmp 0x41a814
xor eax, eax
jmp 0x41ab65
mov edx, ecx
mov ecx, ebx
shr ecx, 2
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
lea edi, [eax + edx]
add edx, dword [esi]
mov ecx, dword [esi + 0x18]
and ecx, 1
mov eax, ebx
mov ebx, edx
mov dword [esi], edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
test al, 1
je 0x41a814
mov ecx, dword [esi + 4]
and ecx, 2
movzx edx, byte [edx + ecx]
mov eax, dword [esi]
mov byte [eax + ecx], dl
push dword [esi + 0xc]
call fcn.00408950
add esp, 4
mov ebx, dword [esi + 4]
mov edi, dword [esi + 0x24]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0xc], eax
lea ecx, [eax + ebx]
mov dword [esi + 0x10], ecx
add edi, eax
mov dword [esi + 0x14], edi
mov byte [eax + ebx], 0
mov eax, dword [esi + 0xc]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x30], 0xd1cacbdc
mov dword [esi + 0x34], 0x8eb4b0b1
mov dword [esi + 0x38], 0x8a8e8cbc
mov byte [esi + 0x3c], 0x58
mov dword [esi + 0x3d], 0
mov word [esi + 0x41], 0
xor ecx, ecx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi + edi + 0x30]
mov eax, edi
xor eax, 0xea8f067
mov ebx, ecx
and ebx, 0x30
sub ebx, eax
xor ebx, edx
mov edx, 1
sub edx, ebx
mov eax, 0xfd
sub eax, ebx
not edx
and edx, 1
or eax, 1
sub edx, eax
mov byte [esi + edi + 0x30], dl
inc edi
add ecx, 2
cmp edi, 0x13
jne 0x41a880
movzx edx, byte [esi + 0x30]
mov eax, dword [esi + 8]
test dl, dl
mov edi, dword [esi + 0x20]
je 0x41a908
lea ebx, [esi + 0x30]
mov eax, dword [esi + 8]
mov ecx, eax
jmp 0x41a8ea
movzx edx, byte [ebx]
test dl, dl
mov edi, dword [esi + 0x20]
je 0x41a908
mov dh, byte [ecx]
test dh, dh
je 0x41ab3a
inc ecx
inc ebx
lea edi, [eax + 1]
cmp dh, dl
je 0x41a901
mov eax, edi
mov ecx, edi
je 0x41a8e0
lea ebx, [esi + 0x30]
jmp 0x41a8e0
test eax, eax
je 0x41ab3a
mov ebx, dword [esi + 8]
jmp 0x41a928
cmp dl, dh
je 0x41ab4d
mov edx, ebx
mov ecx, dword [esi]
sub edx, ecx
je 0x41a94d
mov eax, ecx
mov edi, ebx
mov dword [esi], ecx
xor ecx, ecx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
xor ecx, ecx
mov edi, ebx
mov eax, dword [esi]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0x20]
add dword [esi + 0x10], edx
mov ecx, edi
lea eax, [esi + 0xc]
push eax
call fcn.0041ab70
test al, al
je 0x41ab46
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov ebx, ecx
sub ebx, eax
cmp ecx, dword [esi + 0x14]
jne 0x41aac3
mov dword [esi + 0x1c], ecx
mov dword [esi], eax
lea eax, [ebx + 1]
mov ecx, ebx
shr ecx, 1
mov dword [esi + 0x2c], ecx
add ecx, ebx
cmp ecx, eax
ja 0x41a98d
mov ecx, eax
mov dword [esi + 8], ecx
push ecx
call fcn.00408940
add esp, 4
mov ecx, dword [esi]
test ecx, ecx
je 0x41aab2
cmp eax, ecx
mov dword [esi + 0x18], ebx
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x24], eax
jbe 0x41aa5f
cmp edx, eax
jbe 0x41aa5f
test ebx, ebx
je 0x41aa9e
mov edx, dword [esi + 0x18]
lea eax, [ecx + edx]
dec eax
mov ecx, dword [esi + 0x24]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x41a9f3
neg edi
xor edx, edx
nop
nop
nop
nop
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x41a9e0
add eax, edx
add ecx, edx
add edx, dword [esi + 0x18]
mov edi, dword [esi]
sub edi, dword [esi + 0x1c]
cmp edi, 0xfffffff8
ja 0x41aa9e
neg edx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edi]
mov byte [ecx + edi], bl
movzx ebx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], bl
movzx ebx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], bl
movzx ebx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], bl
movzx ebx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], bl
movzx ebx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], bl
movzx ebx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], bl
movzx ebx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x41aa10
jmp 0x41aa9e
mov edx, ecx
mov ecx, ebx
shr ecx, 2
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
lea edi, [eax + edx]
add edx, dword [esi]
mov ecx, dword [esi + 0x2c]
and ecx, 1
mov eax, ebx
mov ebx, edx
mov dword [esi], edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
test al, 1
je 0x41aa9e
mov ecx, dword [esi + 0x18]
and ecx, 2
movzx edx, byte [edx + ecx]
mov eax, dword [esi]
mov byte [eax + ecx], dl
push dword [esi + 0xc]
call fcn.00408950
add esp, 4
mov edi, dword [esi + 0x20]
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x24]
mov dword [esi + 0xc], eax
lea ecx, [eax + ebx]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 8]
add ecx, eax
mov dword [esi + 0x14], ecx
mov byte [eax + ebx], 0
mov eax, dword [esi + 0xc]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi], eax
mov dword [esi + 0x10], eax
mov word [esi + 0x30], 0x5f5d
mov byte [esi + 0x32], 0x56
mov word [esi + 0x33], 0
mov ecx, 0x2e
mov edx, 1
mov eax, edx
and eax, 2
mov ebx, ecx
and ebx, 0x3d
or ebx, eax
xor bl, byte [esi + ecx + 2]
xor bl, 0xc2
add bl, 0x5a
mov byte [esi + ecx + 2], bl
inc ecx
dec edx
cmp ecx, 0x33
jne 0x41aaf0
xor ecx, ecx
mov ebx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx + ecx]
mov dh, byte [esi + ecx + 0x30]
test dl, dl
je 0x41a920
inc ecx
cmp dl, dh
je 0x41ab20
jmp 0x41a920
mov ecx, edi
push 0x3ea
call fcn.00419f00
mov dword [esi + 4], 0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x41ab62
cmp eax, dword [esi + 0x10]
je 0x41ab62
push eax
call fcn.00408950
add esp, 4
mov eax, dword [esi + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc