Function at 0x4015f0
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, 0xfffffff8
sub esp, 0x80
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov bl, 0xf6
mov si, 0xc3c8
mov edi, dword [esp + 0x70]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x18], eax
mov eax, edi
or eax, 0x144e
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0x1483
mov word [esp + 0x62], 0x6409
mov byte [esp + 0x61], 0x6d
mov dword [esp + 0x5c], 0x132f
mov ax, word [esp + 0x62]
sub si, ax
mov word [esp + 0x4c], si
mov bh, byte [esp + 0x61]
sub bl, bh
mov byte [esp + 0x3f], bl
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x58], esi
mov dword [esp + 0x50], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x58]
cmp byte [ecx], 0
mov dword [esp + 0x10], edi
mov word [esp + 0xe], ax
mov byte [esp + 0xd], bh
jne 0x40181d
jmp 0x401883
mov al, byte [esp + 0x61]
add al, 0x93
mov ecx, dword [esp + 0x2c]
mov dl, byte [ecx]
mov byte [esp + 0x4b], 0
cmp dl, al
jne 0x4016cc
jmp 0x401758
mov dword [esp + 0x20], 0
jmp 0x4016e2
mov eax, dword [esp + 0x24]
mov cl, byte [eax]
mov byte [esp + 0x4b], 0
cmp cl, 0
jne 0x401846
jmp 0x401758
mov eax, dword [esp + 0x20]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x1c3f
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
add eax, 0x49a4
adc ecx, 0
xor edx, edx
mov esi, 0x1c3e
sub esi, eax
sbb edx, ecx
mov dword [esp + 8], esi
mov dword [esp + 4], edx
jb 0x401797
jmp 0x401883
mov eax, dword [esp + 0x10]
xor eax, 0x378d
mov ecx, dword [esp + 0x2c]
inc ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x24]
add eax, 1
mov dword [esp + 0x24], eax
jmp 0x4016a8
test byte [esp + 0x4b], 1
jne 0x4017e7
mov al, byte [esp + 0x61]
add al, 0xfb
mov cl, 0xd8
mov dl, byte [esp + 0xd]
mov byte [esp + 3], al
mov al, dl
mul cl
mov byte [esp + 0x7b], al
mov al, byte [esp + 3]
mov byte [esp + 0x4f], al
mov al, byte [esp + 0x4f]
mov cl, byte [esp + 0x61]
xor cl, 0xdd
cmp al, cl
jae 0x4017dd
jmp 0x401890
mov eax, dword [esp + 0x28]
mov cx, word [esp + 0xe]
and cx, cx
mov word [esp + 0x78], cx
mov dword [esp + 0x20], eax
jmp 0x4016e2
mov al, 9
mov cl, byte [esp + 0x61]
xor cl, 0xb1
mov edx, dword [esp + 0x28]
mov byte [esp + 0x57], cl
mov cl, byte [esp + 0x57]
mov dword [esp + 0x64], 0x4a3e
add edx, 1
mov dword [esp + 0x40], edx
cmp al, cl
je 0x401883
mov eax, dword [esp + 0x40]
mov dword [esp + 0x28], eax
jmp 0x401834
mov al, byte [esp + 0x61]
add al, 0x3c
cmp byte [esp + 0x3f], al
je 0x4017e7
jmp 0x40172a
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0x6117
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x24], eax
jmp 0x4016a8
jmp 0x401834
mov al, 0x6d
mov ecx, dword [esp + 0x28]
mov dl, byte [ecx]
sub al, byte [esp + 0x61]
cmp dl, al
jne 0x4017f8
jmp 0x4016c2
mov ax, word [esp + 0x62]
xor ax, 0x6a6c
cmp ax, word [esp + 0x4c]
jae 0x401834
jmp 0x40181f
mov eax, dword [esp + 0x2c]
movsx eax, byte [eax]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x5c]
xor edx, 0x132f
mov si, word [esp + 0xe]
imul di, si, 0x6b1c
mov word [esp + 0x78], di
movsx ecx, byte [ecx]
sub eax, ecx
cmp eax, edx
setne bl
xor bl, 0xff
and bl, 1
mov byte [esp + 0x4b], bl
jmp 0x401758
mov eax, dword [esp + 0x50]
mov dword [esp + 0x20], eax
jmp 0x4016e2
mov al, byte [esp + 0x61]
xor al, 0x6d
mov ecx, dword [esp + 0x24]
cmp byte [ecx], al
jne 0x4017b1
jmp 0x4016f0