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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push esi
push edi
mov edi, dword [0x4060b0]
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x401064
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 4], ebx
sub edx, edi
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x401082
xor ecx, ecx
test esi, esi
jle 0x4010a0
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x401095
mov edi, dword [0x4060a4]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x4010b0
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 8], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x4010d0
xor ecx, ecx
test esi, esi
jle 0x4010ee
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x4010e3
mov edi, dword [0x4060b4]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x401100
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0xc], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x401120
xor ecx, ecx
test esi, esi
jle 0x40113e
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x401133
mov edi, dword [0x406078]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x401150
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x10], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x401170
xor ecx, ecx
test esi, esi
jle 0x40118e
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x401183
mov edi, dword [0x40609c]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4011a0
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x14], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x4011c0
xor ecx, ecx
test esi, esi
jle 0x4011de
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x4011d3
mov edi, dword [0x406088]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4011f0
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x18], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x401210
xor ecx, ecx
test esi, esi
jle 0x40122e
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x401223
mov edi, dword [0x406068]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x401240
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x1c], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x401260
xor ecx, ecx
test esi, esi
jle 0x40127e
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x401273
mov edi, dword [0x4060b8]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x401290
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x38], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x4012b0
xor ecx, ecx
test esi, esi
jle 0x4012ce
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x4012c3
mov edi, dword [0x4060ac]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4012e0
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x24], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x401300
xor ecx, ecx
test esi, esi
jle 0x40131e
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x401313
mov edi, dword [0x40606c]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x401330
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x28], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x401350
xor ecx, ecx
test esi, esi
jle 0x40136e
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x401363
mov edi, dword [0x406090]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x401380
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x2c], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x4013a0
xor ecx, ecx
test esi, esi
jle 0x4013be
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x4013b3
mov edi, dword [0x40608c]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4013d0
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x40], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x4013f0
xor ecx, ecx
test esi, esi
jle 0x40140e
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x401403
mov edi, dword [0x4060a8]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x401420
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x44], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x401440
xor ecx, ecx
test esi, esi
jle 0x40145e
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x401453
mov edi, dword [0x406084]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x401470
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x30], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x401490
xor ecx, ecx
test esi, esi
jle 0x4014ae
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x4014a3
mov edi, dword [0x40605c]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4014c0
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x34], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], cl
test cl, cl
jne 0x4014e0
xor ecx, ecx
test esi, esi
jle 0x4014fe
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x4014f3
mov edi, dword [0x4060c4]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x401510
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x20], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edi + edx - 1], cl
test cl, cl
jne 0x401530
xor ecx, ecx
test esi, esi
jle 0x40154e
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x401543
mov edi, dword [0x40607c]
mov byte [ebx + esi], 0
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x401560
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00402766
mov ebx, eax
add esp, 4
mov edx, ebx
mov dword [ebp - 0x3c], ebx
sub edx, edi
nop
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [edi + edx - 1], cl
test cl, cl
jne 0x401580
xor ecx, ecx
test esi, esi
jle 0x40159e
xor byte [ebx + ecx], cl
lea eax, [ebx + ecx]
inc ecx
cmp ecx, esi
jl 0x401593
push dword [ebp - 4]
mov byte [ebx + esi], 0
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
call ebx
push dword [ebp - 8]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
push esi
call edi
push dword [ebp - 0xc]
mov dword [0x4064c4], eax
push esi
call edi
push dword [ebp - 0x10]
mov dword [0x4064a0], eax
push esi
call edi
push dword [ebp - 0x14]
mov dword [0x4064c0], eax
push esi
call edi
push dword [ebp - 0x18]
mov dword [0x4064b8], eax
push esi
call edi
push dword [ebp - 0x1c]
mov dword [0x4064d4], eax
push esi
call edi
mov edi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
push esi
mov dword [0x4064cc], eax
call edi
push dword [ebp - 0x20]
call ebx
push dword [ebp - 0x24]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push dword [ebp - 0x28]
mov dword [0x4064b4], eax
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push dword [ebp - 0x2c]
mov dword [0x4064bc], eax
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push dword [ebp - 0x30]
mov dword [0x4064b0], eax
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push dword [ebp - 0x34]
mov dword [0x4064c8], eax
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push dword [ebp - 0x38]
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push esi
mov dword [0x4064ac], eax
call edi
push dword [ebp - 0x3c]
call ebx
push dword [ebp - 0x40]
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
push esi
call ebx
push dword [ebp - 0x44]
mov dword [0x4064a4], eax
push esi
call ebx
push esi
mov dword [0x4064d0], eax
call edi
push dword [ebp - 4]
call fcn.00402564
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret