Function at 0x40d860
Capabilities:
Encode data using xor
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcf0
mov eax, dword [str.5c9b8674a630d9101b46733aa37f15ec]
mov dword [esp + 0xc], eax
mov dword [esp + 0xc0], 0x83473b78
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcb], 0
mov eax, 0x2b
mov edx, 0x40888394
nop
nop
mov esi, edx
and esi, 0x9c
mov ecx, eax
and ecx, 0x23
or ecx, esi
movzx esi, byte [esp + eax + 0x95]
xor ecx, 0x23
and ecx, esi
not esi
or esi, edx
add esi, eax
add esi, 0xbf777c41
or ecx, esi
mov dword [esp + 0x1f8], ecx
mov ecx, dword [esp + 0x1f8]
add cl, 0x13
mov byte [esp + eax + 0x95], cl
inc eax
dec edx
cmp eax, 0x3a
jne 0x40d8b0
mov eax, dword [str.tLYMe5__n12]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1f8], 0x84ccbca5
mov dword [esp + 0x1fc], 0xa4a1a2b0
mov dword [esp + 0x200], 0xacb9a6d0
mov dword [esp + 0x204], 0xb4d9d8a5
mov dword [esp + 0x208], 0xdd6eaeaf
mov dword [esp + 0x20c], 0xa3ab9fad
mov dword [esp + 0x210], 0x9f565958
mov dword [esp + 0x214], 0x67a39991
mov dword [esp + 0x218], 0
mov dword [esp + 0x21b], 0
mov edx, 0xc915f30b
mov edi, 0x16ea0cf4
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], edi
mov dword [esp], edx
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x36ea0eed]
lea esi, [edx + edx]
not esi
lea ecx, [esi + edx]
mov eax, ecx
and eax, 0xe2d77e85
add eax, eax
sub eax, ecx
add eax, 0x9d28817a
mov ebx, ecx
and ebx, 0x62d77e85
mov edi, ebx
not edi
add edi, ecx
add edi, 0x62d77e86
mov dword [esp + 8], edi
mov edi, dword [esp + 4]
or ecx, 0x62d77e85
and ecx, eax
lea eax, [esi + edx]
add eax, 0x62d77e86
sub ebx, eax
mov eax, edi
and eax, 0x144a08ad
mov edx, dword [esp]
and edx, 0x41154152
or edx, eax
mov eax, edx
xor eax, 0x63b54552
and edx, 0x100017a
xor edx, 0x6ad7fead
lea esi, [eax + edx]
inc esi
and eax, 0x22c20c85
mov edx, dword [esp]
and edx, 0x900817a
or edx, eax
or edx, esi
mov esi, dword [esp + 8]
and esi, 0x53956b7e
mov eax, ecx
xor eax, ebx
and ebx, 0xac6a9481
or ebx, esi
xor ebx, 0xac6a9481
and ebx, ecx
add eax, ecx
sub eax, ebx
xor eax, edx
mov edx, dword [esp]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, eax
xor ecx, 0x4d
and eax, 0x32
add eax, eax
sub eax, ecx
mov byte [esp + edx + 0x36ea0eed], al
inc edx
dec edi
cmp edx, 0xc915f332
jne 0x40d980
movzx ecx, byte [esp + 0x1f8]
lea eax, [esp + 0x9f8]
test cl, cl
je 0x40da8b
lea edx, [esp + 0x1f9]
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40da80
mov byte [eax], 0
mov edx, dword [esp + 0x24]
movzx ecx, byte [edx]
test cl, cl
je 0x40daab
inc edx
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40daa0
mov byte [eax], 0
movzx ecx, byte [esp + 0xc0]
test cl, cl
je 0x40dadb
lea edx, [esp + 0xc1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40dad0
mov byte [eax], 0
mov edx, dword [esp + 0xc]
movzx ecx, byte [edx]
test cl, cl
je 0x40dafb
inc edx
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40daf0
mov byte [eax], 0
lea ecx, [esp + 0x9f8]
mov edx, ecx
not edx
and edx, eax
add edx, edx
mov dword [esp + 4], edx
mov dword [esp + 0x1f8], 0x3ba93973
mov dword [esp + 0x1fc], 0x3fa83d94
mov dword [esp + 0x200], 0x238e2199
mov dword [esp + 0x204], 0x274b25b6
mov dword [esp + 0x208], 0x2bb32992
mov dword [esp + 0x20c], 0x2f8b2dba
mov dword [esp + 0x210], 0x13701174
mov dword [esp + 0x214], 0x178415b1
mov dword [esp + 0x218], 0x1bb41986
mov dword [esp + 0x21c], 0x1fb91db1
mov dword [esp + 0x220], 0x39401bd
mov dword [esp + 0x224], 0x79505a9
mov dword [esp + 0x228], 0xb5909a8
mov dword [esp + 0x22c], 0xf630d92
mov dword [esp + 0x230], 0x73e97197
mov dword [esp + 0x234], 0x771b75eb
mov dword [esp + 0x238], 0x7be979d0
mov dword [esp + 0x23c], 0x7fd37de8
mov dword [esp + 0x240], 0x63f76111
mov dword [esp + 0x244], 0x67c865f0
mov dword [esp + 0x248], 0x6bc669c1
mov dword [esp + 0x24c], 0x6ffd6dcf
mov dword [esp + 0x250], 0x53f751ca
mov dword [esp + 0x254], 0x575b55f6
mov dword [esp + 0x258], 0x5b58595c
mov dword [esp + 0x25c], 0
xor eax, ecx
mov dword [esp], eax
mov esi, 0xd9661078
mov edi, 0x2699ef87
nop
nop
movzx ecx, byte [esp + edi - 0x2699ed8f]
mov ebx, ecx
not ebx
or ebx, esi
mov edx, ebx
not edx
mov eax, ebx
and eax, 2
or ebx, 0xffffff02
inc ebx
imul ebx, eax
mov eax, edx
and eax, 2
or edx, 2
imul edx, eax
sub ebx, edx
add ecx, edi
and ecx, 0x293ffff
lea eax, [ebx + ecx]
add eax, 0x24080000
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0xc0]
mov eax, ecx
xor eax, 0xb3
and ecx, 0x4c
add ecx, ecx
sub ecx, eax
add cl, 2
mov byte [esp + edi - 0x2699ed8f], cl
dec esi
inc edi
cmp esi, 0xd9661010
jne 0x40dc40
mov dword [esp + 0xc0], 0x13f31127
mov dword [esp + 0xc4], 0x1ff71de2
mov word [esp + 0xc8], 0x191e
mov dword [esp + 0xca], 0
mov dword [esp + 0xce], 0
mov word [esp + 0xd2], 0
mov esi, 1
mov edi, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esi - 1]
movzx edx, byte [esp + esi + 0xbf]
mov ebx, edi
or ebx, 0x89f32b53
or eax, 0x89f32b53
add ebx, esi
add ebx, eax
lea ecx, [ebx + edx]
and ebx, edx
mov edx, ebx
or edx, 2
mov eax, ebx
and eax, 2
imul edx, eax
xor eax, 2
and ebx, 0xfffffffd
imul ebx, eax
add ebx, edx
mov eax, ebx
not eax
and eax, ecx
xor ebx, ecx
add eax, eax
sub eax, ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, eax
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
add al, 0xba
mov byte [esp + esi + 0xbf], al
inc esi
dec edi
cmp edi, 0xffffffeb
jne 0x40dd00
mov edi, dword [esp + 4]
sub edi, dword [esp]
lea eax, [esp + 0xb8]
lea ecx, [esp + 0xac]
lea esi, [esp + 0x1f8]
lea edx, [esp + 0xc0]
push eax
push ecx
push edi
lea eax, [esp + 0xa04]
push eax
push esi
push edx
push 0x44c200
call fcn.0040c4d0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4477b8]