Function at 0x52bfac
Capabilities:
Link many functions at runtime
Print debug messages
Set current directory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
xor edx, edx
mov dword [ebp - 4], edx
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x52d28d
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov eax, dword [ebp - 8]
cmp byte [eax + 0x648], 0
jne 0x52d277
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x624]
call fcn.00405bcc
push eax
call sub.kernel32.dll_SetCurrentDirectoryW
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x624]
lea eax, [ebp - 4]
mov ecx, 0x52d2a8
call fcn.00405f14
mov eax, dword [ebp - 4]
call fcn.00405bcc
mov esi, eax
push esi
call sub.kernel32.dll_OutputDebugStringW
push esi
call sub.kernel32.dll_LoadLibraryW
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x62c], ebx
cmp ebx, 0x20
jae 0x52c036
mov ebx, 1
jmp 0x52d277
xor eax, eax
push ebp
push 0x52ca43
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x190
push ebx
call sub.kernel32.dll_GetProcAddress_1
mov esi, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x4cc], esi
test esi, esi
jne 0x52c06d
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x4d0], ebx
test ebx, ebx
jne 0x52c09c
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x32
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x4d4], ebx
test ebx, ebx
jne 0x52c0cb
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x33
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x4d8], ebx
test ebx, ebx
jne 0x52c0fa
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x34
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x4dc], ebx
test ebx, ebx
jne 0x52c129
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x35
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x4e0], ebx
test ebx, ebx
jne 0x52c158
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x36
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x4e4], ebx
test ebx, ebx
jne 0x52c187
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x37
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x4e8], ebx
test ebx, ebx
jne 0x52c1b6
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x38
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x4ec], ebx
test ebx, ebx
jne 0x52c1e5
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x39
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x4f4], ebx
test ebx, ebx
jne 0x52c214
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x3c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x4f8], ebx
test ebx, ebx
jne 0x52c243
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x64
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x4fc], ebx
test ebx, ebx
jne 0x52c272
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x65
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x500], ebx
test ebx, ebx
jne 0x52c2a1
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x66
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x504], ebx
test ebx, ebx
jne 0x52c2d0
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x67
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x508], ebx
test ebx, ebx
jne 0x52c2ff
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x68
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x50c], ebx
test ebx, ebx
jne 0x52c32e
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x69
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x510], ebx
test ebx, ebx
jne 0x52c35d
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x6a
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x514], ebx
test ebx, ebx
jne 0x52c38c
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x6b
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x518], ebx
test ebx, ebx
jne 0x52c3bb
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x6c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x51c], ebx
test ebx, ebx
jne 0x52c3ea
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x6d
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x520], ebx
test ebx, ebx
jne 0x52c419
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x6e
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x524], ebx
test ebx, ebx
jne 0x52c448
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x6f
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x528], ebx
test ebx, ebx
jne 0x52c477
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x70
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x52c], ebx
test ebx, ebx
jne 0x52c4a6
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x71
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x530], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x530], 0
jne 0x52c4db
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x72
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x534], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x534], 0
jne 0x52c510
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x73
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x538], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x538], 0
jne 0x52c545
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x74
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x53c], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x53c], 0
jne 0x52c57a
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x75
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x540], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x540], 0
jne 0x52c5af
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x76
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x544], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x544], 0
jne 0x52c5e4
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x77
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x548], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x548], 0
jne 0x52c619
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x78
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x54c], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x54c], 0
jne 0x52c64e
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x79
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x550], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x550], 0
jne 0x52c683
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x41
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x554], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x554], 0
jne 0x52c6b8
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x40
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x4f0], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x4f0], 0
jne 0x52c6ed
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x191
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x5f4], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x5f4], 0
jne 0x52c725
mov ebx, 0x18
call fcn.00404a5c
jmp 0x52d277
push 0x193
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x5f8], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x5f8], 0
jne 0x52c75d
mov ebx, 0x18
call fcn.00404a5c
jmp 0x52d277
push 0x194
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x5fc], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x5fc], 0
jne 0x52c795
mov ebx, 0x18
call fcn.00404a5c
jmp 0x52d277
push 0x195
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x600], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x600], 0
jne 0x52c7cd
mov ebx, 0x18
call fcn.00404a5c
jmp 0x52d277
push 0x196
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x604], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x604], 0
jne 0x52c805
mov ebx, 0x18
call fcn.00404a5c
jmp 0x52d277
push 0x197
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x608], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x608], 0
jne 0x52c83d
mov ebx, 0x18
call fcn.00404a5c
jmp 0x52d277
push 0x198
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x60c], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x60c], 0
jne 0x52c875
mov ebx, 0x18
call fcn.00404a5c
jmp 0x52d277
push 0x199
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x610], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x610], 0
jne 0x52c8ad
mov ebx, 0x18
call fcn.00404a5c
jmp 0x52d277
push 0x19a
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x614], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x614], 0
jne 0x52c8e5
mov ebx, 0x18
call fcn.00404a5c
jmp 0x52d277
push 0x19b
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x618], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x618], 0
jne 0x52c91d
mov ebx, 0x18
call fcn.00404a5c
jmp 0x52d277
push 0x19d
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x558], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x558], 0
jne 0x52c955
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x19e
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x55c], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x55c], 0
jne 0x52c98d
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x19f
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x560], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x560], 0
jne 0x52c9c5
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x1a0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x564], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x564], 0
jne 0x52c9fd
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
push 0x1a1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x62c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 8]
mov dword [edx + 0x568], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x568], 0
jne 0x52ca35
mov ebx, 1
call fcn.00404a5c
jmp 0x52d277
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52ca4a
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52d294
lea eax, [ebp - 4]
call fcn.00405b30
ret