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

Disassembly:
sub esp, 0x2cc
push ebx
push ebp
push esi
push edi
push 5
mov dword [esp + 0x44], edx
sub al, 0xf6
mov dword [esp + 0x28], ecx
mov ebx, 0x87ff
mov dword [esp + 0x18], 0x59706922
mov byte [esp + 0x1c], 0x27
pop edx
add byte [edi], cl
inc esp
xor al, 0x14
add ax, 3
and ax, bx
mov word [esp + esi*2 + 0x4c], ax
inc esi
cmp esi, edx
jl 0x418990
xor eax, eax
mov word [esp + 0x56], ax
lea eax, [esp + 0x4c]
push ecx
push eax
call fcn.0041b739
test byte [ebx + 0x1c245cd8], cl
pop ecx
clc
test ebx, ebx
je 0x418bda
lea eax, [esp + 0x88]
xor edx, edx
fcom qword [ebx - 0x46]
jnp 0x4189a2
loope 0x418a2c
inc ecx
call 0x6a12280
or al, 0xd0
xor ecx, ecx
mov edx, 0x17299c7b
inc ecx
mov ebp, eax
call fcn.00412ca7
test al, dh
mov dword [esp + 0x20], esi
cmp ebp, 0xffffffc0
je 0x418bd3
adc byte [esp + ecx*2 + 0x24], bl
leave
mov dword [esp + 0x1c], 0x44c75555
and al, 0x28
inc edx
or edx, dword [ebx + edi]
leave
mov dword [esp + 0x2c], 0x44c60b42
and al, 0x2e
adc al, 0x6a
pop eax
push 0x2e
pop eax
mov word [esp + 0x24], ax
xor eax, eax
mov word [esp + 0x26], ax
fmul st(1), st(0)
mov al, byte [esp + ecx + 0x1c]
xor al, 0x7b
movzx eax, al
mov word [esp + ecx*2 + 0x44], ax
inc ecx
cmp ecx, 2
jl 0x418a2e
xor eax, eax
fmul st(1), st(0)
mov word [esp + 0x48], ax
mov al, byte [esp + ecx + 0x28]
xor al, 0x67
movzx eax, al
mov word [esp + ecx*2 + 0x58], ax
inc ecx
cmp ecx, 7
jl 0x418a4b
xor eax, eax
mov word [esp + 0x66], ax
lea eax, [esp + 0x24]
push eax
and al, 0x50
lea eax, [esp + 0xb8]
push eax
call 0x12e5169
pop ecx
pop ecx
test eax, eax
je 0x418bac
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0xb8]
push eax
call 0x12e5185
pop ecx
pop ecx
test eax, eax
je 0x418bac
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0x5c]
push ebx
push eax
call fcn.0041b739
test byte [ebx - 0x7af33b7d], cl
ror byte [edi], 0x84
out dx, al
xchg dword [eax], eax
add dh, dh
test byte [eax + ecx*4], ah
add byte [eax], al
add byte [eax], dl
je 0x418b27
mov dword [esp + 0x30], 0x217d622b
xor edx, edx
leave
mov dword [esp + 0x34], 0x44c6622b
and al, 0x36
jge 0x418a69
mov al, byte [esp + ecx + 0x30]
inc esp
or al, 0x30
xor al, 0xe
movzx eax, al
mov word [esp + ecx*2 + 0x68], ax
inc ecx
cmp ecx, 7
jl 0x418ade
xor eax, eax
mov word [esp + 0x76], ax
lea eax, [esp + 0xb4]
push eax
push dword [esp + 0x44]
lea eax, [esp + 0x70]
push eax
call fcn.0041b739
test byte [ebx - 0x7a3b1710], cl
ror byte [edi], 0x84
test dword [eax], eax
add byte [eax], al
mov edx, esi
mov ecx, edi
call 0x6558087
jmp 0x418b9a
test byte [esp + 0x88], 0xa7
je 0x418ba5
push 5
mov dword [esp + 0x3c], 0x2a6e6720
xor edx, edx
leave
mov dword [esp + 0x40], 0xffbe6720
xchg dword [eax], eax
mov dword [0x422444c6], eax
outsb dx, byte [esi]
pop edx
add byte [edi], cl
inc esp
or al, 0x38
add ax, dx
and ax, si
mov word [esp + ecx*2 + 0x78], ax
inc ecx
cmp ecx, 7
jl 0x418b4f
xor eax, eax
mov word [esp + 0xfe86], ax
lea eax, [esp + 0xb4]
push eax
push dword [esp + 0x44]
lea eax, [esp + 0xfe80]
push eax
call fcn.0041b739
test byte [ebx + 0xcc4e8f0], cl
sal byte [eax + edx - 0x75], 0xd6
mov ecx, edi
call 0x65580c1
push esi
push esi
call 0x59424e8c
mov esi, dword [esp + 0x20]
push edi
push esi
call 0x59424e97
lea eax, [esp + 0x88]
push eax
push ebp
call esi
test eax, eax
jne 0x418a1d
fmul st(1), st(0)
mov edx, 0x83fbc401
push ebp
inc ecx
call 0x6a1246f
or al, 0xd0
mov ebx, dword [esp + 0x14]
push ebx
push esi
call 0x59424ec5
pop edi
pop esi
pop esi
pop ebx
add esp, 0x2cc
ret