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

Disassembly:
sub esp, 0xbc
push ebx
mov ebx, dword [esp + 0xd4]
push ebp
push esi
push edi
xor esi, esi
mov ecx, 0x15
xor eax, eax
lea edi, [esp + 0x24]
mov dword [esp + 0x20], esi
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xec]
cmp ebx, 0x3a
mov dword [esp + 0x14], esi
mov dword [eax], esi
jbe 0x41cf05
pop edi
pop esi
pop ebp
mov ax, 0x1d10
pop ebx
add esp, 0xbc
ret
cmp ebx, esi
lea edi, [esp + 0x7c]
je 0x41cf14
mov edi, dword [esp + 0xdc]
mov ebp, dword [esp + 0xd0]
push ebp
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x24], ecx
call fcn.0041da10
add esp, 4
test al, al
jne 0x41d812
mov eax, dword [ebp]
mov edx, eax
and dl, 0x10
neg dl
sbb edx, edx
and edx, 0x14
add edx, 0x22000c
and eax, 2
mov dword [esp + 0x18], edx
je 0x41d1d9
test byte [ebp + 0xc], 0x20
je 0x41d1d9
lea esi, [ebx + 8]
lea eax, [ebx - 8]
shr esi, 4
inc esi
test al, 0xf
mov dword [esp + 0x10], esi
je 0x41cf76
cmp ebx, 0x3a
jne 0x41cf7b
dec esi
mov dword [esp + 0x10], esi
cmp esi, 4
jbe 0x41cf8f
pop edi
pop esi
pop ebp
mov ax, 0x1d10
pop ebx
add esp, 0xbc
ret
shl esi, 4
lea ecx, [esp + 0x2e]
add esi, 8
push 2
push ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], esi
mov byte [esp + 0x30], 8
call fcn.0041c7f0
mov dl, byte [esp + 0xd4]
mov al, byte [esp + 0xd8]
mov cl, byte [edi]
mov byte [esp + 0x30], dl
mov dl, byte [edi + 1]
mov byte [esp + 0x31], al
mov al, byte [edi + 2]
mov byte [esp + 0x33], dl
mov byte [esp + 0x32], cl
mov cl, byte [edi + 3]
lea edx, [esp + 0x36]
push 2
push edx
mov byte [esp + 0x3c], al
mov byte [esp + 0x3d], cl
call fcn.0041c7f0
cmp ebx, 4
jbe 0x41d01d
lea ecx, [ebx - 4]
lea esi, [edi + 4]
mov eax, ecx
lea edi, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x1c]
sub eax, ebx
and ecx, 3
sub eax, 0xf
test eax, eax
rep movsb byte es:[edi], byte [esi]
jle 0x41d02b
lea ecx, [esp + ebx + 0x34]
push eax
push ecx
jmp 0x41d026
add esi, 0xffffffed
lea edx, [esp + 0x38]
push esi
push edx
call fcn.0041c7f0
cmp ebx, 4
jbe 0x41d03b
sub bl, 4
and ebx, 0xff
jmp 0x41d03d
xor ebx, ebx
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov byte [esp + esi + 0x25], bl
mov al, byte [esp + 0x36]
mov byte [esp + esi + 0x26], al
mov cl, byte [esp + 0x37]
lea eax, [edx - 1]
mov byte [esp + esi + 0x27], cl
cmp eax, 3
ja case.default.0x41d065
jmp dword [eax*4 + 0x41d820]
mov ecx, dword [ebp + 0x30]
lea eax, [esp + 0x60]
push eax
push ecx
call fcn.0041cb40
add esp, 8
xor eax, eax
mov dl, byte [esp + eax + 0x50]
mov bl, byte [esp + eax + 0x60]
xor bl, dl
mov byte [esp + eax + 0x60], bl
inc eax
cmp eax, 0x10
jb 0x41d07f
mov ecx, dword [ebp + 0x30]
lea eax, [esp + 0x50]
push eax
push ecx
call fcn.0041cb40
add esp, 8
xor eax, eax
mov dl, byte [esp + eax + 0x40]
mov bl, byte [esp + eax + 0x50]
xor bl, dl
mov byte [esp + eax + 0x50], bl
inc eax
cmp eax, 0x10
jb 0x41d0a6
mov ecx, dword [ebp + 0x30]
lea eax, [esp + 0x40]
push eax
push ecx
call fcn.0041cb40
add esp, 8
xor eax, eax
mov dl, byte [esp + eax + 0x30]
mov bl, byte [esp + eax + 0x40]
xor bl, dl
mov byte [esp + eax + 0x40], bl
inc eax
cmp eax, 0x10
jb 0x41d0cd
mov ecx, dword [ebp + 0x30]
lea eax, [esp + 0x30]
push eax
push ecx
call fcn.0041cb40
lea edx, [esp + 0x30]
push edx
call fcn.00425b60
mov edi, dword [esp + 0xf0]
add esp, 0xc
lea eax, [esp + 0x14]
test edi, edi
push eax
jne 0x41d121
mov edx, dword [esp + 0x1c]
push 0
push 0
lea ecx, [esp + 0x2c]
push 0x58
push ecx
push edx
jmp 0x41d5b8
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x80]
push esi
push ecx
lea edx, [esp + 0x2c]
push 0x58
push edx
push eax
call fcn.0041cc90
mov ebx, eax
add esp, 0x18
test bl, bl
je 0x41d15b
push ebp
call fcn.0041da40
add esp, 4
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
cmp dword [esp + 0x14], esi
je 0x41d179
push ebp
call fcn.0041da40
add esp, 4
mov ax, 0x1d0d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 0x30]
push ecx
lea eax, [esp + 0x80]
push edx
push eax
call fcn.0041dca0
add esp, 0xc
mov dword [esp + 0x10], eax
test al, al
jne 0x41d804
mov ecx, dword [esp + 0xec]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
mov eax, edi
lea edi, [esp + 0x7e]
xor edx, edx
mov dword [ecx], esi
sub edi, ebx
test esi, esi
jbe 0x41d3e3
mov cl, byte [edi + eax]
inc edx
mov byte [eax], cl
inc eax
dec esi
cmp edx, 4
jb 0x41d1bf
jmp 0x41d3e3
cmp eax, esi
je 0x41d402
lea eax, [esp + 0x2e]
push 2
push eax
mov dword [esp + 0x2c], 0x48
mov byte [esp + 0x30], 7
call fcn.0041c7f0
mov cl, byte [esp + 0xd4]
mov dl, byte [esp + 0xd8]
mov al, byte [edi]
mov byte [esp + 0x30], cl
mov cl, byte [edi + 1]
mov byte [esp + 0x31], dl
mov dl, byte [edi + 2]
mov byte [esp + 0x33], cl
mov byte [esp + 0x32], al
mov al, byte [edi + 3]
lea ecx, [esp + 0x36]
push 2
push ecx
mov byte [esp + 0x3c], dl
mov byte [esp + 0x3d], al
call fcn.0041c7f0
cmp ebx, 4
jbe 0x41d267
lea ecx, [ebx - 4]
lea esi, [edi + 4]
mov edx, ecx
lea edi, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, 0x39
mov ecx, edx
sub eax, ebx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
jle 0x41d273
push eax
lea eax, [esp + ebx + 0x38]
push eax
jmp 0x41d26e
lea ecx, [esp + 0x38]
push 0x35
push ecx
call fcn.0041c7f0
cmp ebx, 4
jbe 0x41d281
sub bl, 4
mov byte [esp + 0x6d], bl
jmp 0x41d286
mov byte [esp + 0x6d], 0
mov dl, byte [esp + 0x36]
mov al, byte [esp + 0x37]
mov byte [esp + 0x6e], dl
mov edx, dword [ebp + 0x30]
lea ecx, [esp + 0x60]
mov byte [esp + 0x6f], al
push ecx
push edx
call fcn.0041cb40
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x50]
mov bl, byte [esp + eax + 0x60]
xor bl, cl
mov byte [esp + eax + 0x60], bl
inc eax
cmp eax, 0x10
jb 0x41d2a9
mov eax, dword [ebp + 0x30]
lea edx, [esp + 0x50]
push edx
push eax
call fcn.0041cb40
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x40]
mov bl, byte [esp + eax + 0x50]
xor bl, cl
mov byte [esp + eax + 0x50], bl
inc eax
cmp eax, 0x10
jb 0x41d2d0
mov eax, dword [ebp + 0x30]
lea edx, [esp + 0x40]
push edx
push eax
call fcn.0041cb40
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x30]
mov bl, byte [esp + eax + 0x40]
xor bl, cl
mov byte [esp + eax + 0x40], bl
inc eax
cmp eax, 0x10
jb 0x41d2f7
mov eax, dword [ebp + 0x30]
lea edx, [esp + 0x30]
push edx
push eax
call fcn.0041cb40
lea ecx, [esp + 0x30]
push ecx
call fcn.00425b60
mov edi, dword [esp + 0xf0]
add esp, 0xc
lea edx, [esp + 0x14]
test edi, edi
push edx
je 0x41d5a8
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x80]
push 0x48
push eax
lea ecx, [esp + 0x2c]
push 0x58
push ecx
push edx
call fcn.0041cc90
mov ebx, eax
add esp, 0x18
test bl, bl
je 0x41d375
push ebp
call fcn.0041da40
add esp, 4
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
cmp dword [esp + 0x14], 0x48
je 0x41d394
push ebp
call fcn.0041da40
add esp, 4
mov ax, 0x1d0d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
mov eax, dword [ebp + 0x30]
lea ecx, [esp + 0x7c]
push eax
push ecx
call fcn.0041cd40
add esp, 8
mov dword [esp + 0x10], eax
test al, al
jne 0x41d804
mov edx, dword [esp + 0xec]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
mov eax, edi
mov dword [edx], esi
lea edi, [esp + 0x7e]
xor edx, edx
sub edi, ebx
test esi, esi
jbe 0x41d3e3
mov cl, byte [eax + edi]
inc edx
mov byte [eax], cl
inc eax
dec esi
cmp edx, 4
jb 0x41d3d2
mov ecx, esi
lea esi, [esp + 0x84]
mov edx, ecx
lea edi, [ebx + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x41d804
mov al, byte [ebp + 0xc]
mov dword [esp + 0x24], 8
test al, 4
je 0x41d4e2
cmp ebx, 4
jbe 0x41d54e
mov al, byte [esp + 0xd4]
mov cl, byte [esp + 0xd8]
mov dl, byte [edi]
mov byte [esp + 0x28], al
mov al, byte [edi + 1]
mov byte [esp + 0x29], cl
mov cl, byte [edi + 2]
mov byte [esp + 0x2b], al
mov byte [esp + 0x2a], dl
mov dl, byte [edi + 3]
lea eax, [esp + 0x2e]
push 2
push eax
mov byte [esp + 0x34], cl
mov byte [esp + 0x35], dl
call fcn.0041c7f0
mov esi, 4
cmp ebx, esi
jbe 0x41d4c3
lea ebp, [esp + 0x32]
mov ecx, dword [esp + 0x24]
push 2
add ecx, 8
inc esi
mov dword [esp + 0x28], ecx
mov cl, byte [esi + edi - 1]
mov byte [ebp - 2], cl
mov dl, byte [esi + edi]
inc esi
mov byte [ebp - 1], dl
mov al, byte [esi + edi]
inc esi
mov byte [ebp], al
mov cl, byte [esi + edi]
inc esi
mov byte [ebp + 1], cl
lea ecx, [ebp + 4]
mov dl, byte [esi + edi]
inc esi
mov byte [ebp + 2], dl
push ecx
mov al, byte [esi + edi]
inc esi
mov byte [ebp + 3], al
call fcn.0041c7f0
lea eax, [ebp - 2]
push eax
call fcn.00425b60
add esp, 4
add ebp, 8
cmp esi, ebx
jb 0x41d468
mov ebp, dword [esp + 0xd0]
mov eax, ebx
xor edx, edx
mov ecx, 6
div ecx
mov al, byte [esp + 0x2e]
and al, 0xf9
add dl, 2
or dl, al
mov byte [esp + 0x2e], dl
jmp 0x41d58b
cmp ebx, 4
jbe 0x41d54e
mov eax, 0xfffffffe
lea esi, [edi + 6]
sub eax, edi
mov dword [esp + 0x1c], eax
mov eax, dword [ebp]
xor edx, edx
mov dword [esp + 0x78], eax
and al, 0xf3
mov dword [ebp], eax
mov dh, byte [esi + 1]
mov dl, byte [esi]
lea ecx, [esp + 0x7c]
xor eax, eax
push ecx
mov ah, byte [esi - 1]
mov ecx, dword [esp + 0x20]
mov al, byte [esi - 2]
push edx
lea edx, [ecx + esi - 4]
push eax
push edx
push 3
push ebp
call fcn.0041d830
mov ecx, dword [esp + 0x90]
add esp, 0x18
test al, al
mov dword [esp + 0x10], eax
mov dword [ebp], ecx
jne 0x41d804
mov edx, dword [esp + 0x1c]
add esi, 4
add edx, esi
cmp edx, ebx
jb 0x41d4f5
mov al, byte [esp + 0xd4]
mov cl, byte [esp + 0xd8]
mov dl, byte [edi]
mov byte [esp + 0x28], al
mov al, byte [edi + 1]
mov byte [esp + 0x29], cl
mov cl, byte [edi + 2]
mov byte [esp + 0x2b], al
mov byte [esp + 0x2a], dl
mov dl, byte [edi + 3]
lea eax, [esp + 0x2e]
push 2
push eax
mov byte [esp + 0x34], cl
mov byte [esp + 0x35], dl
call fcn.0041c7f0
lea ecx, [esp + 0x28]
push ecx
call fcn.00425b60
mov edi, dword [esp + 0xe8]
add esp, 4
test edi, edi
jne 0x41d5d6
lea edx, [esp + 0x14]
push edx
mov ecx, dword [esp + 0x1c]
push 0
push 0
lea eax, [esp + 0x2c]
push 0x58
push eax
push ecx
call fcn.0041cc90
push ebp
mov esi, eax
call fcn.0041da40
add esp, 0x1c
mov ax, si
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
test byte [ebp + 0xc], 4
je 0x41d6f2
mov eax, dword [esp + 0xe8]
cmp eax, 4
jbe 0x41d6f2
mov edx, eax
mov eax, 0xaaaaaaab
add edx, 7
lea ecx, [esp + 0x7c]
mul edx
mov esi, edx
lea eax, [esp + 0x14]
shr esi, 2
shl esi, 3
push eax
mov eax, dword [esp + 0x1c]
push esi
push ecx
lea edx, [esp + 0x2c]
push 0x58
push edx
push eax
call fcn.0041cc90
mov ebx, eax
add esp, 0x18
test bl, bl
je 0x41d640
push ebp
call fcn.0041da40
add esp, 4
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
cmp dword [esp + 0x14], esi
je 0x41d65e
push ebp
call fcn.0041da40
add esp, 4
mov ax, 0x1d0d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
lea ecx, [esp + 0x7c]
push 0
push ecx
call fcn.0041cd40
add esp, 8
mov dword [esp + 0x10], eax
test al, al
jne 0x41d804
mov cl, byte [esp + 0x80]
mov dl, byte [esp + 0x7e]
mov al, byte [esp + 0x7f]
mov byte [edi + 2], cl
mov ecx, dword [esp + 0xe8]
mov byte [edi], dl
mov dl, byte [esp + 0x81]
mov ebx, 4
cmp ecx, ebx
mov byte [edi + 1], al
mov byte [edi + 3], dl
mov esi, 8
jbe 0x41d6e4
mov eax, esi
and eax, 7
mov dword [esp + 0x78], eax
jne 0x41d6d2
lea eax, [esp + esi + 0x7c]
push eax
call fcn.00425b60
mov ecx, dword [esp + 0xec]
mov eax, dword [esp + 0x7c]
add esp, 4
cmp eax, 6
jae 0x41d6df
mov dl, byte [esp + esi + 0x7c]
mov byte [ebx + edi], dl
inc ebx
inc esi
cmp ebx, ecx
jb 0x41d6af
mov eax, dword [esp + 0xec]
mov dword [eax], ecx
jmp 0x41d804
lea ecx, [esp + 0x14]
lea edx, [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x1c]
push 8
push edx
lea eax, [esp + 0x2c]
push 0x58
push eax
push ecx
call fcn.0041cc90
mov ebx, eax
add esp, 0x18
test bl, bl
je 0x41d72f
push ebp
call fcn.0041da40
add esp, 4
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
cmp dword [esp + 0x14], 8
je 0x41d740
mov dword [esp + 0x10], 0x1d0d
jmp 0x41d753
lea edx, [esp + 0x7c]
push 0
push edx
call fcn.0041cd40
add esp, 8
mov dword [esp + 0x10], eax
mov al, byte [esp + 0x10]
test al, al
jne 0x41d804
mov ebx, dword [esp + 0xec]
lea esi, [esp + 0x7e]
xor ecx, ecx
mov eax, edi
sub esi, edi
mov edx, dword [esp + 0xe8]
test edx, edx
jbe 0x41d79b
mov dl, byte [eax + esi]
mov byte [eax], dl
mov edx, dword [ebx]
inc edx
inc ecx
mov dword [ebx], edx
mov edx, dword [esp + 0xe8]
inc eax
dec edx
cmp ecx, 4
mov dword [esp + 0xe8], edx
jb 0x41d770
xor ebx, ebx
add edi, 4
cmp ebx, dword [esp + 0xe8]
jae 0x41d804
mov esi, dword [ebp]
lea ecx, [esp + 0x7c]
push ecx
push 0
mov eax, esi
push 0
push ebx
and al, 0xf3
push 2
push ebp
mov dword [ebp], eax
call fcn.0041d830
add esp, 0x18
mov dword [esp + 0x10], eax
test al, al
mov dword [ebp], esi
jne 0x41d804
mov ecx, dword [esp + 0xe8]
mov esi, dword [esp + 0xec]
xor eax, eax
cmp eax, ecx
jae 0x41d7f9
mov dl, byte [esp + eax + 0x7e]
mov byte [edi + eax], dl
mov edx, dword [esi]
inc edx
inc eax
cmp eax, 4
mov dword [esi], edx
jb 0x41d7e3
add ebx, 4
add edi, 4
cmp ebx, 0x40
jb 0x41d7a0
push ebp
call fcn.0041da40
mov ax, word [esp + 0x14]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret