Function at 0x418fc0
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 [0x4495c8]
call fcn.0043c0e0
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
je 0x41905b
cmp dword [edi], 0xffffffff
jne 0x419107
jmp 0x4194d6
push 0xb646c33f
push dword [0x4495c8]
call fcn.0043c0e0
add esp, 8
mov dword [esi + 4], eax
push 0xe7db718c
push dword [0x4495c8]
call fcn.0043c0e0
add esp, 8
mov dword [esi + 0x10], eax
push 0xa3d60213
push dword [0x4495c8]
call fcn.0043c0e0
add esp, 8
mov dword [esi + 8], eax
mov ebx, dword [esi + 0x2c]
jmp 0x4190b3
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x4190e6
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [esi + 4]
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x4190b0
push dword [ebx + 0x10]
push dword [ebx + 0x18]
push eax
call dword [esi + 0x10]
cmp eax, 0xffffffff
jne 0x4190e6
push dword [edi]
call dword [esi + 8]
mov dword [edi], 0xffffffff
jmp 0x4190b0
push 0xeb17dc3b
push dword [0x4495c8]
call fcn.0043c0e0
add esp, 8
push dword [esi + 0x2c]
call eax
cmp dword [edi], 0xffffffff
je 0x4194d6
mov ecx, dword [ebp + 0x10]
mov eax, 0x8d
nop
cmp byte [ecx + eax - 0x8d], 0
lea eax, [eax + 1]
jne 0x419110
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x419130
mov dword [esi + 0x28], edi
mov ecx, edx
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x419140
add eax, 3
and eax, 0xfffffffc
call fcn.00408320
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x10], eax
mov esp, eax
mov dword [esi + 0x34], 0x3d3e2344
mov dword [esi + 0x38], 0x5f595e38
mov dword [esi + 0x3c], 0x397c605b
mov dword [esi + 0x40], 0x4b020201
mov dword [esi + 0x44], 0x7b54
mov byte [esi + 0x48], 0
mov eax, 0x5afbd58b
mov edx, 0xa5042ab4
nop
mov dword [esi + 4], edx
movzx edi, byte [esi + eax - 0x5afbd557]
lea ebx, [eax - 0x5afbd4a4]
and ebx, edi
mov ecx, ebx
and ecx, 0xfffffffd
mov edx, ebx
or edx, 0xfffffffd
inc edx
imul edx, ecx
mov ecx, ebx
and ecx, 2
or ebx, 2
imul ebx, ecx
lea ecx, [edx + edi]
sub ecx, ebx
sub ebx, edx
mov edx, dword [esi + 4]
sub ebx, edi
add ecx, eax
add ebx, edx
and ebx, 0x28
and ecx, 0xd7
sub ecx, ebx
inc cl
mov byte [esi + eax - 0x5afbd557], cl
inc eax
dec edx
cmp eax, 0x5afbd5a0
jne 0x419190
mov dword [esi + 0x14], 0x917a4845
mov byte [esi + 0x18], 0xb0
mov dword [esi + 0x19], 0
mov eax, 0x5d
movzx edx, byte [esi + eax - 0x49]
lea ecx, [eax - 0x6194ad00]
or ecx, edx
and edx, eax
xor edx, ecx
mov ecx, edx
and ecx, 0x8663532c
mov ebx, edx
and ebx, 2
mov edi, ebx
xor edi, 2
imul edi, ecx
or ecx, 2
imul ecx, ebx
mov ebx, edx
xor ebx, 0x2e
add ebx, edi
add ebx, ecx
and edx, 1
xor ebx, 1
lea ecx, [ebx + edx*2]
mov byte [esi + eax - 0x49], cl
inc eax
cmp eax, 0x66
jne 0x419200
movzx eax, byte [esi + 0x14]
mov ebx, dword [esi + 0x10]
test al, al
je 0x41926b
lea ecx, [esi + 0x15]
mov ebx, dword [esi + 0x10]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x419260
mov byte [ebx], 0
mov ecx, dword [ebp + 0x10]
movzx eax, byte [ecx]
test al, al
je 0x41928d
inc ecx
mov edx, dword [ebp + 0xc]
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x419280
jmp 0x419290
mov edx, dword [ebp + 0xc]
mov byte [ebx], 0
movzx eax, byte [esi + 0x34]
test al, al
je 0x4192ab
lea ecx, [esi + 0x35]
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4192a0
mov byte [ebx], 0
mov ecx, dword [ebp + 8]
movzx eax, byte [ecx]
test al, al
je 0x4192cb
inc ecx
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4192c0
mov byte [ebx], 0x3a
mov dword [esi + 0x34], 0x32f9b65
mov dword [esi + 0x38], 0x333f0f33
mov dword [esi + 0x3c], 0x47a4335
mov dword [esi + 0x40], 0x10152729
mov dword [esi + 0x44], 0x1f2f2a23
mov dword [esi + 0x48], 0x184d8779
mov dword [esi + 0x4c], 0x28271f1e
mov dword [esi + 0x50], 0xe1e1dce8
mov dword [esi + 0x54], 0xe3cf91aa
mov dword [esi + 0x58], 0xd3dfefd3
mov dword [esi + 0x5c], 0xc8708cd5
mov dword [esi + 0x60], 0xd8b3c6c9
mov dword [esi + 0x64], 0xf4d1c3cd
mov dword [esi + 0x68], 0xf3c3c6cf
mov dword [esi + 0x6c], 0xf2c7a2bd
mov dword [esi + 0x70], 0xe49eb58e
mov dword [esi + 0x74], 0x83f1c3c5
mov dword [esi + 0x78], 0xe6cae8cf
mov dword [esi + 0x7c], 0x949bf2e5
mov dword [esi + 0x80], 0xf09bd0d1
mov dword [esi + 0x84], 0x918dd1f0
mov dword [esi + 0x88], 0xf081ec84
mov dword [esi + 0x8c], 0x41bf8ce3
mov dword [esi + 0x90], 0xe2959887
mov dword [esi + 0x94], 0x80909c8f
mov dword [esi + 0x98], 0x92959eab
mov dword [esi + 0x9c], 0x9684eca4
mov dword [esi + 0xa0], 0xb08fb6b6
mov dword [esi + 0xa4], 0xf2c2fbb6
mov dword [esi + 0xa8], 0xda24d8ff
mov dword [esi + 0xac], 0x2922
xor eax, eax
nop
nop
nop
mov ecx, eax
add cl, 0x64
xor cl, byte [esi + eax + 0x34]
add cl, 0xc
mov byte [esi + eax + 0x34], cl
inc eax
cmp eax, 0x7c
jne 0x4193d0
inc ebx
movzx eax, byte [edx]
test al, al
je 0x4193fb
inc edx
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x4193f0
mov byte [ebx], 0
movzx eax, byte [esi + 0x34]
test al, al
je 0x41941b
lea ecx, [esi + 0x35]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x419410
mov byte [ebx], 0
mov edi, dword [esi + 0x10]
sub ebx, edi
push 0xefae2064
push dword [0x4495c8]
call fcn.0043c0e0
add esp, 8
push 0
push ebx
push edi
mov edi, dword [esi + 0x28]
push dword [edi]
call eax
cmp eax, 0xffffffff
jne 0x419488
cmp dword [edi], 0xffffffff
je 0x419488
push 0xea8d1240
push dword [0x4495c8]
call fcn.0043c0e0
add esp, 8
push 2
push dword [edi]
call eax
push 0xa3d60213
push dword [0x4495c8]
call fcn.0043c0e0
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
xor eax, eax
jmp 0x419997
cmp eax, 0xffffffff
je 0x4194d6
push 0x400
call fcn.00408350
add esp, 4
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
add eax, 0x400
mov dword [esi + 0x1c], eax
lea eax, [esi + 0x14]
mov ecx, edi
push eax
call fcn.004199b0
mov cl, 1
mov dword [esi + 0x20], ecx
test al, al
je 0x41997f
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0x18]
mov ecx, edi
sub ecx, ebx
cmp edi, dword [esi + 0x1c]
je 0x4194dd
mov eax, ebx
jmp 0x419624
xor eax, eax
jmp 0x419997
lea eax, [ecx + 1]
mov edx, ecx
shr edx, 1
mov dword [esi + 4], ecx
add edx, ecx
cmp edx, eax
ja 0x4194ef
mov edx, eax
mov dword [esi + 0x10], edx
push edx
call fcn.00408350
add esp, 4
test ebx, ebx
je 0x419610
mov ecx, edi
not ecx
and ecx, ebx
mov edx, ebx
not edx
and edx, edi
mov dword [esi + 0x24], edx
mov dword [esi + 0x20], ecx
sub edx, ecx
cmp eax, ebx
mov dword [esi + 8], eax
jbe 0x41955c
lea ecx, [ebx + edx]
cmp ecx, eax
jbe 0x41955c
test edx, edx
je 0x419602
lea eax, [ebx + edx]
dec eax
mov ecx, dword [esi + 8]
add ecx, edx
dec ecx
mov ebx, edx
and ebx, 7
je 0x4195a4
mov dword [esi + 0xc], edx
neg ebx
xor edi, edi
movzx edx, byte [eax + edi]
mov byte [ecx + edi], dl
dec edi
cmp ebx, edi
jne 0x419545
add eax, edi
add ecx, edi
mov ebx, dword [esi + 0xc]
add ebx, edi
jmp 0x4195a6
mov ecx, edx
shr ecx, 2
mov dword [esi + 0xc], edx
mov edx, ebx
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, dword [esi + 0xc]
mov edx, ecx
and edx, 0xfffffffc
add eax, edx
add edx, ebx
shr ecx, 1
and ecx, 1
mov ebx, edx
mov dword [esi + 0x20], eax
mov edi, eax
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, dword [esi + 0xc]
test cl, 1
je 0x419602
and ecx, 2
movzx eax, byte [edx + ecx]
mov edx, dword [esi + 0x20]
mov byte [edx + ecx], al
jmp 0x419602
mov ebx, edx
mov edx, dword [esi + 0x20]
sub edx, dword [esi + 0x24]
cmp edx, 0xfffffff8
ja 0x419602
neg ebx
xor edi, edi
movzx edx, byte [eax + edi]
mov byte [ecx + edi], dl
movzx edx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], dl
movzx edx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], dl
movzx edx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], dl
movzx edx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], dl
movzx edx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], dl
movzx edx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], dl
movzx edx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], dl
add edi, 0xfffffff8
cmp ebx, edi
jne 0x4195b5
push dword [esi + 0x14]
call fcn.00408360
add esp, 4
mov eax, dword [esi + 8]
mov dword [esi + 0x14], eax
mov ecx, dword [esi + 4]
lea edx, [eax + ecx]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x10]
add edx, eax
mov dword [esi + 0x1c], edx
mov byte [eax + ecx], 0
mov eax, dword [esi + 0x14]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x18]
inc eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x34], 0xd1cacbdc
mov dword [esi + 0x38], 0xef4f0f1
mov dword [esi + 0x3c], 0xa0e0cfc
mov byte [esi + 0x40], 0xd8
mov dword [esi + 0x41], 0
mov dword [esi + 0x44], 0
mov ecx, 0xf9
mov edx, 0x1be26406
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esi + ecx - 0xc5]
mov eax, ecx
xor eax, edx
and eax, edi
xor eax, edx
mov ebx, eax
not ebx
and ebx, 0x22
add ebx, ebx
xor eax, 0x22
sub ebx, eax
mov byte [esi + ecx - 0xc5], bl
inc ecx
dec edx
cmp ecx, 0x10d
jne 0x419670
movzx ecx, byte [esi + 0x34]
mov eax, dword [esi + 8]
mov dword [esi + 4], eax
test cl, cl
je 0x4196ea
lea edx, [esi + 0x34]
mov eax, dword [esi + 8]
mov edi, eax
mov dword [esi + 4], eax
jmp 0x4196c7
movzx ecx, byte [edx]
test cl, cl
je 0x4196ea
movzx eax, byte [edi]
test al, al
je 0x41996b
inc edi
inc edx
mov ebx, dword [esi + 4]
inc ebx
cmp al, cl
je 0x4196e3
mov eax, ebx
mov dword [esi + 4], ebx
mov edi, ebx
je 0x4196c0
lea edx, [esi + 0x34]
jmp 0x4196c0
cmp dword [esi + 4], 0
je 0x41996b
mov ecx, dword [esi + 0x28]
mov edi, dword [esi + 8]
jmp 0x41970b
cmp cl, dl
mov ecx, dword [esi + 0x28]
je 0x41997f
mov eax, edi
mov edx, dword [esi + 0xc]
sub eax, edx
je 0x419733
mov ebx, edx
mov dword [esi + 8], edi
xor ecx, ecx
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
xor ecx, ecx
mov edi, dword [esi + 8]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, dword [esi + 0x28]
add dword [esi + 0x18], eax
lea eax, [esi + 0x14]
push eax
call fcn.004199b0
test al, al
je 0x419978
mov dword [esi + 0x20], eax
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0x18]
mov ecx, edi
sub ecx, ebx
cmp edi, dword [esi + 0x1c]
je 0x419760
mov eax, ebx
jmp 0x4198af
lea eax, [ecx + 1]
mov edx, ecx
shr edx, 1
mov dword [esi + 4], ecx
add edx, ecx
cmp edx, eax
ja 0x419772
mov edx, eax
mov dword [esi + 0x10], edx
push edx
call fcn.00408350
add esp, 4
test ebx, ebx
je 0x41989b
mov ecx, edi
not ecx
and ecx, ebx
mov edx, ebx
not edx
and edx, edi
mov dword [esi + 0x30], edx
mov dword [esi + 0x24], ecx
sub edx, ecx
cmp eax, ebx
mov dword [esi + 8], eax
jbe 0x4197e7
lea ecx, [ebx + edx]
cmp ecx, eax
jbe 0x4197e7
test edx, edx
je 0x41988d
lea eax, [ebx + edx]
dec eax
mov ecx, dword [esi + 8]
add ecx, edx
dec ecx
mov ebx, edx
and ebx, 7
je 0x41982f
mov dword [esi + 0xc], edx
neg ebx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax + edi]
mov byte [ecx + edi], dl
dec edi
cmp ebx, edi
jne 0x4197d0
add eax, edi
add ecx, edi
mov ebx, dword [esi + 0xc]
add ebx, edi
jmp 0x419831
mov ecx, edx
shr ecx, 2
mov dword [esi + 0xc], edx
mov edx, ebx
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, dword [esi + 0xc]
mov edx, ecx
and edx, 0xfffffffc
add eax, edx
add edx, ebx
shr ecx, 1
and ecx, 1
mov ebx, edx
mov dword [esi + 0x24], eax
mov edi, eax
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, dword [esi + 0xc]
test cl, 1
je 0x41988d
and ecx, 2
movzx eax, byte [edx + ecx]
mov edx, dword [esi + 0x24]
mov byte [edx + ecx], al
jmp 0x41988d
mov ebx, edx
mov edx, dword [esi + 0x24]
sub edx, dword [esi + 0x30]
cmp edx, 0xfffffff8
ja 0x41988d
neg ebx
xor edi, edi
movzx edx, byte [eax + edi]
mov byte [ecx + edi], dl
movzx edx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], dl
movzx edx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], dl
movzx edx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], dl
movzx edx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], dl
movzx edx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], dl
movzx edx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], dl
movzx edx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], dl
add edi, 0xfffffff8
cmp ebx, edi
jne 0x419840
push dword [esi + 0x14]
call fcn.00408360
add esp, 4
mov eax, dword [esi + 8]
mov dword [esi + 0x14], eax
mov ecx, dword [esi + 4]
lea edx, [eax + ecx]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x10]
add edx, eax
mov dword [esi + 0x1c], edx
mov byte [eax + ecx], 0
mov eax, dword [esi + 0x14]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x18]
inc eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x18], eax
mov word [esi + 0x34], 0x577
mov byte [esi + 0x36], 0x7a
mov word [esi + 0x37], 0
xor ecx, ecx
mov dword [esi + 0x10], 0xbb
xor eax, eax
nop
nop
mov dword [esi + 4], ecx
movzx edi, byte [esi + eax + 0x34]
mov ebx, eax
xor ebx, 0xbfa5d8bf
lea edx, [ecx + ebx]
and edx, edi
add edx, edx
mov ecx, dword [esi + 4]
sub ecx, edx
sub edx, ebx
add ebx, edi
sub edx, edi
add ecx, ebx
and ecx, 0xbfa5dffe
add ecx, 0x44
xor ecx, 0xfe
mov edi, dword [esi + 0x10]
add edx, edi
and edx, 0xfe
or edx, ecx
mov ecx, dword [esi + 4]
add ecx, ebx
and ecx, 1
not edx
add edx, ecx
mov ecx, dword [esi + 4]
mov byte [esi + eax + 0x34], dl
inc eax
add ecx, 2
add edi, 0xfffffffe
mov dword [esi + 0x10], edi
cmp eax, 5
jne 0x4198e0
xor eax, eax
mov edi, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edi + eax]
movzx edx, byte [esi + eax + 0x34]
test cl, cl
je 0x419700
inc eax
cmp cl, dl
je 0x419950
jmp 0x419700
mov ecx, dword [esi + 0x28]
push 0x3ea
call fcn.00418cf0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x419994
cmp eax, dword [esi + 0x18]
je 0x419994
push eax
call fcn.00408360
add esp, 4
mov eax, dword [esi + 0x20]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc