Function at 0x40e578
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.G_QG
mov dword [ebp - 0x2c], ecx
lea edi, [ebp - 0x3c]
mov dword [ebp - 0x10], edx
push 0x34
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, 0x32
xor byte [ebp + esi - 0x3c], dl
inc esi
cmp esi, 0xb
jl 0x40e59c
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea eax, [ebp - 0x3c]
push eax
call ebx
cmp byte [0x43a05d], 0
lea edi, [ebp - 0x6c]
mov esi, 0x43a054
mov dword [ebp - 8], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
je 0x40e5eb
push 0x34
xor ecx, ecx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x32
xor byte [ebp + ecx - 0x6c], dl
inc ecx
cmp ecx, 0xa
jl 0x40e5d8
lea eax, [ebp - 0x6c]
push eax
call ebx
mov ebx, dword [ebp - 8]
mov dword [ebp - 4], eax
test ebx, ebx
je 0x40e932
test eax, eax
je 0x40e932
mov esi, str.uV_qSDSMUKkTP__6B
lea edi, [ebp - 0x60]
push 0x34
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, 0x32
xor byte [ebp + ecx - 0x60], dl
inc ecx
cmp ecx, 0x11
jl 0x40e619
lea eax, [ebp - 0x60]
push eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call ebx
test eax, eax
je 0x40e932
call eax
mov dword [ebp - 0xc], eax
test eax, eax
je 0x40e932
mov ecx, dword [str.uV_qu7]
mov dword [ebp - 0x1c], ecx
mov cx, word [0x43a0a0]
mov word [ebp - 0x18], cx
test ch, ch
je 0x40e67b
xor ecx, ecx
xor edx, edx
mov eax, ecx
div esi
add dl, 0x32
xor byte [ebp + ecx - 0x1c], dl
inc ecx
cmp ecx, 6
jl 0x40e668
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 8]
call ebx
cmp byte [0x43a0d9], 0
lea edi, [ebp - 0x78]
mov esi, str._VXPWD_y_
mov dword [ebp - 0x48], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
je 0x40e6b4
push 0x34
xor ecx, ecx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x32
xor byte [ebp + ecx - 0x78], dl
inc ecx
cmp ecx, 0xa
jl 0x40e6a1
lea eax, [ebp - 0x78]
push eax
push dword [ebp - 8]
call ebx
mov esi, str.qAQTBRVWK_IW___
mov dword [ebp - 8], eax
lea edi, [ebp - 0xac]
xor ecx, ecx
push 0x34
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, 0x32
xor byte [ebp + ecx - 0xac], dl
inc ecx
cmp ecx, 0x13
jl 0x40e6d7
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 4]
call ebx
push 5
pop ecx
mov esi, 0x43a060
mov dword [ebp - 0x4c], eax
lea edi, [ebp - 0xc4]
rep movsd dword es:[edi], dword [esi]
push 0x34
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, 0x32
xor byte [ebp + ecx - 0xc4], dl
inc ecx
cmp ecx, 0x17
jl 0x40e714
lea eax, [ebp - 0xc4]
push eax
push dword [ebp - 4]
call ebx
mov esi, str.aVXPUCw_P_I_
mov dword [ebp - 0x20], eax
lea edi, [ebp - 0x88]
xor ecx, ecx
push 0x34
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, 0x32
xor byte [ebp + ecx - 0x88], dl
inc ecx
cmp ecx, 0xd
jl 0x40e74d
lea eax, [ebp - 0x88]
push eax
push dword [ebp - 4]
call ebx
mov esi, str.pZ_wZC8
mov dword [ebp - 0x24], eax
lea edi, [ebp - 0x44]
xor ecx, ecx
push 0x34
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, 0x32
xor byte [ebp + ecx - 0x44], dl
inc ecx
cmp ecx, 7
jl 0x40e783
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 4]
call ebx
cmp byte [0x43a0b9], 0
lea edi, [ebp - 0x60]
mov esi, str.uV_w_CUXJyUIM_
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 0x40e7d0
push 0x34
xor ecx, ecx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x32
xor byte [ebp + ecx - 0x60], dl
inc ecx
cmp ecx, 0xe
jl 0x40e7bd
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 4]
call ebx
mov esi, str.vVXPBRw_P_I_
mov dword [ebp - 0x30], eax
lea edi, [ebp - 0x98]
xor ecx, ecx
push 0x34
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, 0x32
xor byte [ebp + ecx - 0x98], dl
inc ecx
cmp ecx, 0xd
jl 0x40e7f0
lea eax, [ebp - 0x98]
push eax
push dword [ebp - 4]
call ebx
mov esi, str.vVXPBRz:
mov dword [ebp - 0x14], eax
lea edi, [ebp - 0x3c]
xor ecx, ecx
push 0x34
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, 0x32
xor byte [ebp + ecx - 0x3c], dl
inc ecx
cmp ecx, 9
jl 0x40e825
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 0x40e932
cmp dword [ebp - 8], 0
je 0x40e932
mov edi, dword [ebp - 0x4c]
test edi, edi
je 0x40e932
cmp dword [ebp - 0x20], 0
je 0x40e932
cmp dword [ebp - 0x24], 0
je 0x40e932
cmp dword [ebp - 0x28], 0
je 0x40e932
cmp dword [ebp - 0x30], 0
je 0x40e932
cmp dword [ebp - 0x14], 0
je 0x40e932
test eax, eax
je 0x40e932
mov ebx, dword [ebp - 0xc]
push ebx
call ecx
mov esi, eax
test esi, esi
je 0x40e932
push esi
call edi
mov edi, eax
test edi, edi
jne 0x40e8bb
push esi
push ebx
jmp 0x40e92f
push dword [ebp + 8]
push dword [ebp - 0x10]
push esi
call dword [ebp - 0x20]
mov ebx, eax
test ebx, ebx
je 0x40e927
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 0x40e923
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2c]
shl eax, 2
push eax
call fcn.0040eabe
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 0x40e923
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 0x40e934
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