Function at 0x40bca0
Capabilities:
Link many functions at runtime

Disassembly:
push ecx
push ebx
mov ebx, ecx
push ebp
xor ecx, ecx
mov ebp, dword [ebx + 4]
push esi
test ebp, ebp
push edi
mov dword [esp + 0x10], ecx
jle 0x40bd09
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x40bcec
test al, al
je 0x40bce8
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x40bcec
add esi, 2
add edi, 2
test al, al
jne 0x40bcc8
xor eax, eax
jmp 0x40bcf1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40bd3d
mov edx, dword [esp + 0x10]
inc ecx
add edx, 4
cmp ecx, ebp
mov dword [esp + 0x10], edx
jl 0x40bcbb
mov dword [esp + 0x10], ecx
cmp ebp, dword [ebx + 0x10]
jge 0x40c061
push 0x1c
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edx, eax
add esp, 4
test edx, edx
je 0x40bf6e
lea edi, [edx + 4]
mov ecx, 6
xor eax, eax
mov dword [edx], 0x4250a8
rep stosd dword es:[edi], eax
jmp 0x40bf70
mov eax, dword [esp + 0x1c]
mov ebp, dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [esp + 0x10], ecx
je 0x40bdb5
mov eax, dword [ebx + 0x18]
push str.lstrlenA
push 0x427080
mov esi, dword [eax + ecx*4]
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call ebp
mov edi, eax
mov eax, dword [esi + 8]
test eax, eax
je 0x40bd7a
push eax
call fcn.00423fc0
add esp, 4
mov eax, dword [esp + 0x1c]
push eax
call edi
inc eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edi, dword [esp + 0x20]
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
mov dword [esi + 8], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40be23
mov edx, dword [ebx + 0x18]
push str.lstrlenA
push 0x427080
mov esi, dword [edx + ecx*4]
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call ebp
mov edi, eax
mov eax, dword [esi + 0xc]
test eax, eax
je 0x40bde8
push eax
call fcn.00423fc0
add esp, 4
mov eax, dword [esp + 0x20]
push eax
call edi
inc eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edi, dword [esp + 0x24]
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
mov dword [esi + 0xc], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x40be91
mov edx, dword [ebx + 0x18]
push str.lstrlenA
push 0x427080
mov esi, dword [edx + ecx*4]
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call ebp
mov edi, eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0x40be56
push eax
call fcn.00423fc0
add esp, 4
mov eax, dword [esp + 0x24]
push eax
call edi
inc eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edi, dword [esp + 0x28]
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
mov dword [esi + 0x10], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40beff
mov edx, dword [ebx + 0x18]
push str.lstrlenA
push 0x427080
mov esi, dword [edx + ecx*4]
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call ebp
mov edi, eax
mov eax, dword [esi + 0x14]
test eax, eax
je 0x40bec4
push eax
call fcn.00423fc0
add esp, 4
mov eax, dword [esp + 0x28]
push eax
call edi
inc eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edi, dword [esp + 0x2c]
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
mov dword [esi + 0x14], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x40bf61
mov edx, dword [ebx + 0x18]
push str.lstrlenA
push 0x427080
mov esi, dword [edx + ecx*4]
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call ebp
mov ebx, eax
mov eax, dword [esi + 0x18]
test eax, eax
je 0x40bf32
push eax
call fcn.00423fc0
add esp, 4
push edi
call ebx
inc eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
mov dword [esi + 0x18], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
pop ecx
ret 0x18
xor edx, edx
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x18]
push str.lstrlenA
push 0x427080
mov dword [eax + ecx*4], edx
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x18]
mov esi, dword [edx + ecx*4]
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebp, dword [esp + 0x18]
mov edi, eax
test ebp, ebp
je 0x40bfe4
mov eax, dword [esi + 4]
test eax, eax
je 0x40bfb3
push eax
call fcn.00423fc0
add esp, 4
push ebp
call edi
inc eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edx, eax
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
add esp, 4
mov dword [esi + 4], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 0x18]
push ecx
push 1
mov ecx, dword [eax + edx*4]
call fcn.0040c070
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 0x18]
push ecx
push 2
mov ecx, dword [eax + edx*4]
call fcn.0040c070
mov ecx, dword [esp + 0x24]
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 0x18]
push ecx
push 3
mov ecx, dword [eax + edx*4]
call fcn.0040c070
mov ecx, dword [esp + 0x28]
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 0x18]
push ecx
push 4
mov ecx, dword [eax + edx*4]
call fcn.0040c070
mov ecx, dword [esp + 0x2c]
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 0x18]
push ecx
push 5
mov ecx, dword [eax + edx*4]
call fcn.0040c070
mov eax, dword [ebx + 4]
pop edi
inc eax
pop esi
mov dword [ebx + 4], eax
pop ebp
mov eax, 1
pop ebx
pop ecx
ret 0x18
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret 0x18