Function at 0x41f9c0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x88
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
mov ecx, dword [eax + 4]
xor edx, edx
nop
nop
nop
cmp word [ecx + edx], 0
lea edx, [edx + 2]
jne 0x41f9e0
lea esi, [ecx + edx]
add esi, 0xfffffffe
mov eax, ecx
not eax
and eax, esi
add edx, ecx
mov esi, 1
sub esi, edx
and esi, ecx
sub eax, esi
sar eax, 1
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx], 0
lea ecx, [ecx + 2]
jne 0x41fa10
lea esi, [ebx + ecx]
add esi, 0xfffffffe
mov edx, ebx
not edx
and edx, esi
add ecx, ebx
mov esi, 1
sub esi, ecx
and esi, ebx
sub edx, esi
sar edx, 1
add eax, edx
add eax, 0x21
mov ecx, eax
and ecx, 0x1e
xor eax, 0x1e
lea eax, [eax + ecx*2]
test eax, eax
jns 0x41fa50
mov eax, 0xffffffff
jmp 0x41fa52
add eax, eax
push eax
call fcn.0040c9f0
add esp, 4
mov esi, eax
mov dword [esp + 0x48], 0xd76bc96a
mov dword [esp + 0x4c], 0xd37fd56b
mov dword [esp + 0x50], 0xdf11d16e
mov dword [esp + 0x54], 0xdb68dd6f
mov dword [esp + 0x58], 0xa70bd964
mov dword [esp + 0x5c], 0xa31ea51c
mov dword [esp + 0x60], 0xaf02a169
mov dword [esp + 0x64], 0xab56ad69
mov dword [esp + 0x68], 0xb74fa956
mov dword [esp + 0x6c], 0xb34bb548
mov dword [esp + 0x70], 0xbf45b14a
mov dword [esp + 0x74], 0xbb43bd42
mov dword [esp + 0x78], 0x8722b945
mov dword [esp + 0x7c], 0x832e852d
mov dword [esp + 0x80], 0x8f8e812e
mov word [esp + 0x84], 0
mov ebp, 0x2e
mov edi, 0x51
nop
nop
nop
nop
movzx edx, byte [esp + ebp + 0x1a]
mov ecx, edi
and ecx, 0x50
mov eax, ebp
and eax, 0x2f
or eax, ecx
xor eax, edx
xor eax, 0x50
and edx, ebp
not edx
and edx, eax
add dl, 0x1a
mov byte [esp + ebp + 0x1a], dl
inc ebp
dec edi
cmp ebp, 0x6c
jne 0x41faf0
mov dword [esp], 0x833181dc
mov dword [esp + 4], 0x87298530
mov dword [esp + 8], 0x8b2b893a
mov dword [esp + 0xc], 0x8f2b8d2b
mov dword [esp + 0x10], 0x933691cc
mov dword [esp + 0x14], 0x97309531
mov dword [esp + 0x18], 0x9b2f9939
mov dword [esp + 0x1c], 0x9f2a9d30
mov dword [esp + 0x20], 0xe34fe1bc
mov dword [esp + 0x24], 0xe75ce54b
mov dword [esp + 0x28], 0xeb4fe985
mov dword [esp + 0x2c], 0xef5aed54
mov dword [esp + 0x30], 0xf35cf155
mov dword [esp + 0x34], 0xf75ff547
mov dword [esp + 0x38], 0xfb54f957
mov dword [esp + 0x3c], 0xff95fd97
mov dword [esp + 0x40], 0xc3c2c1ab
mov word [esp + 0x44], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xa0
xor cl, byte [esp + eax]
add cl, 0xe0
mov byte [esp + eax], cl
inc eax
cmp eax, 0x46
jne 0x41fbb0
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 4]
movzx edx, word [ecx]
mov eax, esi
test dx, dx
je 0x41fbf1
add ecx, 2
mov eax, esi
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x41fbe0
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
je 0x41fc21
lea edx, [esp + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41fc10
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x41fc51
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x41fc40
mov word [eax], 0
movzx ecx, word [esp + 0x48]
test cx, cx
je 0x41fc81
lea edx, [esp + 0x4a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41fc70
mov word [eax], 0
mov eax, dword [esp + 0xa8]
mov ebx, dword [eax]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx], 0
lea ecx, [ecx + 2]
jne 0x41fca0
lea edx, [ebx + ecx]
add edx, 0xfffffffe
mov eax, ebx
not eax
and eax, edx
add ecx, ebx
mov edx, 1
sub edx, ecx
and edx, ebx
sub eax, edx
mov ecx, dword [esp + 0xa4]
mov edx, dword [ecx]
xor edi, edi
nop
nop
cmp word [edx + edi], 0
lea edi, [edi + 2]
jne 0x41fcd0
sar eax, 1
lea ebp, [edx + edi]
add ebp, 0xfffffffe
mov ecx, edx
not ecx
and ecx, ebp
add edi, edx
mov ebp, 1
sub ebp, edi
and ebp, edx
sub ecx, ebp
add eax, 0xb
mov edx, dword [esp + 0xa4]
mov edx, dword [edx + 8]
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + edi], 0
lea edi, [edi + 2]
jne 0x41fd10
sar ecx, 1
add eax, ecx
lea ebp, [edx + edi]
add ebp, 0xfffffffe
mov ecx, edx
not ecx
and ecx, ebp
add edi, edx
mov ebp, 1
sub ebp, edi
and ebp, edx
sub ecx, ebp
sar ecx, 1
mov edx, ecx
and edx, eax
xor ecx, eax
lea eax, [ecx + edx*2]
test eax, eax
jns 0x41fd4d
mov eax, 0xffffffff
jmp 0x41fd4f
add eax, eax
push eax
call fcn.0040c9f0
add esp, 4
mov edi, eax
mov dword [esp], 0x9333912f
mov dword [esp + 4], 0x9f0a9d08
mov dword [esp + 8], 0x9b069935
mov dword [esp + 0xc], 0x87d18517
mov word [esp + 0x10], 0x8180
mov dword [esp + 0x12], 0
mov byte [esp + 0x16], 0
xor eax, eax
nop
mov ecx, eax
add cl, 0x24
xor cl, byte [esp + eax]
add cl, 0x4c
mov byte [esp + eax], cl
inc eax
cmp eax, 0x17
jne 0x41fd90
movzx ecx, word [esp]
mov eax, edi
test cx, cx
je 0x41fdd1
lea edx, [esp + 2]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41fdc0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x41fe01
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x41fdf0
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esp + 0xa4]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x41fe31
add ecx, 2
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x41fe20
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esp + 0xa4]
mov ecx, dword [ecx + 8]
movzx edx, word [ecx]
test dx, dx
je 0x41fe61
add ecx, 2
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x41fe50
mov word [eax], 0
mov dword [esp], 0xb7b6895e
mov eax, 0xde
mov ecx, 0x21
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0xde]
mov ebx, edx
not ebx
or ebx, ecx
or edx, eax
and edx, ebx
add dl, 0xaa
mov byte [esp + eax - 0xde], dl
inc eax
dec ecx
cmp eax, 0xe2
jne 0x41fe80
mov eax, esp
push 0
push 1
push 0
push eax
push esi
push edi
push dword [esp + 0xb4]
call fcn.004201b0
add esp, 0x1c
mov ebx, eax
jmp dword [0x445bf8]