Function at 0x41a380
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 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 [0x44853c]
call fcn.0043c130
add esp, 8
lea ecx, [esi + 0x2c]
lea edx, [esi + 0xb0]
push ecx
push edx
push dword [ebp + 0xc]
push dword [ebp + 8]
call eax
test eax, eax
jne 0x41a4ac
push 0xb646c33f
push dword [0x44853c]
call fcn.0043c130
add esp, 8
mov dword [esi], eax
push 0xe7db718c
push dword [0x44853c]
call fcn.0043c130
add esp, 8
mov dword [esi + 4], eax
push 0xa3d60213
push dword [0x44853c]
call fcn.0043c130
add esp, 8
mov dword [esi + 8], eax
mov ebx, dword [esi + 0x2c]
jmp 0x41a463
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x41a494
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [esi]
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x41a460
push dword [ebx + 0x10]
push dword [ebx + 0x18]
push eax
call dword [esi + 4]
test eax, eax
je 0x41a494
push dword [edi]
call dword [esi + 8]
mov dword [edi], 0xffffffff
jmp 0x41a460
push 0xeb17dc3b
push dword [0x44853c]
call fcn.0043c130
add esp, 8
push dword [esi + 0x2c]
call eax
xor ebx, ebx
cmp dword [edi], 0xffffffff
je 0x41ab33
mov eax, dword [ebp + 0x10]
nop
nop
nop
nop
nop
nop
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x41a4c0
lea ecx, [eax + ebx]
dec ecx
mov dword [esi], ecx
mov ecx, eax
not ecx
mov dword [esi + 4], ecx
add ebx, eax
neg ebx
xor edx, edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + edx], 0
lea edx, [edx + 1]
jne 0x41a4f0
mov dword [esi + 0x20], edi
mov edi, dword [esi + 4]
and dword [esi], edi
lea edi, [eax + edx]
dec edi
mov dword [esi + 4], edi
mov edi, eax
not edi
mov dword [esi + 8], edi
add edx, eax
neg edx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x41a520
mov edi, dword [esi + 4]
and edi, dword [esi + 8]
add dword [esi], edi
and ebx, dword [ebp + 0x10]
and edx, dword [ebp + 8]
add edx, ebx
mov ebx, ecx
not ebx
mov edi, dword [esi]
mov ecx, dword [ebp + 0xc]
add ecx, eax
dec ecx
and ebx, ecx
mov ecx, dword [ebp + 0xc]
add eax, ecx
neg eax
and eax, ecx
add eax, edx
sub edi, eax
lea eax, [edi + ebx]
add eax, 0x93
and eax, 0xfffffffc
call fcn.00408490
mov eax, esp
and eax, 0xfffffff0
mov dword [esi], eax
mov esp, eax
mov dword [esi + 0x30], 0xafaeb990
mov dword [esi + 0x34], 0x898f8aac
mov dword [esi + 0x38], 0xb3706c89
mov dword [esi + 0x3c], 0xbdfaf6f3
mov word [esi + 0x40], 0x41a0
mov dword [esi + 0x42], 0
mov word [esi + 0x46], 0
mov eax, 0x2d3e6d14
mov edx, 0xd2c192eb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
and ecx, 0x508101e7
mov ebx, eax
and ebx, 0x40818
or ebx, ecx
movzx ecx, byte [esi + eax - 0x2d3e6ce4]
xor ebx, ecx
xor ebx, 0x7dbb65e7
mov edi, 0x64
sub edi, ebx
or edi, 1
add edi, ebx
lea ecx, [ebx + 0x9b]
or ecx, 1
add ecx, edi
add cl, 0x9c
mov byte [esi + eax - 0x2d3e6ce4], cl
inc eax
dec edx
cmp eax, 0x2d3e6d2c
jne 0x41a5b0
mov dword [esi + 0xc], 0xf9c6d0d5
mov byte [esi + 0x10], 0x18
mov dword [esi + 0x11], 0
mov ecx, 0x33982551
mov edx, 0x67304aa2
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esi + ecx - 0x33982545]
mov edi, edx
and edi, 0x400000f6
mov eax, ecx
xor eax, 0x20234afb
add eax, edi
mov edi, 0x50
sub edi, eax
add eax, 0xcc67daaf
xor edi, eax
and edi, ebx
xor edi, eax
mov eax, edi
and eax, 1
xor edi, 1
lea eax, [edi + eax*2]
add al, 0x18
mov byte [esi + ecx - 0x33982545], al
inc ecx
add edx, 2
cmp ecx, 0x3398255a
jne 0x41a620
movzx eax, byte [esi + 0xc]
mov ebx, dword [esi]
test al, al
je 0x41a68b
lea edx, [esi + 0xd]
mov ebx, dword [esi]
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x41a680
mov byte [ebx], 0
mov ecx, dword [ebp + 0x10]
movzx eax, byte [ecx]
test al, al
je 0x41a6ad
inc ecx
mov edx, dword [ebp + 8]
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a6a0
jmp 0x41a6b0
mov edx, dword [ebp + 8]
mov byte [ebx], 0
movzx eax, byte [esi + 0x30]
test al, al
je 0x41a6cb
lea ecx, [esi + 0x31]
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a6c0
mov byte [ebx], 0
movzx eax, byte [edx]
test al, al
je 0x41a6eb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x41a6e0
mov byte [ebx], 0x3a
mov dword [esi + 0x30], 0x6971c5d7
mov dword [esi + 0x34], 0x79796961
mov dword [esi + 0x38], 0x58321d67
mov dword [esi + 0x3c], 0x6463716b
mov dword [esi + 0x40], 0x1d111671
mov dword [esi + 0x44], 0x1c6bb1bb
mov dword [esi + 0x48], 0x419111e
mov dword [esi + 0x4c], 0x17171814
mov dword [esi + 0x50], 0x9115b6a
mov dword [esi + 0x54], 0x19190901
mov dword [esi + 0x58], 0x64aca007
mov dword [esi + 0x5c], 0x1c45120b
mov dword [esi + 0x60], 0x385f2d0f
mov dword [esi + 0x64], 0x3935322d
mov dword [esi + 0x68], 0xe395e7f
mov dword [esi + 0x6c], 0x505e674e
mov dword [esi + 0x70], 0x693f2d37
mov dword [esi + 0x74], 0x32224c2d
mov dword [esi + 0x78], 0x48552e37
mov dword [esi + 0x7c], 0x445d2423
mov dword [esi + 0x80], 0x9fb3db44
mov dword [esi + 0x84], 0xc4b7c8b0
mov dword [esi + 0x88], 0x7f71a0d1
mov dword [esi + 0x8c], 0x96c3dcb5
mov dword [esi + 0x90], 0xacdcc0cd
mov dword [esi + 0x94], 0xc6c3dac9
mov dword [esi + 0x98], 0xcad880c8
mov dword [esi + 0x9c], 0xc4c9c2c6
mov dword [esi + 0xa0], 0xbeaa85c6
mov dword [esi + 0xa4], 0x5e505cbd
mov dword [esi + 0xa8], 0x4352
mov eax, 0x64b480af
nop
nop
nop
movzx ecx, byte [esi + eax - 0x64b4807f]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x95
mov byte [esi + eax - 0x64b4807f], cl
inc eax
cmp eax, 0x64b4812b
jne 0x41a7f0
inc ebx
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx]
test al, al
je 0x41a83b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a830
mov byte [ebx], 0
movzx eax, byte [esi + 0x30]
test al, al
je 0x41a85b
lea ecx, [esi + 0x31]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a850
mov byte [ebx], 0
mov edi, dword [esi]
sub ebx, edi
push 0xefae2064
push dword [0x44853c]
call fcn.0043c130
add esp, 8
push 0
push ebx
push edi
mov edi, dword [esi + 0x20]
push dword [edi]
call eax
cmp eax, 0xffffffff
jne 0x41a8c7
cmp dword [edi], 0xffffffff
je 0x41a8c7
push 0xea8d1240
push dword [0x44853c]
call fcn.0043c130
add esp, 8
push 2
push dword [edi]
call eax
push 0xa3d60213
push dword [0x44853c]
call fcn.0043c130
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
xor ebx, ebx
jmp 0x41ab33
cmp eax, 0xffffffff
je 0x41a9ed
push 0x400
call fcn.004084c0
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.0041adb0
mov bl, 1
test al, al
je 0x41ab1e
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov ebx, ecx
sub ebx, eax
cmp ecx, dword [esi + 0x14]
jne 0x41aa58
mov dword [esi + 8], ecx
mov dword [esi], eax
lea eax, [ebx + 1]
mov ecx, ebx
shr ecx, 1
mov dword [esi + 0x24], ecx
add ecx, ebx
cmp ecx, eax
ja 0x41a92a
mov ecx, eax
mov dword [esi + 4], ecx
push ecx
call fcn.004084c0
add esp, 4
mov ecx, dword [esi]
test ecx, ecx
je 0x41aa47
cmp eax, ecx
mov dword [esi + 0x18], ebx
mov edx, dword [esi + 8]
mov dword [esi + 0x1c], eax
jbe 0x41a9f4
cmp edx, eax
jbe 0x41a9f4
test ebx, ebx
je 0x41aa33
mov edx, dword [esi + 0x18]
lea eax, [ecx + edx]
dec eax
mov ecx, dword [esi + 0x1c]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x41a98c
neg edi
xor edx, edx
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x41a979
add eax, edx
add ecx, edx
add edx, dword [esi + 0x18]
mov edi, dword [esi]
sub edi, dword [esi + 8]
cmp edi, 0xfffffff8
ja 0x41aa33
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 0x41a99e
jmp 0x41aa33
xor ebx, ebx
jmp 0x41ab33
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 + 0x24]
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 0x41aa33
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.004084d0
add esp, 4
mov edi, dword [esi + 0x20]
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0xc], eax
lea ecx, [eax + ebx]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 4]
add ecx, eax
mov dword [esi + 0x14], ecx
mov byte [eax + ebx], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
inc ecx
mov dword [esi + 4], ecx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x30], 0x819a9b84
mov dword [esi + 0x34], 0x667c6061
mov dword [esi + 0x38], 0x6a666474
mov byte [esi + 0x3c], 0x58
mov dword [esi + 0x3d], 0
mov word [esi + 0x41], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xd
xor dl, byte [esi + ecx + 0x30]
add dl, 0xbf
mov byte [esi + ecx + 0x30], dl
inc ecx
cmp ecx, 0x13
jne 0x41aaa0
movzx edx, byte [esi + 0x30]
mov ecx, eax
mov dword [esi + 8], eax
test dl, dl
je 0x41ab0a
lea ebx, [esi + 0x30]
mov ecx, eax
mov dword [esi], eax
mov eax, dword [esi]
mov dword [esi + 8], eax
jmp 0x41aaea
movzx edx, byte [ebx]
test dl, dl
mov edi, dword [esi + 0x20]
je 0x41ab0a
mov dh, byte [ecx]
test dh, dh
je 0x41ab10
inc ecx
inc ebx
mov eax, dword [esi + 8]
lea edi, [eax + 1]
cmp dh, dl
je 0x41ab01
mov ecx, edi
mov dword [esi + 8], edi
mov eax, dword [esi]
je 0x41aae0
lea ebx, [esi + 0x30]
jmp 0x41aae0
cmp dword [esi + 8], 0
jne 0x41ab47
mov ecx, edi
push 0x3ea
call fcn.00419da0
xor ebx, ebx
mov eax, dword [esi + 0xc]
test eax, eax
je 0x41ab33
cmp eax, dword [esi + 0x10]
je 0x41ab33
push eax
call fcn.004084d0
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
cmp dl, dh
mov edi, dword [esi + 0x20]
je 0x41ab1e
mov edx, eax
mov ebx, dword [esi + 4]
sub edx, ebx
je 0x41ab73
mov dword [esi + 4], ebx
mov dword [esi], ebx
mov edi, eax
xor ecx, ecx
mov ebx, dword [esi]
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
xor ecx, ecx
mov edi, eax
mov eax, dword [esi + 4]
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.0041adb0
test al, al
je 0x41ab1c
mov ebx, eax
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov ecx, edx
sub ecx, eax
cmp edx, dword [esi + 0x14]
jne 0x41ad03
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], eax
lea eax, [ecx + 1]
mov edx, ecx
shr edx, 1
mov dword [esi + 8], ecx
mov dword [esi], edx
lea edi, [edx + ecx]
cmp edi, eax
ja 0x41abb2
mov edi, eax
push edi
call fcn.004084c0
add esp, 4
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x41acf2
mov dword [esi + 0xac], edi
cmp eax, ecx
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x24], eax
jbe 0x41ac2b
cmp ecx, eax
jbe 0x41ac2b
test edx, edx
je 0x41acde
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x18]
add ecx, eax
dec ecx
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 0x24]
lea edx, [ecx + eax]
dec edx
mov ecx, eax
and ecx, 7
mov dword [esi + 4], ecx
mov dword [esi], edx
je 0x41ac72
neg dword [esi + 4]
xor ecx, ecx
mov edx, dword [esi + 0x28]
nop
nop
nop
nop
movzx eax, byte [edx + ecx]
mov edi, dword [esi]
mov byte [edi + ecx], al
dec ecx
cmp dword [esi + 4], ecx
jne 0x41ac10
add edx, ecx
mov dword [esi + 0x28], edx
add dword [esi], ecx
add ecx, dword [esi + 8]
jmp 0x41ac74
mov ecx, edx
shr ecx, 2
mov edx, dword [esi + 0x18]
mov dword [esi + 4], edx
mov edi, eax
mov edx, dword [esi + 4]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, dword [esi + 8]
and edx, 0xfffffffc
lea edi, [eax + edx]
add edx, dword [esi + 0x18]
mov ecx, dword [esi]
and ecx, 1
mov eax, edx
mov dword [esi], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test byte [esi + 8], 1
je 0x41acde
mov eax, dword [esi + 8]
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esi]
mov byte [edx + eax], cl
jmp 0x41acde
mov ecx, eax
mov dword [esi + 4], ecx
mov eax, dword [esi + 0x18]
sub eax, dword [esi + 0x1c]
cmp eax, 0xfffffff8
mov edx, dword [esi + 0x28]
mov ecx, dword [esi]
ja 0x41acde
neg dword [esi + 4]
xor edi, edi
nop
nop
nop
nop
movzx eax, byte [edx + edi]
mov byte [ecx + edi], al
movzx eax, byte [edx + edi - 1]
mov byte [ecx + edi - 1], al
movzx eax, byte [edx + edi - 2]
mov byte [ecx + edi - 2], al
movzx eax, byte [edx + edi - 3]
mov byte [ecx + edi - 3], al
movzx eax, byte [edx + edi - 4]
mov byte [ecx + edi - 4], al
movzx eax, byte [edx + edi - 5]
mov byte [ecx + edi - 5], al
movzx eax, byte [edx + edi - 6]
mov byte [ecx + edi - 6], al
movzx eax, byte [edx + edi - 7]
mov byte [ecx + edi - 7], al
add edi, 0xfffffff8
cmp dword [esi + 4], edi
jne 0x41ac90
push dword [esi + 0xc]
call fcn.004084d0
add esp, 4
mov edi, dword [esi + 0xac]
mov eax, dword [esi + 0x24]
mov dword [esi + 0xc], eax
mov ecx, dword [esi + 8]
lea edx, [eax + ecx]
mov dword [esi + 0x10], edx
add edi, eax
mov dword [esi + 0x14], edi
mov byte [eax + ecx], 0
mov eax, dword [esi + 0xc]
mov dword [esi], eax
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi + 4], eax
mov dword [esi + 0x10], eax
mov word [esi + 0x30], 0x1d13
mov byte [esi + 0x32], 0x26
lea eax, [esi + 0x33]
mov byte [eax + 2], 0
mov word [eax], 0
xor ecx, ecx
nop
nop
movzx eax, byte [esi + ecx + 0x30]
lea edi, [ecx + ecx]
and edi, 2
mov edx, ecx
xor edx, 0xdc4f7839
add edx, edi
xor edx, eax
mov eax, edx
xor eax, 0xc7bb06c4
and edx, 0x1844783b
add edx, edx
sub edx, eax
mov eax, edx
and eax, 1
xor edx, 1
lea eax, [edx + eax*2]
add al, 0xa6
mov byte [esi + ecx + 0x30], al
mov eax, ecx
or eax, 0xfffffffe
not ecx
or ecx, 1
and ecx, eax
not ecx
add ecx, edi
cmp ecx, 6
jb 0x41ad30
xor ecx, ecx
mov eax, dword [esi]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax + ecx]
mov dh, byte [esi + ecx + 0x30]
test dl, dl
je 0x41ab40
inc ecx
cmp dl, dh
je 0x41ad90
jmp 0x41ab40