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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov dword [esp + 4], 0xfaa69693
mov dword [esp + 8], 0x8e8cb0ac
lea ebp, [esp + 0xc]
mov byte [esp + 0xc], 0x24
mov dword [esp + 0xd], 0
mov dword [esp + 0x10], 0
mov ecx, 0xdfde8f4a
mov eax, 0x202170b4
nop
nop
nop
movzx edx, byte [esp + ecx + 0x202170ba]
lea esi, [ecx + 1]
lea edi, [eax - 0x20217000]
and edi, eax
not edi
and edi, edx
or edx, esi
not edx
or edx, edi
mov bl, 0x88
sub bl, dl
mov byte [esp + ecx + 0x202170ba], bl
dec eax
mov ecx, esi
cmp esi, 0xdfde8f5a
jne 0x40f310
lea eax, [esp + 0x83]
lea esi, [esp + 4]
mov edx, esi
mov ecx, 2
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x8b]
xor ecx, ecx
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
movzx ecx, byte [esp + 0xc]
mov byte [esp + 0x8b], cl
mov dword [esp + 4], 0x73e57133
mov dword [esp + 8], 0x6fe26dfa
mov dword [esp + 0xc], 0x6bfc69f5
mov dword [esp + 0x10], 0x673365e8
mov dword [esp + 0x14], 0x63eb610c
mov dword [esp + 0x18], 0x9f039d0c
mov dword [esp + 0x1c], 0x9bba99d2
mov dword [esp + 0x20], 0x970695f5
mov dword [esp + 0x24], 0x93069100
mov dword [esp + 0x28], 0x8fed8d15
mov dword [esp + 0x2c], 0x8b0689e9
mov dword [esp + 0x30], 0x8711851d
mov dword [esp + 0x34], 0x83d58116
mov dword [esp + 0x38], 0xbfebbd34
mov dword [esp + 0x3c], 0xbb35b937
mov dword [esp + 0x40], 0xb7e3b53b
mov dword [esp + 0x44], 0xb325b12e
mov dword [esp + 0x48], 0xaf3bad3e
mov dword [esp + 0x4c], 0xab27a9fd
mov dword [esp + 0x50], 0xa732a536
mov dword [esp + 0x54], 0xa334a13d
mov dword [esp + 0x58], 0xdf49ddbf
mov dword [esp + 0x5c], 0xdb47d944
mov dword [esp + 0x60], 0xd7e3d548
mov dword [esp + 0x64], 0xd3d2d1ea
mov byte [esp + 0x68], 0
mov ecx, 0xdadb5d6c
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x2524a298]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0xe4
mov byte [esp + ecx + 0x2524a298], dl
inc ecx
cmp ecx, 0xdadb5dd1
jne 0x40f450
mov dword [esp + 0x70], 0xb16d8f5d
mov dword [esp + 0x74], 0xb559b320
mov word [esp + 0x78], 0xb7b4
mov dword [esp + 0x7a], 0
mov word [esp + 0x7e], 0
mov ecx, 0x880bb0dd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x77f44f93]
xor edx, ecx
mov edi, edx
and edi, 1
or edx, 1
add edx, edi
add dl, 0xae
mov byte [esp + ecx + 0x77f44f93], dl
inc ecx
cmp ecx, 0x880bb0ed
jne 0x40f4b0
mov ecx, esp
lea edx, [esp + 0x70]
push 0
push ecx
push 8
push eax
push esi
push edx
push dword [esp + 0xb8]
call fcn.0040ff20
add esp, 0x1c
test al, al
je 0x40f604
mov word [esp + 4], 0xe6f5
mov byte [esp + 6], 0x5a
mov word [esp + 7], 0
mov byte [esp + 9], 0
mov eax, 0x90
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi]
lea ecx, [eax - 0x7592f400]
or ecx, edx
and edx, eax
not ecx
or ecx, edx
mov edx, ecx
xor edx, 0x2c
and ecx, 0x53
add ecx, ecx
sub ecx, edx
inc cl
mov byte [esi], cl
inc esi
dec eax
cmp eax, 0x8a
jne 0x40f520
xor ecx, ecx
mov eax, dword [esp]
nop
movzx edx, byte [eax + ecx]
mov dh, byte [esp + ecx + 4]
test dl, dl
je 0x40f561
inc ecx
cmp dl, dh
je 0x40f550
mov bl, 1
cmp dl, dh
je 0x40f790
mov dword [esp + 4], 0x97818493
mov dword [esp + 8], 0x27989a9d
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
mov ecx, 0x48
mov edx, 0xb7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x44]
mov esi, ecx
or esi, ebx
not ebx
or ebx, edx
and ebx, esi
add bl, 0x98
mov byte [esp + ecx - 0x44], bl
inc ecx
dec edx
cmp ecx, 0x53
jne 0x40f5a0
movzx ebx, byte [esp + 4]
mov ecx, eax
test bl, bl
je 0x40f60b
lea edx, [esp + 4]
mov esi, edx
mov edi, eax
mov ecx, eax
jmp 0x40f5e7
movzx ebx, byte [esi]
test bl, bl
je 0x40f60b
mov bh, byte [edi]
test bh, bh
je 0x40f78e
inc edi
inc esi
lea ebp, [ecx + 1]
cmp bh, bl
je 0x40f5fe
mov ecx, ebp
mov edi, ebp
je 0x40f5e0
mov esi, edx
jmp 0x40f5e0
xor ebx, ebx
jmp 0x40f799
test ecx, ecx
je 0x40f78e
mov dword [esp + 4], 0xbeb1c4b2
mov dword [esp + 8], 0x51c101e7
mov dword [esp + 0xc], 0xf9fc4a4d
mov dword [esp + 0x10], 0x5a4e3856
mov dword [esp + 0x14], 0xd1f4104b
mov word [esp + 0x18], 0
mov byte [esp + 0x1a], 0
mov ecx, 0x39
mov edx, 6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, edx
and esi, 0xd8
mov ebx, ecx
and ebx, 0x27
or ebx, esi
xor bl, byte [esp + ecx - 0x35]
xor bl, 0xd8
add bl, 0x23
mov byte [esp + ecx - 0x35], bl
inc ecx
dec edx
cmp ecx, 0x50
jne 0x40f660
movzx ebx, byte [esp + 4]
mov ecx, eax
test bl, bl
je 0x40f6c4
lea edx, [esp + 4]
mov esi, edx
mov edi, eax
mov ecx, eax
jmp 0x40f6a7
movzx ebx, byte [esi]
test bl, bl
je 0x40f6c4
mov bh, byte [edi]
test bh, bh
je 0x40f78e
inc edi
inc esi
lea ebp, [ecx + 1]
cmp bh, bl
je 0x40f6be
mov ecx, ebp
mov edi, ebp
je 0x40f6a0
mov esi, edx
jmp 0x40f6a0
test ecx, ecx
je 0x40f78e
mov esi, ecx
mov word [esp + 4], 0x5b46
mov byte [esp + 6], 0x16
mov word [esp + 7], 0
mov byte [esp + 9], 0
mov edx, 0x416f2206
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edx - 0x416f2202]
xor ecx, edx
add ecx, 0xb8d455e1
mov ebx, ecx
xor ebx, 0xfe
or ecx, 1
and ebx, ecx
add ebx, ecx
mov byte [esp + edx - 0x416f2202], bl
inc edx
cmp edx, 0x416f220c
jne 0x40f6f0
mov ecx, esi
add ecx, 0x13
movzx ebx, byte [esp + 4]
test bl, bl
je 0x40f760
lea esi, [esp + 4]
mov edi, esi
mov edx, ecx
mov dword [esp + 0x6c], ecx
jmp 0x40f747
movzx ebx, byte [edi]
test bl, bl
je 0x40f764
mov bh, byte [ecx]
test bh, bh
je 0x40f78e
inc ecx
inc edi
lea ebp, [edx + 1]
cmp bh, bl
je 0x40f75a
mov edx, ebp
mov ecx, ebp
je 0x40f740
mov edi, esi
jmp 0x40f740
mov edx, ecx
jmp 0x40f76c
test edx, edx
mov ecx, dword [esp + 0x6c]
je 0x40f78e
mov byte [0x450c38], 1
push edx
push ecx
push 0x100
push str.zSxwaqcZVy6wb90sQGH7YN11fqPPkorlxgMsfMnPo9I_1730391056_0.0.1.1__api
call fcn.0040f040
add esp, 0x10
mov eax, dword [esp]
mov bl, 1
jmp 0x40f790
xor ebx, ebx
push eax
call fcn.0043e640
add esp, 4
mov eax, ebx
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret