Function at 0x40f2a6
Capabilities:
Encode data using xor
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc4
push ebx
push esi
push edi
mov esi, 0x43fe1c
mov dword [ebp - 0x2c], ecx
lea edi, [ebp - 0x3c]
mov dword [ebp - 0x10], edx
push 0x33
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor esi, esi
xor edx, edx
mov eax, esi
div ecx
add dl, 0x34
xor byte [ebp + esi - 0x3c], dl
inc esi
cmp esi, 0xb
jl 0x40f2ca
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea eax, [ebp - 0x3c]
push eax
call ebx
cmp byte [0x4404bd], 0
lea edi, [ebp - 0x6c]
mov esi, 0x4404b4
mov dword [ebp - 8], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
je 0x40f319
push 0x33
xor ecx, ecx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0x6c], dl
inc ecx
cmp ecx, 0xa
jl 0x40f306
lea eax, [ebp - 0x6c]
push eax
call ebx
mov ebx, dword [ebp - 8]
mov dword [ebp - 4], eax
test ebx, ebx
je 0x40f660
test eax, eax
je 0x40f660
mov esi, 0x440494
lea edi, [ebp - 0x60]
push 0x33
xor ecx, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0x60], dl
inc ecx
cmp ecx, 0x11
jl 0x40f347
lea eax, [ebp - 0x60]
push eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call ebx
test eax, eax
je 0x40f660
call eax
mov dword [ebp - 0xc], eax
test eax, eax
je 0x40f660
mov ecx, dword [str.sPBs9]
mov dword [ebp - 0x1c], ecx
mov cx, word [0x4404e8]
mov word [ebp - 0x18], cx
test ch, ch
je 0x40f3a9
xor ecx, ecx
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0x1c], dl
inc ecx
cmp ecx, 6
jl 0x40f396
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 8]
call ebx
cmp byte [0x4404b1], 0
lea edi, [ebp - 0x78]
mov esi, str.fPZRYJ_
mov dword [ebp - 0x48], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
je 0x40f3e2
push 0x33
xor ecx, ecx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0x78], dl
inc ecx
cmp ecx, 0xa
jl 0x40f3cf
lea eax, [ebp - 0x78]
push eax
push dword [ebp - 8]
call ebx
mov esi, str.wGSVLyTQM_K_.
mov dword [ebp - 8], eax
lea edi, [ebp - 0xac]
xor ecx, ecx
push 0x33
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0xac], dl
inc ecx
cmp ecx, 0x13
jl 0x40f405
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 4]
call ebx
push 5
pop ecx
mov esi, 0x44042c
mov dword [ebp - 0x4c], eax
lea edi, [ebp - 0xc4]
rep movsd dword es:[edi], dword [esi]
push 0x33
xor ecx, ecx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0xc4], dl
inc ecx
cmp ecx, 0x17
jl 0x40f442
lea eax, [ebp - 0xc4]
push eax
push dword [ebp - 4]
call ebx
mov esi, str.gPZR_MuYVX_K_
mov dword [ebp - 0x20], eax
lea edi, [ebp - 0x88]
xor ecx, ecx
push 0x33
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0x88], dl
inc ecx
cmp ecx, 0xd
jl 0x40f47b
lea eax, [ebp - 0x88]
push eax
push dword [ebp - 4]
call ebx
mov esi, str.vBuTM:
mov dword [ebp - 0x24], eax
lea edi, [ebp - 0x44]
xor ecx, ecx
push 0x33
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0x44], dl
inc ecx
cmp ecx, 7
jl 0x40f4b1
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 4]
call ebx
cmp byte [0x440531], 0
lea edi, [ebp - 0x60]
mov esi, 0x440524
mov dword [ebp - 0x28], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
je 0x40f4fe
push 0x33
xor ecx, ecx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0x60], dl
inc ecx
cmp ecx, 0xe
jl 0x40f4eb
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 4]
call ebx
mov esi, str.pPZRLuYVX_K_
mov dword [ebp - 0x30], eax
lea edi, [ebp - 0x98]
xor ecx, ecx
push 0x33
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0x98], dl
inc ecx
cmp ecx, 0xd
jl 0x40f51e
lea eax, [ebp - 0x98]
push eax
push dword [ebp - 4]
call ebx
mov esi, str.pPZRLx_
mov dword [ebp - 0x14], eax
lea edi, [ebp - 0x3c]
xor ecx, ecx
push 0x33
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0x3c], dl
inc ecx
cmp ecx, 9
jl 0x40f553
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 4]
call ebx
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 4], eax
test ecx, ecx
je 0x40f660
cmp dword [ebp - 8], 0
je 0x40f660
mov edi, dword [ebp - 0x4c]
test edi, edi
je 0x40f660
cmp dword [ebp - 0x20], 0
je 0x40f660
cmp dword [ebp - 0x24], 0
je 0x40f660
cmp dword [ebp - 0x28], 0
je 0x40f660
cmp dword [ebp - 0x30], 0
je 0x40f660
cmp dword [ebp - 0x14], 0
je 0x40f660
test eax, eax
je 0x40f660
mov ebx, dword [ebp - 0xc]
push ebx
call ecx
mov esi, eax
test esi, esi
je 0x40f660
push esi
call edi
mov edi, eax
test edi, edi
jne 0x40f5e9
push esi
push ebx
jmp 0x40f65d
push dword [ebp + 8]
push dword [ebp - 0x10]
push esi
call dword [ebp - 0x20]
mov ebx, eax
test ebx, ebx
je 0x40f655
push ebx
push edi
call dword [ebp - 0x24]
push 0xcc0020
xor eax, eax
push eax
push eax
push esi
push dword [ebp + 8]
push dword [ebp - 0x10]
push eax
push eax
push edi
call dword [ebp - 0x28]
test eax, eax
je 0x40f651
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2c]
shl eax, 2
push eax
call fcn.0040fdac
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 4]
push dword [ecx]
sub eax, dword [ecx]
push eax
push ebx
call dword [ebp - 0x30]
test eax, eax
je 0x40f651
push ebx
call dword [ebp - 0x14]
push edi
call dword [ebp - 4]
push esi
push dword [ebp - 0xc]
call dword [ebp - 8]
mov al, 1
jmp 0x40f662
push ebx
call dword [ebp - 0x14]
push edi
call dword [ebp - 4]
push esi
push dword [ebp - 0xc]
call dword [ebp - 8]
xor al, al
pop edi
pop esi
pop ebx
leave
ret