Function at 0x40d710
Capabilities:
Encode data using xor
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcf0
mov eax, dword [0x443b74]
mov dword [esp + 0xc0], 0xf32fa3e6
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov byte [esp + 0xcc], 0
mov ecx, 0x52fab67e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x52fab5be]
mov esi, ecx
and esi, edx
add esi, esi
sub edx, esi
add edx, ecx
mov dword [esp + 0x1d0], edx
mov edx, dword [esp + 0x1d0]
add dl, 0x8e
mov byte [esp + ecx - 0x52fab5be], dl
cmp ecx, 0x52fab68a
je 0x40d7c3
movzx edx, byte [esp + ecx - 0x52fab5bd]
lea esi, [ecx + 1]
and esi, edx
add esi, esi
sub edx, esi
add edx, ecx
inc edx
mov dword [esp + 0x1d0], edx
mov edx, dword [esp + 0x1d0]
add dl, 0x8e
mov byte [esp + ecx - 0x52fab5bd], dl
add ecx, 2
jmp 0x40d760
mov ecx, dword [str.GThHyI__DolphinTag]
mov dword [esp + 0x1d0], 0x5e967a79
mov dword [esp + 0x1d4], 0x8e758886
mov dword [esp + 0x1d8], 0x86758c9e
mov dword [esp + 0x1dc], 0x6e9d9e91
mov dword [esp + 0x1e0], 0x85549497
mov dword [esp + 0x1e4], 0x4b439799
mov dword [esp + 0x1e8], 0x975c5156
mov dword [esp + 0x1ec], 0x3f7ba1a5
mov dword [esp + 0x1f0], 0
mov byte [esp + 0x1f4], 0
mov edx, 0x84870704
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edx + 0x7b78facc]
mov edi, edx
and edi, esi
add edi, edi
sub esi, edi
add esi, edx
mov dword [esp + 0x18], esi
mov ebx, dword [esp + 0x18]
add bl, 0xe4
mov byte [esp + edx + 0x7b78facc], bl
cmp edx, 0x84870728
je 0x40d897
movzx esi, byte [esp + edx + 0x7b78facd]
lea edi, [edx + 1]
and edi, esi
add edi, edi
sub esi, edi
add esi, edx
inc esi
mov dword [esp + 0x18], esi
mov ebx, dword [esp + 0x18]
add bl, 0xe4
mov byte [esp + edx + 0x7b78facd], bl
add edx, 2
jmp 0x40d840
movzx edx, byte [esp + 0x1d0]
lea esi, [esp + 0xa60]
test dl, dl
je 0x40d8cb
lea edi, [esp + 0x1d1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x40d8c0
mov byte [esi], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40d8eb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40d8e0
mov byte [esi], 0
movzx ecx, byte [esp + 0xc0]
test cl, cl
je 0x40d91b
lea edx, [esp + 0xc1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d910
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40d93b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40d930
mov byte [esi], 0
mov edx, esi
not edx
lea eax, [esp + 0xa60]
mov ecx, eax
not ecx
and ecx, esi
mov dword [esp + 0x1d0], 0x5bcd599b
mov dword [esp + 0x1d4], 0x47da45d2
mov dword [esp + 0x1d8], 0x43d441ad
mov dword [esp + 0x1dc], 0x4f9b4dd0
mov dword [esp + 0x1e0], 0x4bd349b4
mov dword [esp + 0x1e4], 0x779b75e4
mov dword [esp + 0x1e8], 0x735271aa
mov dword [esp + 0x1ec], 0x7fee7d9d
mov dword [esp + 0x1f0], 0x7bee79e8
mov dword [esp + 0x1f4], 0x6785658d
mov dword [esp + 0x1f8], 0x63fe6181
mov dword [esp + 0x1fc], 0x6ff96d85
mov dword [esp + 0x200], 0x6bbd69fe
mov dword [esp + 0x204], 0x17c3158c
mov dword [esp + 0x208], 0x138d118f
mov dword [esp + 0x20c], 0x1fcb1d83
mov dword [esp + 0x210], 0x1b8d19f6
mov dword [esp + 0x214], 0x7930596
mov dword [esp + 0x218], 0x39f01d5
mov dword [esp + 0x21c], 0xf9a0d9e
mov dword [esp + 0x220], 0xb9c09e5
mov dword [esp + 0x224], 0x37a135d7
mov dword [esp + 0x228], 0x33df31dc
mov dword [esp + 0x22c], 0x3f0b3dd0
mov dword [esp + 0x230], 0x3b3a3932
mov dword [esp + 0x237], 0
mov dword [esp + 0x234], 0
mov esi, 0xcd9c350c
nop
nop
nop
movzx edi, byte [esp + esi + 0x3263ccc4]
mov ebx, esi
and ebx, edi
add ebx, ebx
sub edi, ebx
add edi, esi
mov dword [esp + 0xc0], edi
mov ebx, dword [esp + 0xc0]
add bl, 0xac
mov byte [esp + esi + 0x3263ccc4], bl
cmp esi, 0xcd9c3576
je 0x40dae3
movzx edi, byte [esp + esi + 0x3263ccc5]
lea ebx, [esi + 1]
and ebx, edi
add ebx, ebx
sub edi, ebx
add edi, esi
inc edi
mov dword [esp + 0xc0], edi
mov ebx, dword [esp + 0xc0]
add bl, 0xac
mov byte [esp + esi + 0x3263ccc5], bl
add esi, 2
jmp 0x40da80
and edx, eax
mov dword [esp + 0xc0], 0x8b2b8d7f
mov dword [esp + 0xc4], 0x973f8938
mov word [esp + 0xc8], 0x9594
mov dword [esp + 0xca], 0
mov dword [esp + 0xce], 0
mov dword [esp + 0xd2], 0
mov word [esp + 0xd6], 0
mov esi, 0x390d3eb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + esi - 0x390d32b]
lea ebx, [esi - 1]
and ebx, edi
add ebx, ebx
sub edi, ebx
add edi, esi
dec edi
mov dword [esp + 0x18], edi
mov ebx, dword [esp + 0x18]
add bl, 0x9a
mov byte [esp + esi - 0x390d32b], bl
movzx edi, byte [esp + esi - 0x390d32a]
mov ebx, esi
and ebx, edi
add ebx, ebx
sub edi, ebx
add edi, esi
mov dword [esp + 0x18], edi
mov ebx, dword [esp + 0x18]
add bl, 0x9a
mov byte [esp + esi - 0x390d32a], bl
add esi, 2
cmp esi, 0x390d403
jne 0x40db40
sub ecx, edx
lea edx, [esp + 0xbc]
lea esi, [esp + 0xac]
lea ebx, [esp + 0x1d0]
lea edi, [esp + 0xc0]
push edx
push esi
mov esi, ebx
push ecx
push eax
push ebx
push edi
push 0x449940
call fcn.0040c600
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x444850]