Function at 0x503770
Capabilities:
Acquire debug privileges
Link many functions at runtime

Disassembly:
mov eax, 0x184c
call fcn.005e00d0
mov eax, dword [0x6aae14]
xor eax, esp
mov dword [esp + 0x1848], eax
mov eax, dword [esp + 0x185c]
mov ecx, dword [esp + 0x1864]
push ebx
push ebp
mov ebp, dword [esp + 0x1860]
push esi
mov esi, dword [esp + 0x1860]
push edi
mov edi, dword [esp + 0x1860]
xor ebx, ebx
push 0x207
lea edx, [esp + 0x1255]
push ebx
push edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x125c], bl
call fcn.005dfd60
push 0x207
lea eax, [esp + 0x1059]
push ebx
push eax
mov byte [esp + 0x1060], bl
call fcn.005dfd60
add esp, 0x18
mov dword [esp + 0x10], ebx
cmp esi, ebx
je 0x50380a
mov dword [esi], ebx
cmp ebp, ebx
je 0x503811
mov byte [ebp], bl
cmp edi, ebx
je 0x503d17
cmp byte [edi], bl
je 0x503d17
push 0x5c
push edi
call fcn.005e0940
add esp, 8
test eax, eax
je 0x503838
mov dword [esp + 0x20], 1
mov eax, dword [0x74bce8]
cmp eax, ebx
jne 0x503858
push 0x643dac
call fcn.004f4be0
mov dword [0x74bce8], eax
cmp eax, ebx
je 0x503d17
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp dword [0x74bce4], ebx
jne 0x503878
push 0x643d6c
push eax
call esi
mov dword [0x74bce4], eax
mov eax, dword [0x74bce8]
cmp dword [0x74bce0], ebx
jne 0x503892
push 0x643d58
push eax
call esi
mov dword [0x74bce0], eax
mov eax, dword [0x74bce8]
cmp dword [0x74bcdc], ebx
jne 0x5038ac
push 0x643d2c
push eax
call esi
mov dword [0x74bcdc], eax
mov eax, dword [0x74bce8]
cmp dword [0x74bcd8], ebx
jne 0x5038c6
push 0x643d40
push eax
call esi
mov dword [0x74bcd8], eax
mov eax, dword [0x74bce8]
cmp dword [0x74bcd4], ebx
jne 0x5038e0
push 0x643d10
push eax
call esi
mov dword [0x74bcd4], eax
mov eax, dword [0x74bce8]
cmp dword [0x74bce4], ebx
je 0x503cf2
cmp dword [0x74bcdc], ebx
je 0x503cf2
cmp dword [0x74bce0], ebx
je 0x503cf2
cmp dword [0x74bcd8], ebx
je 0x503cf2
push ebx
push 0x643ce8
call fcn.004e21c0
add esp, 8
lea ecx, [esp + 0x40]
push ecx
push 0x1000
lea edx, [esp + 0x50]
push edx
call dword [0x74bce4]
mov esi, dword [esp + 0x40]
shr esi, 2
cmp esi, ebx
mov dword [esp + 0x3c], esi
jle 0x503cb3
jmp 0x503950
mov eax, dword [esp + 0x10]
lea eax, [esp + eax*4 + 0x48]
mov dword [esp + 0x28], eax
mov eax, dword [eax]
push eax
push ebx
push 0x20410
mov byte [esp + 0x1054], bl
mov byte [esp + 0x125c], bl
call fcn.004e45c0
mov ebp, eax
add esp, 0xc
mov dword [esp + 0x14], ebp
cmp ebp, ebx
je 0x503ca2
lea ecx, [esp + 0x44]
push ecx
push 4
lea edx, [esp + 0x40]
push edx
push ebp
call dword [0x74bce0]
test eax, eax
je 0x503a6c
mov ecx, dword [esp + 0x38]
push 0x208
lea eax, [esp + 0x1254]
push eax
push ecx
push ebp
call dword [0x74bcdc]
mov eax, dword [esp + 0x38]
push 0x208
lea edx, [esp + 0x104c]
push edx
push eax
push ebp
call dword [0x74bcd8]
cmp byte [esp + 0x1048], bl
je 0x503b30
push ebx
push 1
lea ecx, [esp + 0x1050]
push ecx
call fcn.005127a0
lea edx, [esp + 0x1048]
push 0x7e
push edx
call fcn.005e0940
add esp, 8
test eax, eax
je 0x503b30
push 0x3ff
lea eax, [esp + 0x145d]
push ebx
push eax
call fcn.005dfd60
add esp, 0xc
push 0x400
lea ecx, [esp + 0x145c]
push ecx
lea edx, [esp + 0x1050]
push edx
mov byte [esp + 0x1464], bl
call dword [0x6900e4]
dec eax
cmp eax, 0x102
ja 0x503b30
lea eax, [esp + 0x1458]
push eax
lea ecx, [esp + 0x104c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x503b30
mov eax, dword [0x74bcd4]
cmp eax, ebx
je 0x503b30
push 0x208
lea edx, [esp + 0x104c]
push edx
push ebp
call eax
cmp byte [esp + 0x1048], bl
je 0x503b30
lea eax, [esp + 0x1048]
push eax
call fcn.00502ab0
lea ecx, [esp + 0x1048]
push 0x7e
push ecx
call fcn.005e0940
add esp, 8
test eax, eax
je 0x503b0f
push 0x3ff
lea edx, [esp + 0x145d]
push ebx
push edx
call fcn.005dfd60
add esp, 0xc
push 0x400
lea eax, [esp + 0x145c]
push eax
lea ecx, [esp + 0x1050]
push ecx
mov byte [esp + 0x1464], bl
call dword [0x6900e4]
dec eax
cmp eax, 0x206
ja 0x503b0f
lea edx, [esp + 0x1458]
push edx
lea eax, [esp + 0x104c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [esp + 0x1048], bl
je 0x503b30
lea ecx, [esp + 0x1250]
push ecx
lea edx, [esp + 0x104c]
push edx
call fcn.004e1490
add esp, 8
cmp dword [esp + 0x20], ebx
jne 0x503bbc
cmp byte [esp + 0x1250], bl
je 0x503c98
cmp dword [esp + 0x1870], ebx
jne 0x503ba0
lea eax, [esp + 0x1250]
push edi
push eax
call fcn.004dd620
add esp, 8
cmp eax, ebx
jne 0x503c98
mov edi, dword [esp + 0x34]
cmp edi, ebx
je 0x503cb7
push 0x8000
call fcn.005e20e4
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x503cb7
mov edx, dword [esp + 0x28]
push 0x8000
mov byte [esi], bl
mov eax, dword [edx]
push esi
push eax
jmp 0x503c61
push ebx
lea ecx, [esp + 0x1254]
push edi
push ecx
call fcn.004f5880
add esp, 0xc
cmp eax, 0xffffffff
jne 0x503b69
jmp 0x503c98
cmp byte [esp + 0x1048], bl
je 0x503c98
push 0x207
lea ecx, [esp + 0x145d]
push ebx
push ecx
mov byte [esp + 0x1464], bl
call fcn.005dfd60
add esp, 0xc
lea edx, [esp + 0x1048]
push edx
lea eax, [esp + 0x145c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0x1458]
push ecx
call fcn.004ebde0
push ebx
lea edx, [esp + 0x1050]
push edi
push edx
call fcn.004f5880
add esp, 0x10
cmp eax, 0xffffffff
jne 0x503c37
push ebx
lea eax, [esp + 0x145c]
push edi
push eax
call fcn.004f5880
add esp, 0xc
cmp eax, 0xffffffff
je 0x503c98
mov edi, dword [esp + 0x34]
cmp edi, ebx
je 0x503cb7
push 0x8000
call fcn.005e20e4
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x503cb7
mov ecx, dword [esp + 0x28]
push 0x8000
mov byte [esi], bl
mov edx, dword [ecx]
push esi
push edx
call fcn.005035a0
cmp byte [esi], bl
je 0x503c7e
push ebx
push edi
push esi
call fcn.004f5880
add esp, 0xc
cmp eax, 0xffffffff
je 0x503c7e
xor edi, edi
jmp 0x503c83
mov edi, 1
push esi
call fcn.005e0865
add esp, 4
cmp edi, ebx
je 0x503cb7
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x3c]
lea eax, [esp + 0x14]
push eax
call fcn.004dca10
mov eax, dword [esp + 0x10]
inc eax
cmp eax, esi
mov dword [esp + 0x10], eax
jl 0x503950
mov eax, ebx
jmp 0x503d19
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x503cc9
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + ecx*4 + 0x48]
mov dword [eax], edx
mov ecx, dword [esp + 0x2c]
cmp ecx, ebx
je 0x503ce1
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x503ce1
push eax
push ecx
push ebp
call fcn.004e47c0
lea eax, [esp + 0x14]
push eax
call fcn.004dca10
mov eax, 1
jmp 0x503d19
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x74bce8], ebx
mov dword [0x74bce4], ebx
mov dword [0x74bcdc], ebx
mov dword [0x74bce0], ebx
mov dword [0x74bcd8], ebx
xor eax, eax
mov ecx, dword [esp + 0x1858]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005dfbbe
add esp, 0x184c
ret 0x18