Function at 0x41a1f0
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, 0xf0
mov esi, esp
mov edi, ecx
mov dword [esi + 0xdc], 0
mov dword [esi + 0xd8], 0
mov dword [esi + 0xd4], 0
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
mov dword [esi + 0xc0], 0
mov dword [esi + 0xc4], 2
mov dword [esi + 0xc8], 1
push 0x565577c1
push dword [0x449560]
call fcn.0043c370
add esp, 8
lea ecx, [esi + 0x3c]
lea edx, [esi + 0xc0]
push ecx
push edx
push dword [ebp + 0xc]
push dword [ebp + 8]
call eax
test eax, eax
jne 0x41a31e
push 0xb646c33f
push dword [0x449560]
call fcn.0043c370
add esp, 8
mov dword [esi + 0xc], eax
push 0xe7db718c
push dword [0x449560]
call fcn.0043c370
add esp, 8
mov dword [esi + 0x10], eax
push 0xa3d60213
push dword [0x449560]
call fcn.0043c370
add esp, 8
mov dword [esi + 0x14], eax
mov ebx, dword [esi + 0x3c]
jmp 0x41a2d3
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x41a306
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [esi + 0xc]
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x41a2d0
push dword [ebx + 0x10]
push dword [ebx + 0x18]
push eax
call dword [esi + 0x10]
cmp eax, 0xffffffff
jne 0x41a306
push dword [edi]
call dword [esi + 0x14]
mov dword [edi], 0xffffffff
jmp 0x41a2d0
push 0xeb17dc3b
push dword [0x449560]
call fcn.0043c370
add esp, 8
push dword [esi + 0x3c]
call eax
xor ebx, ebx
cmp dword [edi], 0xffffffff
je 0x41ac3b
mov edx, dword [ebp + 0x10]
nop
nop
nop
nop
cmp byte [edx + ebx], 0
lea ebx, [ebx + 1]
jne 0x41a330
lea ecx, [edx + ebx]
dec ecx
mov eax, edx
not eax
and eax, ecx
xor ecx, edx
add eax, eax
sub eax, ecx
xor ecx, ecx
mov edx, dword [ebp + 8]
nop
nop
cmp byte [edx + ecx], 0
lea ecx, [ecx + 1]
jne 0x41a350
mov dword [esi + 0x2c], edi
add eax, 0x90
add ecx, edx
dec ecx
mov ebx, edx
not ebx
and ebx, ecx
xor ecx, edx
add ebx, ebx
sub ebx, ecx
mov edx, ebx
and edx, eax
add edx, edx
xor ecx, ecx
mov edi, dword [ebp + 0xc]
nop
nop
nop
nop
nop
cmp byte [edi + ecx], 0
lea ecx, [ecx + 1]
jne 0x41a380
xor ebx, eax
add edx, ebx
lea eax, [edi + ecx]
dec eax
mov ecx, edi
not ecx
and ecx, eax
xor eax, edi
sub edx, eax
lea eax, [edx + ecx*2]
add eax, 3
and eax, 0xfffffffc
call fcn.00408710
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x10], eax
mov esp, eax
mov dword [esi + 0x40], 0xe5e6f32c
mov dword [esi + 0x44], 0x170916f8
mov dword [esi + 0x48], 0xf934300b
mov dword [esi + 0x4c], 0xfb3232d1
mov word [esi + 0x50], 0xbbdc
mov dword [esi + 0x52], 0
mov eax, 0xf4
mov ebx, 0xfc88d00c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esi + eax - 0xb4]
mov dword [esi + 0xc], ecx
mov ecx, ebx
xor ecx, 0x10
mov edx, ebx
or edx, 0xef
and edx, ecx
lea edi, [ebx + 0x3773000]
or edi, 0x10
add edi, eax
or edi, edx
mov edx, dword [esi + 0xc]
lea ecx, [edx + edx]
not ecx
add ecx, edx
and edx, 0x10
and ecx, 0xef
or ecx, edx
xor ecx, edi
add cl, 0x41
mov byte [esi + eax - 0xb4], cl
inc eax
dec ebx
cmp eax, 0x10a
jne 0x41a3f0
mov dword [esi + 0x18], 0x5f8a7c73
mov byte [esi + 0x1c], 0x3c
mov dword [esi + 0x1d], 0
mov word [esi + 0x21], 0
mov eax, 0xd403418a
mov edx, 0xa8068314
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
and ecx, 0x88008014
mov edi, eax
xor edi, 0x4fc4dc0a
add ecx, edi
add ecx, 0x2bfcbe76
movzx edi, byte [esi + eax + 0x2bfcbe8e]
xor ecx, edi
add ecx, 0x7127b3cd
mov edi, ecx
and edi, 1
xor ecx, 1
lea ecx, [ecx + edi*2]
mov byte [esi + eax + 0x2bfcbe8e], cl
inc eax
add edx, 2
cmp eax, 0xd4034195
jne 0x41a470
movzx eax, byte [esi + 0x18]
mov ebx, dword [esi + 0x10]
test al, al
je 0x41a4db
lea edx, [esi + 0x19]
mov ebx, dword [esi + 0x10]
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 0x41a4d0
mov byte [ebx], 0
mov ecx, dword [ebp + 0x10]
movzx eax, byte [ecx]
test al, al
je 0x41a4fd
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 0x41a4f0
jmp 0x41a500
mov edx, dword [ebp + 8]
mov byte [ebx], 0
movzx eax, byte [esi + 0x40]
test al, al
je 0x41a51b
lea ecx, [esi + 0x41]
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a510
mov byte [ebx], 0
movzx eax, byte [edx]
test al, al
je 0x41a53b
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 0x41a530
mov byte [ebx], 0x3a
mov dword [esi + 0x40], 0x1109fdf3
mov dword [esi + 0x44], 0x1011119
mov dword [esi + 0x48], 0x70de3503
mov dword [esi + 0x4c], 0x4771907
mov dword [esi + 0x50], 0x7d090209
mov dword [esi + 0x54], 0x7c2fe9e7
mov dword [esi + 0x58], 0x7471797a
mov dword [esi + 0x5c], 0x737b7004
mov dword [esi + 0x60], 0x7169a74e
mov dword [esi + 0x64], 0x61617179
mov dword [esi + 0x68], 0x74848863
mov dword [esi + 0x6c], 0x7cad6667
mov dword [esi + 0x70], 0x607b756b
mov dword [esi + 0x74], 0x216d666d
mov dword [esi + 0x78], 0x22517a9b
mov dword [esi + 0x7c], 0x48728b62
mov dword [esi + 0x80], 0x915b5553
mov dword [esi + 0x84], 0x5656742d
mov dword [esi + 0x88], 0x607d4a53
mov dword [esi + 0x8c], 0x64754c4f
mov dword [esi + 0x90], 0x836f4764
mov dword [esi + 0x94], 0xa46b5068
mov dword [esi + 0x98], 0x535988b9
mov dword [esi + 0x9c], 0x72b7b4a5
mov dword [esi + 0xa0], 0xaca4b8ad
mov dword [esi + 0xa4], 0xa2b7beb1
mov dword [esi + 0xa8], 0xa6b068d0
mov dword [esi + 0xac], 0xa4a1d6aa
mov dword [esi + 0xb0], 0x62769da2
mov dword [esi + 0xb4], 0x7a48449d
mov word [esi + 0xb8], 0x6f76
mov word [esi + 0xbe], 0
mov dword [esi + 0xba], 0
mov eax, 0x30cda9
mov ecx, 0x56
movzx edx, byte [esi + eax - 0x30cd69]
mov edi, ecx
xor edi, eax
and edi, edx
xor edi, eax
mov edx, edi
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
add dl, 0xb2
mov byte [esi + eax - 0x30cd69], dl
inc eax
dec ecx
cmp eax, 0x30ce29
jne 0x41a660
inc ebx
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx]
test al, al
je 0x41a6ab
inc ecx
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a6a0
mov byte [ebx], 0
movzx eax, byte [esi + 0x40]
test al, al
je 0x41a6cb
lea ecx, [esi + 0x41]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a6c0
mov byte [ebx], 0
mov edi, dword [esi + 0x10]
sub ebx, edi
push 0xefae2064
push dword [0x449560]
call fcn.0043c370
add esp, 8
push 0
push ebx
push edi
mov edi, dword [esi + 0x2c]
push dword [edi]
call eax
cmp eax, 0xffffffff
jne 0x41a738
cmp dword [edi], 0xffffffff
je 0x41a738
push 0xea8d1240
push dword [0x449560]
call fcn.0043c370
add esp, 8
push 2
push dword [edi]
call eax
push 0xa3d60213
push dword [0x449560]
call fcn.0043c370
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
xor ebx, ebx
jmp 0x41ac3b
cmp eax, 0xffffffff
je 0x41a864
push 0x400
call fcn.00408740
add esp, 4
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
add eax, 0x400
mov dword [esi + 0x20], eax
lea eax, [esi + 0x18]
mov ecx, edi
push eax
call fcn.0041ac50
mov bl, 1
test al, al
je 0x41ac26
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov ebx, ecx
sub ebx, eax
cmp ecx, dword [esi + 0x20]
jne 0x41a8d4
mov dword [esi + 0x10], ecx
mov dword [esi + 0xc], eax
lea ecx, [ebx + 1]
mov eax, ebx
shr eax, 1
mov dword [esi + 0x28], eax
lea edi, [eax + ebx]
cmp edi, ecx
ja 0x41a79d
mov edi, ecx
mov dword [esi + 0x30], ecx
push edi
call fcn.00408740
add esp, 4
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x41a8c6
mov dword [esi + 0x38], edi
cmp eax, ecx
mov dword [esi + 0x14], ebx
mov edx, dword [esi + 0x10]
mov dword [esi + 0x24], eax
jbe 0x41a86b
cmp edx, eax
jbe 0x41a86b
test ebx, ebx
je 0x41a8b2
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x24]
add eax, edx
dec eax
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x41a802
neg edi
xor edx, edx
movzx ebx, byte [ecx + edx]
mov byte [eax + edx], bl
dec edx
cmp edi, edx
jne 0x41a7ef
add ecx, edx
add eax, edx
add edx, dword [esi + 0x14]
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 0x10]
cmp edi, 0xfffffff8
ja 0x41a8b2
neg edx
xor edi, edi
movzx ebx, byte [ecx + edi]
mov byte [eax + edi], bl
movzx ebx, byte [ecx + edi - 1]
mov byte [eax + edi - 1], bl
movzx ebx, byte [ecx + edi - 2]
mov byte [eax + edi - 2], bl
movzx ebx, byte [ecx + edi - 3]
mov byte [eax + edi - 3], bl
movzx ebx, byte [ecx + edi - 4]
mov byte [eax + edi - 4], bl
movzx ebx, byte [ecx + edi - 5]
mov byte [eax + edi - 5], bl
movzx ebx, byte [ecx + edi - 6]
mov byte [eax + edi - 6], bl
movzx ebx, byte [ecx + edi - 7]
mov byte [eax + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x41a815
jmp 0x41a8b2
xor ebx, ebx
jmp 0x41ac3b
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
not edx
or edx, 0xfffffffc
add edx, dword [esi + 0x30]
lea edi, [eax + edx]
add edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x28]
and ecx, 1
mov eax, ebx
mov ebx, edx
mov dword [esi + 0xc], edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
test al, 1
je 0x41a8b2
mov ecx, dword [esi + 0x14]
and ecx, 2
movzx edx, byte [edx + ecx]
mov eax, dword [esi + 0xc]
mov byte [eax + ecx], dl
push dword [esi + 0x18]
call fcn.00408750
add esp, 4
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0x38]
mov eax, dword [esi + 0x24]
mov dword [esi + 0x18], eax
lea ecx, [eax + ebx]
mov dword [esi + 0x1c], ecx
add edi, eax
mov dword [esi + 0x20], edi
mov byte [eax + ebx], 0
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x1c]
inc eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x40], 0xd1cacbdc
mov dword [esi + 0x44], 0xef4f0f1
mov dword [esi + 0x48], 0xa0e0cfc
mov byte [esi + 0x4c], 0xd8
mov dword [esi + 0x4d], 0
lea ecx, [esi + 0x40]
mov edi, 0x58deb006
movzx ebx, byte [ecx]
mov edx, edi
or edx, ebx
lea eax, [edi - 0x58deb000]
and eax, ebx
not edx
or edx, eax
mov eax, edx
not eax
or eax, 0x22
mov ebx, edx
xor ebx, 0x22
add ebx, eax
mov eax, edx
and eax, 0xdd
sub ebx, eax
lea eax, [ebx + edx*2]
add al, 2
mov byte [ecx], al
inc ecx
dec edi
cmp edi, 0x58deaff5
jne 0x41a910
movzx edx, byte [esi + 0x40]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x10], eax
test dl, dl
mov ecx, dword [esi + 0x2c]
je 0x41a99c
lea ebx, [esi + 0x40]
mov edi, dword [esi + 0xc]
mov eax, edi
mov dword [esi + 0x10], edi
jmp 0x41a97a
movzx edx, byte [ebx]
test dl, dl
mov ecx, dword [esi + 0x2c]
je 0x41a99c
mov dh, byte [eax]
test dh, dh
je 0x41ac1a
inc eax
inc ebx
mov ecx, dword [esi + 0x10]
lea edi, [ecx + 1]
cmp dh, dl
je 0x41a995
mov eax, edi
mov dword [esi + 0x10], edi
je 0x41a970
lea ebx, [esi + 0x40]
jmp 0x41a970
cmp dword [esi + 0x10], 0
je 0x41ac1a
mov eax, dword [esi + 0xc]
jmp 0x41a9bb
cmp dl, dh
mov ecx, dword [esi + 0x2c]
je 0x41ac26
mov edx, eax
mov ebx, dword [esi + 0x14]
sub edx, ebx
je 0x41a9e4
mov dword [esi + 0xc], eax
mov eax, ebx
xor ecx, ecx
mov edi, dword [esi + 0xc]
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
xor ecx, ecx
mov edi, dword [esi + 0xc]
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, dword [esi + 0x2c]
add dword [esi + 0x1c], edx
lea eax, [esi + 0x18]
push eax
call fcn.0041ac50
test al, al
je 0x41ac24
mov ebx, eax
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov ecx, edx
sub ecx, eax
cmp edx, dword [esi + 0x20]
jne 0x41ab80
mov dword [esi + 0x28], edx
mov dword [esi + 0x24], eax
lea edx, [ecx + 1]
mov eax, ecx
shr eax, 1
mov dword [esi + 0x14], ecx
mov dword [esi + 0xc], eax
lea edi, [eax + ecx]
cmp edi, edx
ja 0x41aa26
mov edi, edx
mov dword [esi + 0x10], edx
push edi
call fcn.00408740
add esp, 4
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x41ab6f
mov dword [esi + 0x38], edi
cmp eax, ecx
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x30], eax
jbe 0x41aa9d
cmp ecx, eax
jbe 0x41aa9d
test edx, edx
je 0x41ab5e
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x30]
add ecx, eax
dec ecx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0x24]
add ecx, eax
dec ecx
mov dword [esi + 0x34], ecx
mov ecx, eax
and ecx, 7
mov dword [esi + 0x10], ecx
je 0x41aaf0
neg dword [esi + 0x10]
xor edx, edx
mov ecx, dword [esi + 0x34]
movzx eax, byte [ecx + edx]
mov edi, dword [esi + 0xc]
mov byte [edi + edx], al
dec edx
cmp dword [esi + 0x10], edx
jne 0x41aa80
add ecx, edx
mov dword [esi + 0x34], ecx
add dword [esi + 0xc], edx
add edx, dword [esi + 0x14]
jmp 0x41aaf2
mov ecx, edx
shr ecx, 2
mov edx, dword [esi + 0x24]
mov dword [esi + 0x28], edx
mov edi, eax
mov edx, dword [esi + 0x28]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, dword [esi + 0x14]
not edx
or edx, 0xfffffffc
add edx, dword [esi + 0x10]
lea edi, [eax + edx]
add edx, dword [esi + 0x24]
mov ecx, dword [esi + 0xc]
and ecx, 1
mov eax, edx
mov dword [esi + 0xc], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test byte [esi + 0x14], 1
je 0x41ab5e
mov eax, dword [esi + 0x14]
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esi + 0xc]
mov byte [edx + eax], cl
jmp 0x41ab5e
mov edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x24]
sub eax, dword [esi + 0x28]
cmp eax, 0xfffffff8
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x34]
ja 0x41ab5e
neg dword [esi + 0x10]
xor edi, edi
nop
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 + 0x10], edi
jne 0x41ab10
push dword [esi + 0x18]
call fcn.00408750
add esp, 4
mov edi, dword [esi + 0x38]
mov eax, dword [esi + 0x30]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x14]
lea edx, [eax + ecx]
mov dword [esi + 0x1c], edx
add edi, eax
mov dword [esi + 0x20], edi
mov byte [eax + ecx], 0
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x1c]
inc eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x1c], eax
mov word [esi + 0x40], 0x9d93
mov byte [esi + 0x42], 0x66
mov word [esi + 0x43], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi + ecx + 0x40]
lea eax, [ecx + 0x19]
mov edi, 0xe6
sub edi, ecx
or eax, edx
not edx
or edx, edi
and edx, eax
add dl, 0x83
mov byte [esi + ecx + 0x40], dl
mov eax, ecx
xor eax, 0x7ffffffe
mov edx, ecx
or edx, 1
and edx, eax
lea eax, [ecx + ecx]
and eax, 2
sub ecx, eax
lea ecx, [ecx + edx*2]
inc ecx
cmp ecx, 5
jb 0x41abb0
xor ecx, ecx
mov eax, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax + ecx]
mov dh, byte [esi + ecx + 0x40]
test dl, dl
je 0x41a9b0
inc ecx
cmp dl, dh
je 0x41ac00
jmp 0x41a9b0
push 0x3ea
call fcn.00419f40
xor ebx, ebx
mov eax, dword [esi + 0x18]
test eax, eax
je 0x41ac3b
cmp eax, dword [esi + 0x1c]
je 0x41ac3b
push eax
call fcn.00408750
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc