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

Disassembly:
sub esp, 0x2dc
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x10], 0xcfe6df98
mov esi, edx
mov dword [esp + 0x48], edi
mov byte [esp + 0x14], 0x9d
xor edx, edx
mov ecx, 0xff
movzx eax, byte [esp + edx + 0x10]
sub ax, 0x73
and ax, cx
mov word [esp + edx*2 + 0x4c], ax
inc edx
cmp edx, 5
jl 0x40ff9d
push dword [esp + 0x2f0]
xor eax, eax
mov word [esp + 0x5a], ax
mov al, byte [0x42c8d4]
sub al, 0x16
mov byte [0x42c917], al
movzx eax, byte [0x42c8f4]
and eax, 0xcf9fb36f
mov dword [0x42c8d0], eax
lea eax, [esp + 0x50]
push eax
call fcn.004233ac
or byte [0x42c8f4], 0xeb
mov ebp, eax
mov dword [esp + 0x18], ebp
pop ecx
pop ecx
test ebp, ebp
je 0x41049e
mov edx, dword [0x42c8d0]
mov eax, 0x7e9f
lea ecx, [edx - 0x2c]
and edx, 0x25ce
movzx ecx, cl
add cx, ax
mov word [0x42c908], dx
mov word [0x42c8d4], cx
lea eax, [esp + 0x98]
add cl, 0x5b
mov edx, 0x54e1cc7b
mov byte [0x42c8f4], cl
xor ecx, ecx
push eax
push ebp
inc ecx
call fcn.00415333
call eax
movzx edx, byte [0x42c917]
mov ecx, 0x13ec
mov bl, byte [0x42c8a9]
sub dx, cx
movzx ecx, bl
imul ecx, ecx, 0xfa522154
mov dword [esp + 0x24], eax
mov word [0x42c908], dx
mov dword [0x42c8d0], ecx
cmp eax, 0xffffffff
je 0x410485
mov dword [esp + 0x1c], 0x838487a6
xor ecx, ecx
mov word [esp + 0x20], 0x8e97
mov byte [esp + 0x22], 0x96
mov al, byte [esp + ecx + 0x1c]
xor al, 0xe2
movzx eax, al
mov word [esp + ecx*2 + 0x58], ax
inc ecx
cmp ecx, 7
jl 0x410097
push dword [esp + 0x2f4]
xor eax, eax
mov ecx, 0xeb41
mov word [esp + 0x6a], ax
or dl, 0xfe
movzx eax, byte [0x42c8f4]
add bl, 0x71
and ax, cx
mov byte [0x42c917], dl
mov word [0x42c8d4], ax
mov edx, esi
lea eax, [esp + 0x5c]
mov byte [0x42c8f4], bl
push eax
push dword [esp + 0x2f8]
mov ecx, edi
call fcn.004104a9
mov al, byte [0x42c8f4]
add esp, 0xc
add al, 0x15
xor ecx, ecx
mov byte [0x42c917], al
mov edx, 0x17299c7b
mov al, byte [0x42c8d4]
inc ecx
add al, 0x5b
mov byte [0x42c8a9], al
call fcn.00415333
movzx edx, byte [0x42c8a9]
mov ebp, esi
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov eax, 0xa10a
xor dx, ax
mov word [esp + 0x18], 0x4545
mov word [0x42c908], dx
push 0x2e
pop eax
mov word [esp + 0x24], ax
mov edi, 0xff
xor eax, eax
xor ecx, ecx
mov word [esp + 0x26], ax
movzx eax, byte [esp + ecx + 0x18]
sub ax, 0x17
and ax, di
mov word [esp + ecx*2 + 0x40], ax
inc ecx
cmp ecx, 2
jl 0x41015a
xor eax, eax
mov word [esp + 0x44], ax
mov al, byte [0x42c8f4]
sub al, 0x7c
mov byte [0x42c917], al
add al, 0x4b
mov byte [0x42c8f4], al
mov al, dl
xor al, 0xc6
mov byte [0x42c8a9], al
mov eax, 0x4e16
sub dx, ax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0xc8]
mov word [0x42c8d4], dx
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x410421
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x410421
and byte [0x42c8f4], 0xd0
test byte [esp + 0x98], 0x10
je 0x410441
movzx ecx, word [0x42c908]
mov eax, 0x6770
xor cx, ax
lea eax, [ecx + 0x3b]
xor ecx, 0x3415
mov byte [0x42c8f4], al
mov eax, dword [0x42c8d0]
and eax, 0x4bb9448e
mov word [0x42c8d4], cx
add eax, 0x5ab8e3c5
mov dword [0x42c8d0], eax
lea eax, [esp + 0xc4]
push eax
call fcn.0040581e
pop ecx
push 7
pop esi
cmp eax, esi
jb 0x410441
mov dword [esp + 0x28], 0x8f989b79
xor ecx, ecx
mov word [esp + 0x2c], 0x9592
mov byte [esp + 0x2e], 0x8e
movzx eax, byte [esp + ecx + 0x28]
sub ax, 0x29
and ax, di
mov word [esp + ecx*2 + 0x68], ax
inc ecx
cmp ecx, esi
jl 0x410257
xor eax, eax
mov dword [esp + 0x30], 0x181f1c3d
mov word [esp + 0x76], ax
xor ecx, ecx
mov word [esp + 0x34], 0x150c
mov byte [esp + 0x36], 0xd
mov al, byte [esp + ecx + 0x30]
xor al, 0x79
movzx eax, al
mov word [esp + ecx*2 + 0x78], ax
inc ecx
cmp ecx, esi
jl 0x41028a
xor dword [0x42c8d0], 0x5852d30c
xor eax, eax
or byte [0x42c8f4], 0x64
mov word [esp + 0x86], ax
mov al, byte [0x42c908]
sub al, 0x23
mov byte [0x42c8a9], al
lea eax, [esp + 0x68]
push 0xe
push eax
lea eax, [esp + 0xcc]
push eax
call fcn.004022e4
add esp, 0xc
test eax, eax
je 0x4102fe
push 0xe
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0xcc]
push eax
call fcn.004022e4
add esp, 0xc
test eax, eax
jne 0x410441
mov dword [esp + 0x38], 0x7659460f
xor ecx, ecx
mov word [esp + 0x3c], 0x460f
mov byte [esp + 0x3e], 0x59
mov al, byte [esp + ecx + 0x38]
xor al, 0x2a
movzx eax, al
mov word [esp + ecx*2 + 0x88], ax
inc ecx
cmp ecx, esi
jl 0x410314
mov cl, byte [0x42c8a9]
xor eax, eax
mov word [esp + 0x96], ax
movzx eax, cl
add cl, 0x95
imul eax, eax, 0x1d
mov byte [0x42c8a9], cl
mov ecx, 0x9ee0
xor al, 0x3e
mov byte [0x42c8f4], al
movzx eax, al
and ax, cx
mov word [0x42c8d4], ax
mov al, byte [0x42c8d0]
xor al, 0x33
mov byte [0x42c917], al
lea eax, [esp + 0xc4]
push eax
push dword [esp + 0x2f4]
lea eax, [esp + 0x90]
push eax
call fcn.004233ac
movzx edx, byte [0x42c917]
mov edi, eax
movzx eax, byte [0x42c8f4]
mov ecx, 0x2896
imul edx, ecx
and eax, 0xad67fe33
movzx ecx, byte [0x42c8f4]
add esp, 0xc
mov dword [0x42c8d0], eax
mov eax, 0x5093
imul ecx, eax
movzx esi, dx
mov word [0x42c8d4], dx
mov word [0x42c908], cx
test edi, edi
je 0x410441
push dword [esp + 0x2f4]
mov ecx, dword [esp + 0x4c]
lea eax, [esp + 0xc8]
or dl, 0x39
xor esi, 0x2dfe
push eax
mov byte [0x42c917], dl
mov edx, ebp
push edi
mov word [0x42c908], si
call fcn.004104a9
add esp, 0xc
mov eax, 0x6624
add ax, word [0x42c908]
mov word [0x42c8d4], ax
push edi
call fcn.004056f0
pop ecx
jmp 0x410441
mov al, byte [0x42c8d4]
mov ecx, 0x7168
sub al, 0x46
mov byte [0x42c917], al
mov ax, word [0x42c908]
and ax, cx
mov word [0x42c8d4], ax
lea eax, [esp + 0x98]
push eax
push ebx
call dword [esp + 0x24]
test eax, eax
je 0x41045e
mov dx, word [0x42c908]
jmp 0x410144
mov al, byte [0x42c917]
xor ecx, ecx
xor al, 5
mov edx, 0x83fbc401
mov byte [0x42c8a9], al
inc ecx
add al, 8
push ebx
mov byte [0x42c8f4], al
call fcn.00415333
call eax
mov ebp, dword [esp + 0x10]
movzx eax, word [0x42c8d4]
imul eax, eax, 0x96e27954
push ebp
mov dword [0x42c8d0], eax
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2dc
ret