Function at 0x40dce9
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
push edi
mov ecx, 4
push esi
push ebx
mov esi, 0x4228a0
sub esp, 0x48c
lea edi, [esp + 0x60]
mov eax, dword [esp + 0x4a0]
mov dword [esp + 0x48], 0
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x70]
mov esi, 0x4228b0
mov ecx, 4
mov dword [eax], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
rep movsd dword es:[edi], dword [esi]
mov dword [esp], str.2CQi5Yi4.Sii
call fcn.004081aa
mov dword [esp], eax
call sub.KERNEL32.dll_LoadLibraryA
mov esi, eax
xor eax, eax
push ebx
test esi, esi
je 0x40e3aa
mov dword [esp], str.zCQi5TsdRzCQi5
call fcn.004081aa
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetProcAddress
push edx
push edx
mov edi, eax
mov dword [esp], str.zCQi5PiW6dzCQi5
call fcn.004081aa
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetProcAddress
push ecx
push ecx
mov dword [esp], str.zCQi5jRQld0C5dX5dl6
mov dword [esp + 0x34], eax
call fcn.004081aa
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetProcAddress
push ebx
push ebx
mov ebx, eax
mov dword [esp], str.zCQi5Ed5X5dl
call fcn.004081aa
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetProcAddress
push ebp
push ebp
mov dword [esp], str.zCQi5Ed5X5dl
mov dword [esp + 0x38], eax
call fcn.004081aa
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetProcAddress
push edx
push edx
mov dword [esp], str.zCQi5_0dd
mov dword [esp + 0x3c], eax
call fcn.004081aa
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetProcAddress
test edi, edi
push ecx
push ecx
sete dl
test ebx, ebx
mov dword [esp + 0x2c], eax
sete al
or eax, edx
cmp dword [esp + 0x34], 0
sete dl
or eax, edx
cmp dword [esp + 0x38], 0
sete dl
or eax, edx
cmp dword [esp + 0x3c], 0
sete dl
or al, dl
jne 0x40de4c
cmp dword [esp + 0x2c], 0
jne 0x40de53
xor ebx, ebx
jmp 0x40e371
lea eax, [esp + 0x4c]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
call edi
sub esp, 0xc
test eax, eax
jne 0x40de4c
lea eax, [esp + 0x54]
mov dword [esp + 4], 0x200
mov dword [esp + 0xc], eax
lea eax, [esp + 0x50]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call ebx
sub esp, 0x10
test eax, eax
jne 0x40de4c
cmp dword [esp + 0x50], 0
je 0x40de4c
call fcn.004132e6
cmp eax, 0xa
jne 0x40deb8
mov dword [esp + 0x30], 0
xor ebx, ebx
jmp 0x40df24
call fcn.004132e6
cmp eax, 0xc
je 0x40deac
call fcn.004132e6
cmp eax, 0xb
je 0x40deac
call fcn.004132e6
cmp eax, 0xe
je 0x40deac
call fcn.004132e6
cmp eax, 0xd
je 0x40deac
call fcn.004132e6
cmp eax, 0xf
je 0x40deac
mov dword [esp + 0x30], 0
xor ebx, ebx
jmp 0x40e164
imul edx, dword [esp + 0x30], 0x38
lea eax, [esp + 0x70]
mov dword [esp + 8], 0x10
add edx, dword [esp + 0x54]
mov dword [esp + 4], eax
mov dword [esp], edx
mov edi, edx
call fcn.004129c0
test eax, eax
je 0x40df33
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x50]
jb 0x40def9
jmp 0x40e371
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x100
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 8], eax
call sub.KERNEL32.dll_WideCharToMultiByte
sub esp, 0x20
lea eax, [esp + 0x180]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x100
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 4], 0
mov dword [esp], 0
add eax, 0x20
mov dword [esp + 8], eax
call sub.KERNEL32.dll_WideCharToMultiByte
sub esp, 0x20
lea ebp, [esp + 0x280]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x100
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], ebp
mov eax, dword [edi + 0x18]
mov dword [esp + 4], 0
mov dword [esp], 0
add eax, 0x20
mov dword [esp + 8], eax
call sub.KERNEL32.dll_WideCharToMultiByte
sub esp, 0x20
lea eax, [esp + 0x58]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call dword [esp + 0x3c]
sub esp, 0x20
test eax, eax
jne 0x40e120
mov eax, dword [esp + 0x58]
lea edx, [esp + 0x380]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x100
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0xffffffff
mov eax, dword [eax + 0x1c]
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 0x38], edx
add eax, 0x20
mov dword [esp + 8], eax
call sub.KERNEL32.dll_WideCharToMultiByte
sub esp, 0x20
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ebp
lea eax, [esp + 0x180]
lea ebp, [esp + 0x5c]
mov dword [esp + 8], 2
mov dword [esp + 4], str._c_s_a_s:_s_b_b_b_b
mov dword [esp + 0xc], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x14], edx
mov dword [esp], ebp
call fcn.00412755
cmp eax, 0xffffffff
mov edi, eax
je 0x40e120
mov dword [esp + 0xc], eax
lea eax, [esp + 0x48]
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 1
mov dword [esp + 8], ebp
add ebx, edi
mov dword [esp], eax
call fcn.00412abf
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x58]
test eax, eax
je 0x40df20
mov dword [esp], eax
call dword [esp + 0x2c]
push ebp
jmp 0x40df20
imul edx, dword [esp + 0x30], 0x34
lea eax, [esp + 0x70]
mov dword [esp + 8], 0x10
add edx, dword [esp + 0x54]
mov dword [esp + 4], eax
mov dword [esp], edx
mov edi, edx
call fcn.004129c0
test eax, eax
je 0x40e173
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x50]
jb 0x40e139
jmp 0x40e371
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x100
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 8], eax
call sub.KERNEL32.dll_WideCharToMultiByte
sub esp, 0x20
lea eax, [esp + 0x180]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x100
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 4], 0
mov dword [esp], 0
add eax, 0x20
mov dword [esp + 8], eax
call sub.KERNEL32.dll_WideCharToMultiByte
sub esp, 0x20
lea ebp, [esp + 0x280]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x100
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], ebp
mov eax, dword [edi + 0x18]
mov dword [esp + 4], 0
mov dword [esp], 0
add eax, 0x20
mov dword [esp + 8], eax
call sub.KERNEL32.dll_WideCharToMultiByte
sub esp, 0x20
lea eax, [esp + 0x58]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call dword [esp + 0x38]
sub esp, 0x1c
test eax, eax
jne 0x40e358
mov eax, dword [esp + 0x58]
lea edx, [esp + 0x380]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x100
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0xffffffff
mov eax, dword [eax + 0x1c]
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 0x3c], edx
add eax, 0x20
mov dword [esp + 8], eax
call sub.KERNEL32.dll_WideCharToMultiByte
sub esp, 0x20
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], ebp
lea eax, [esp + 0x180]
lea ebp, [esp + 0x5c]
mov dword [esp + 8], 2
mov dword [esp + 4], str._c_s_a_s:_s_b_b_b_b
mov dword [esp + 0xc], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x14], edx
mov dword [esp], ebp
call fcn.00412755
cmp eax, 0xffffffff
mov edi, eax
je 0x40e358
mov dword [esp + 0xc], eax
lea eax, [esp + 0x48]
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 1
mov dword [esp + 8], ebp
add ebx, edi
mov dword [esp], eax
call fcn.00412abf
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x58]
test eax, eax
je 0x40e160
mov dword [esp], eax
call dword [esp + 0x2c]
push edi
jmp 0x40e160
mov eax, dword [esp + 0x54]
test eax, eax
je 0x40e381
mov dword [esp], eax
call dword [esp + 0x2c]
push ecx
cmp dword [esp + 0x4c], 0
je 0x40e394
lea eax, [esp + 0x4c]
mov dword [esp], eax
call dword [esp + 0x34]
push edx
mov dword [esp], esi
call sub.KERNEL32.dll_FreeLibrary
push eax
mov eax, dword [esp + 0x4a0]
mov dword [eax], ebx
mov eax, dword [esp + 0x48]
add esp, 0x48c
pop ebx
pop esi
pop edi
pop ebp
ret