Function at 0x419960
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 [0x44726c]
call fcn.0043ae20
add esp, 8
lea ecx, [esi + 0x2c]
lea edx, [esi + 0xb0]
push ecx
push edx
push ebx
push dword [ebp + 8]
call eax
test eax, eax
je 0x4199fc
cmp dword [edi], 0xffffffff
jne 0x419aa9
jmp 0x419eaf
push 0xb646c33f
push dword [0x44726c]
call fcn.0043ae20
add esp, 8
mov dword [esi], eax
push 0xe7db718c
push dword [0x44726c]
call fcn.0043ae20
add esp, 8
mov dword [esi + 4], eax
push 0xa3d60213
push dword [0x44726c]
call fcn.0043ae20
add esp, 8
mov dword [esi + 8], eax
mov ebx, dword [esi + 0x2c]
jmp 0x419a53
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x419a85
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [esi]
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x419a50
push dword [ebx + 0x10]
push dword [ebx + 0x18]
push eax
call dword [esi + 4]
cmp eax, 0xffffffff
jne 0x419a85
push dword [edi]
call dword [esi + 8]
mov dword [edi], 0xffffffff
jmp 0x419a50
push 0xeb17dc3b
push dword [0x44726c]
call fcn.0043ae20
add esp, 8
push dword [esi + 0x2c]
call eax
mov ebx, dword [ebp + 0xc]
cmp dword [edi], 0xffffffff
je 0x419eaf
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 0x419ac0
mov edx, dword [ebp + 8]
inc eax
cmp byte [edx], 0
lea edx, [edx + 1]
jne 0x419ad0
mov edx, ebx
nop
nop
nop
nop
nop
inc eax
cmp byte [edx], 0
lea edx, [edx + 1]
jne 0x419ae0
mov dword [esi + 0x20], edi
add eax, 3
and eax, 0xfffffffc
call fcn.00408740
mov eax, esp
and eax, 0xfffffff0
mov dword [esi], eax
mov esp, eax
mov dword [esi + 0x30], 0x37363940
mov dword [esi + 0x34], 0x59575a34
mov dword [esi + 0x38], 0x23606449
mov dword [esi + 0x3c], 0x350a0e03
mov word [esi + 0x40], 0x7150
mov dword [esi + 0x42], 0
mov word [esi + 0x46], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
add dl, 0xe8
xor dl, byte [esi + eax + 0x30]
add dl, 0x78
mov byte [esi + eax + 0x30], dl
inc eax
cmp eax, 0x18
jne 0x419b40
mov dword [esi + 0xc], 0x116a7865
mov byte [esi + 0x10], 0x30
mov dword [esi + 0x11], 0
mov byte [esi + 0x15], 0
xor edi, edi
nop
nop
movzx ebx, byte [esi + edi + 0xc]
mov eax, edi
and eax, 0xb
xor eax, 0x4f2c80cb
mov edx, edi
and edx, 4
sub edx, eax
mov eax, edx
or eax, ebx
not edx
or ebx, edx
add edx, eax
sub edx, ebx
mov eax, edx
and eax, 0x76
xor edx, 0xf6
lea eax, [edx + eax*2]
inc al
mov byte [esi + edi + 0xc], al
inc edi
cmp edi, 0xa
jne 0x419b70
movzx eax, byte [esi + 0xc]
mov edi, dword [esi]
test al, al
je 0x419bcb
lea edx, [esi + 0xd]
mov edi, dword [esi]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x419bc0
mov byte [edi], 0
movzx eax, byte [ecx]
test al, al
je 0x419bed
inc ecx
mov edx, dword [ebp + 8]
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x419be0
jmp 0x419bf0
mov edx, dword [ebp + 8]
mov byte [edi], 0
movzx eax, byte [esi + 0x30]
test al, al
je 0x419c0b
lea ecx, [esi + 0x31]
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x419c00
mov byte [edi], 0
movzx eax, byte [edx]
test al, al
je 0x419c2b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x419c20
mov dword [esi + 4], edi
mov byte [edi], 0x3a
mov dword [esi + 0x30], 0x61b90503
mov dword [esi + 0x34], 0x51516159
mov dword [esi + 0x38], 0x60162d53
mov dword [esi + 0x3c], 0x6c6f595f
mov dword [esi + 0x40], 0x75595259
mov dword [esi + 0x44], 0x7427e9ef
mov dword [esi + 0x48], 0x4c41494a
mov dword [esi + 0x4c], 0x437b407c
mov dword [esi + 0x50], 0x41590f36
mov dword [esi + 0x54], 0x71714179
mov dword [esi + 0x58], 0x6cdcd873
mov dword [esi + 0x5c], 0x64357e7f
mov dword [esi + 0x60], 0x506b7d7b
mov dword [esi + 0x64], 0x51656e65
mov dword [esi + 0x68], 0x52610a2b
mov dword [esi + 0x6c], 0x78022b12
mov dword [esi + 0x70], 0x616b5d63
mov dword [esi + 0x74], 0xe1e7c25
mov dword [esi + 0x78], 0x70751a03
mov dword [esi + 0x7c], 0xc6d1417
mov dword [esi + 0x80], 0x73772f0c
mov dword [esi + 0x84], 0x1c6b0068
mov dword [esi + 0x88], 0xa3a97809
mov dword [esi + 0x8c], 0x420f0c1d
mov dword [esi + 0x90], 0x240c0815
mov dword [esi + 0x94], 0x323f3601
mov dword [esi + 0x98], 0x3e207800
mov dword [esi + 0x9c], 0xc310e0a
mov dword [esi + 0xa0], 0x527e4532
mov dword [esi + 0xa4], 0x8a888c55
mov word [esi + 0xa8], 0x878e
mov word [esi + 0xae], 0
mov dword [esi + 0xaa], 0
mov eax, 0xb66d57d
mov ebx, 0x14992a82
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esi + eax - 0xb66d54d]
mov ecx, ebx
and ecx, 0x14112842
mov edx, eax
and edx, 0x82291bd
or edx, ecx
xor edx, edi
xor edx, 0xf7556c42
lea edi, [edx + 0x66fdd48e]
mov ecx, 0x71
sub ecx, edx
or ecx, 1
lea edx, [edx*2 + 0x66fdd48e]
add edx, ecx
mov ecx, edi
xor edi, 1
add edx, edi
and ecx, 0xfe
sub edx, ecx
add dl, 0x8f
mov byte [esi + eax - 0xb66d54d], dl
inc eax
dec ebx
cmp eax, 0xb66d5fd
jne 0x419d50
mov edx, dword [esi + 4]
inc edx
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx]
test al, al
je 0x419dcb
inc ecx
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x419dc0
mov byte [edx], 0
movzx eax, byte [esi + 0x30]
test al, al
je 0x419deb
lea ecx, [esi + 0x31]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x419de0
mov byte [edx], 0
mov edi, edx
mov ebx, dword [esi]
sub edi, ebx
push 0xefae2064
push dword [0x44726c]
call fcn.0043ae20
add esp, 8
push 0
push edi
push ebx
mov edi, dword [esi + 0x20]
push dword [edi]
call eax
cmp eax, 0xffffffff
jne 0x419e59
cmp dword [edi], 0xffffffff
je 0x419e59
push 0xea8d1240
push dword [0x44726c]
call fcn.0043ae20
add esp, 8
push 2
push dword [edi]
call eax
push 0xa3d60213
push dword [0x44726c]
call fcn.0043ae20
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
xor eax, eax
jmp 0x41a423
cmp eax, 0xffffffff
je 0x419eaf
push 0x400
call fcn.00408770
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.0041a430
mov cl, 1
mov dword [esi + 4], ecx
test al, al
je 0x41a40b
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov ebx, edi
sub ebx, ecx
cmp edi, dword [esi + 0x14]
je 0x419eb6
mov eax, ecx
cmp ebx, ebx
jb 0x41a005
jmp 0x41a063
xor eax, eax
jmp 0x41a423
mov dword [esi], ecx
lea eax, [ebx - 0x1a2ad7d6]
mov ecx, ebx
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
mov ecx, ebx
shr ecx, 1
mov dword [esi + 0x18], ecx
add ecx, ebx
cmp ecx, eax
ja 0x419ed8
mov ecx, eax
mov dword [esi + 8], ecx
push ecx
call fcn.00408770
add esp, 4
mov ecx, dword [esi]
test ecx, ecx
je 0x419ff0
cmp eax, ecx
mov dword [esi + 4], ebx
mov dword [esi + 0x24], edi
mov dword [esi + 0x1c], eax
jbe 0x419f9c
cmp edi, eax
jbe 0x419f9c
test ebx, ebx
je 0x419fda
mov edx, dword [esi + 4]
mov eax, dword [esi]
add eax, edx
dec eax
mov ecx, dword [esi + 0x1c]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x419f3b
neg edi
xor edx, edx
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x419f28
add eax, edx
add ecx, edx
add edx, dword [esi + 4]
mov edi, dword [esi]
sub edi, dword [esi + 0x24]
cmp edi, 0xfffffff8
ja 0x419fda
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 0x419f4d
jmp 0x419fda
mov ecx, ebx
shr ecx, 2
mov edx, dword [esi]
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, edx
mov dword [esi + 0x18], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x419fda
mov eax, dword [esi + 4]
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esi + 0x18]
mov byte [edx + eax], cl
push dword [esi + 0xc]
call fcn.00408780
add esp, 4
mov ebx, dword [esi + 4]
mov ecx, dword [esi]
mov edi, dword [esi + 0x24]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0xc], eax
lea edx, [eax + ebx]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 8]
add edx, eax
mov dword [esi + 0x14], edx
cmp ebx, ebx
jae 0x41a063
add ecx, ebx
sub ecx, edi
add eax, ebx
cmp ecx, 1
jle 0x41a019
lea edi, [eax + ecx]
lea edx, [eax + ecx]
dec edx
jmp 0x41a05e
lea edi, [eax + 1]
mov dword [esi], ecx
mov ecx, dword [esi]
shr ecx, 2
mov edx, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, dword [esi]
and edx, 0xfffffffc
lea edi, [eax + edx]
inc edi
add edx, eax
mov ecx, dword [esi]
shr ecx, 1
and ecx, 1
mov dword [esi + 4], ebx
mov ebx, edx
mov eax, edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, dword [esi]
mov ebx, dword [esi + 4]
test cl, 1
je 0x41a063
and ecx, 2
mov edi, eax
add edi, ecx
add edx, ecx
movzx ecx, byte [edx]
mov byte [edi], cl
mov eax, dword [esi + 0xc]
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], 0x878a9580
mov dword [esi + 0x34], 0x62606467
mov dword [esi + 0x38], 0x6e6e6070
mov byte [esi + 0x3c], 0x5c
mov dword [esi + 0x3d], 0
mov word [esi + 0x41], 0
mov ecx, 0x2fb3b90e
mov edi, 0xf1
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi + ecx - 0x2fb3b8de]
lea eax, [edi - 0x80]
and eax, 0x78
mov ebx, ecx
and ebx, 7
or ebx, eax
xor ebx, 0x87
and ebx, edi
mov eax, ecx
or eax, edx
not edx
or edx, ebx
and edx, eax
add dl, 0xba
mov byte [esi + ecx - 0x2fb3b8de], dl
inc ecx
dec edi
cmp ecx, 0x2fb3b921
jne 0x41a0b0
movzx edx, byte [esi + 0x30]
mov eax, dword [esi + 8]
mov dword [esi + 4], eax
test dl, dl
mov ecx, dword [esi + 0x20]
je 0x41a13c
lea ebx, [esi + 0x30]
mov edi, dword [esi + 8]
mov eax, edi
mov dword [esi + 4], edi
jmp 0x41a11a
movzx edx, byte [ebx]
test dl, dl
mov ecx, dword [esi + 0x20]
je 0x41a13c
mov dh, byte [eax]
test dh, dh
je 0x41a3fa
inc eax
inc ebx
mov ecx, dword [esi + 4]
lea edi, [ecx + 1]
cmp dh, dl
je 0x41a135
mov eax, edi
mov dword [esi + 4], edi
je 0x41a110
lea ebx, [esi + 0x30]
jmp 0x41a110
cmp dword [esi + 4], 0
je 0x41a3fa
mov ebx, dword [esi + 8]
mov eax, dword [esi]
jmp 0x41a15d
cmp dl, dh
mov ecx, dword [esi + 0x20]
mov eax, dword [esi]
je 0x41a40b
mov edx, ebx
sub edx, eax
je 0x41a184
mov dword [esi], eax
mov dword [esi + 4], eax
mov edi, ebx
xor ecx, ecx
mov eax, dword [esi + 4]
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 ecx, dword [esi + 0x20]
add dword [esi + 0x10], edx
lea eax, [esi + 0xc]
push eax
call fcn.0041a430
test al, al
je 0x41a404
mov dword [esi + 4], eax
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov ebx, edi
sub ebx, ecx
cmp edi, dword [esi + 0x14]
je 0x41a1c0
mov eax, ecx
cmp ebx, ebx
jb 0x41a328
jmp 0x41a386
mov dword [esi], ecx
lea eax, [ebx - 0x1a2ad7d6]
mov ecx, ebx
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
mov ecx, ebx
shr ecx, 1
mov dword [esi + 0x28], ecx
add ecx, ebx
cmp ecx, eax
ja 0x41a1e2
mov ecx, eax
mov dword [esi + 0x24], ecx
push ecx
call fcn.00408770
add esp, 4
mov ecx, dword [esi]
test ecx, ecx
je 0x41a313
cmp eax, ecx
mov dword [esi + 8], ebx
mov dword [esi + 0x1c], edi
mov dword [esi + 0x18], eax
jbe 0x41a2bf
cmp edi, eax
jbe 0x41a2bf
test ebx, ebx
je 0x41a2fd
mov edx, dword [esi + 8]
mov eax, dword [esi]
add eax, edx
dec eax
mov ecx, dword [esi + 0x18]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x41a253
neg edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x41a240
add eax, edx
add ecx, edx
add edx, dword [esi + 8]
mov edi, dword [esi]
sub edi, dword [esi + 0x1c]
cmp edi, 0xfffffff8
ja 0x41a2fd
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 0x41a270
jmp 0x41a2fd
mov ecx, ebx
shr ecx, 2
mov edx, dword [esi]
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 + 0x28]
and ecx, 1
mov eax, edx
mov dword [esi + 0x28], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x41a2fd
mov eax, dword [esi + 8]
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esi + 0x28]
mov byte [edx + eax], cl
push dword [esi + 0xc]
call fcn.00408780
add esp, 4
mov ebx, dword [esi + 8]
mov ecx, dword [esi]
mov edi, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
lea edx, [eax + ebx]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x24]
add edx, eax
mov dword [esi + 0x14], edx
cmp ebx, ebx
jae 0x41a386
add ecx, ebx
sub ecx, edi
add eax, ebx
cmp ecx, 1
jle 0x41a33c
lea edi, [eax + ecx]
lea edx, [eax + ecx]
dec edx
jmp 0x41a381
lea edi, [eax + 1]
mov dword [esi], ecx
mov ecx, dword [esi]
shr ecx, 2
mov edx, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, dword [esi]
and edx, 0xfffffffc
lea edi, [eax + edx]
inc edi
add edx, eax
mov ecx, dword [esi]
shr ecx, 1
and ecx, 1
mov dword [esi + 8], ebx
mov ebx, edx
mov eax, edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, dword [esi]
mov ebx, dword [esi + 8]
test cl, 1
je 0x41a386
and ecx, 2
mov edi, eax
add edi, ecx
add edx, ecx
movzx ecx, byte [edx]
mov byte [edi], cl
mov eax, dword [esi + 0xc]
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], 0xce3735
mov ecx, 0xb7c8d44d
lea edx, [esi + 0x30]
nop
nop
nop
nop
nop
movzx ebx, byte [edx]
xor ebx, ecx
mov eax, 0x96ec2584
sub eax, ebx
add ebx, ebx
and ebx, 2
mov edi, ebx
and edi, eax
or ebx, eax
xor ebx, 1
add ebx, edi
mov byte [edx], bl
inc edx
dec ecx
cmp ecx, 0xb7c8d449
jne 0x41a3b0
xor ecx, ecx
mov ebx, dword [esi + 8]
nop
nop
nop
movzx edx, byte [ebx + ecx]
mov dh, byte [esi + ecx + 0x30]
test dl, dl
je 0x41a150
inc ecx
cmp dl, dh
je 0x41a3e0
jmp 0x41a150
push 0x3ea
call fcn.00419650
mov dword [esi + 4], 0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x41a420
cmp eax, dword [esi + 0x10]
je 0x41a420
push eax
call fcn.00408780
add esp, 4
mov eax, dword [esi + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc