Function at 0x40fc49
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, str._ERJ_n_b
mov dword [ebp - 0x2c], ecx
lea edi, [ebp - 0x3c]
mov dword [ebp - 0x10], edx
push 0x32
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, 0x35
xor byte [ebp + esi - 0x3c], dl
inc esi
cmp esi, 0xb
jl 0x40fc6d
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea eax, [ebp - 0x3c]
push eax
call ebx
cmp byte [0x4425b9], 0
lea edi, [ebp - 0x6c]
mov esi, str.RR_v_v
mov dword [ebp - 8], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
je 0x40fcbc
push 0x32
xor ecx, ecx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x35
xor byte [ebp + ecx - 0x6c], dl
inc ecx
cmp ecx, 0xa
jl 0x40fca9
lea eax, [ebp - 0x6c]
push eax
call ebx
mov ebx, dword [ebp - 8]
mov dword [ebp - 4], eax
test ebx, ebx
je 0x410008
test eax, eax
je 0x410008
mov esi, 0x4426bc
lea edi, [ebp - 0x60]
push 0x32
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, 0x35
xor byte [ebp + ecx - 0x60], dl
inc ecx
cmp ecx, 0x11
jl 0x40fcea
lea eax, [ebp - 0x60]
push eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call ebx
test eax, eax
je 0x410008
call eax
mov dword [ebp - 0xc], eax
test eax, eax
je 0x410008
cmp byte [0x4425c1], 0
mov ecx, dword [str.rSCz:]
mov dword [ebp - 0x1c], ecx
mov cx, word [0x4425c0]
mov word [ebp - 0x18], cx
je 0x40fd51
xor ecx, ecx
xor edx, edx
mov eax, ecx
div esi
add dl, 0x35
xor byte [ebp + ecx - 0x1c], dl
inc ecx
cmp ecx, 6
jl 0x40fd3e
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 8]
call ebx
cmp byte [0x442561], 0
lea edi, [ebp - 0x78]
mov esi, 0x442558
mov dword [ebp - 0x48], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
je 0x40fd8a
push 0x32
xor ecx, ecx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x35
xor byte [ebp + ecx - 0x78], dl
inc ecx
cmp ecx, 0xa
jl 0x40fd77
lea eax, [ebp - 0x78]
push eax
push dword [ebp - 8]
call ebx
mov esi, str.vDRYM_xSPN4____
mov dword [ebp - 8], eax
lea edi, [ebp - 0xac]
xor ecx, ecx
push 0x32
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, 0x35
xor byte [ebp + ecx - 0xac], dl
inc ecx
cmp ecx, 0x13
jl 0x40fdad
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 4]
call ebx
push 5
pop ecx
mov esi, str.vDRYM_xSPN4_____a_3__:K
mov dword [ebp - 0x4c], eax
lea edi, [ebp - 0xc4]
rep movsd dword es:[edi], dword [esi]
push 0x32
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, 0x35
xor byte [ebp + ecx - 0xc4], dl
inc ecx
cmp ecx, 0x17
jl 0x40fdea
lea eax, [ebp - 0xc4]
push eax
push dword [ebp - 4]
call ebx
mov esi, str.fS__ZNtW_4A
mov dword [ebp - 0x20], eax
lea edi, [ebp - 0x88]
xor ecx, ecx
push 0x32
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, 0x35
xor byte [ebp + ecx - 0x88], dl
inc ecx
cmp ecx, 0xd
jl 0x40fe23
lea eax, [ebp - 0x88]
push eax
push dword [ebp - 4]
call ebx
mov esi, str.w_CzUN_
mov dword [ebp - 0x24], eax
lea edi, [ebp - 0x44]
xor ecx, ecx
push 0x32
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, 0x35
xor byte [ebp + ecx - 0x44], dl
inc ecx
cmp ecx, 7
jl 0x40fe59
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 4]
call ebx
cmp byte [0x442625], 0
lea edi, [ebp - 0x60]
mov esi, str.rSCzPNV_MV42B
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 0x40fea6
push 0x32
xor ecx, ecx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x35
xor byte [ebp + ecx - 0x60], dl
inc ecx
cmp ecx, 0xe
jl 0x40fe93
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 4]
call ebx
mov esi, str.qS__M_tW_4A
mov dword [ebp - 0x30], eax
lea edi, [ebp - 0x98]
xor ecx, ecx
push 0x32
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, 0x35
xor byte [ebp + ecx - 0x98], dl
inc ecx
cmp ecx, 0xd
jl 0x40fec6
lea eax, [ebp - 0x98]
push eax
push dword [ebp - 4]
call ebx
mov esi, str.qS__M_
mov dword [ebp - 0x14], eax
lea edi, [ebp - 0x3c]
xor ecx, ecx
push 0x32
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, 0x35
xor byte [ebp + ecx - 0x3c], dl
inc ecx
cmp ecx, 9
jl 0x40fefb
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 0x410008
cmp dword [ebp - 8], 0
je 0x410008
mov edi, dword [ebp - 0x4c]
test edi, edi
je 0x410008
cmp dword [ebp - 0x20], 0
je 0x410008
cmp dword [ebp - 0x24], 0
je 0x410008
cmp dword [ebp - 0x28], 0
je 0x410008
cmp dword [ebp - 0x30], 0
je 0x410008
cmp dword [ebp - 0x14], 0
je 0x410008
test eax, eax
je 0x410008
mov ebx, dword [ebp - 0xc]
push ebx
call ecx
mov esi, eax
test esi, esi
je 0x410008
push esi
call edi
mov edi, eax
test edi, edi
jne 0x40ff91
push esi
push ebx
jmp 0x410005
push dword [ebp + 8]
push dword [ebp - 0x10]
push esi
call dword [ebp - 0x20]
mov ebx, eax
test ebx, ebx
je 0x40fffd
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 0x40fff9
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2c]
shl eax, 2
push eax
call fcn.00410754
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 0x40fff9
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 0x41000a
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