Function at 0x4df300
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 4
push 0
push 0
dec ecx
jne 0x4df309
xchg dword [ebp - 4], ecx
push ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4dfbc2
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xd], 0
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
cmp dword [edx + eax*4 + 0x2f8], 0
jne 0x4dfba3
cmp dword [ebp + 8], 1
jne 0x4df3d2
lea ecx, [ebp - 0x14]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov edx, dword [edx + eax*4 + 0x2f0]
mov eax, dword [ebp - 4]
call fcn.004e1134
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax*4 + 0x2f4]
call fcn.00404e24
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
cmp dword [edx + eax*4 + 0x2f4], 0
je 0x4df40c
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f4]
call fcn.004052ac
mov edx, eax
lea eax, [ebp - 0x18]
call fcn.00404fd0
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
call fcn.004d6e6c
mov edx, dword [ebp + 8]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 4]
mov dword [ecx + edx*4 + 0x2f8], eax
jmp 0x4df40c
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f0]
call fcn.004052ac
mov edx, eax
lea eax, [ebp - 0x1c]
call fcn.00404fd0
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
call fcn.004d6e6c
mov edx, dword [ebp + 8]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 4]
mov dword [ecx + edx*4 + 0x2f8], eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
cmp dword [edx + eax*4 + 0x2f8], 0
je 0x4dfb0a
mov eax, dword [ebp + 8]
cmp eax, 7
ja case.default.0x4df42f
jmp dword [eax*4 + 0x4df436]
push 0x4dfbd4
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193ac], eax
push 0x4dfbf0
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193b0], eax
push 0x4dfc08
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193b4], eax
push 0x4dfc20
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193b8], eax
push 0x4dfc30
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193bc], eax
cmp dword [0x7193ac], 0
je 0x4df523
cmp dword [0x7193b0], 0
je 0x4df523
cmp dword [0x7193b4], 0
je 0x4df523
cmp dword [0x7193b8], 0
je 0x4df523
cmp dword [0x7193bc], 0
jne 0x4df527
xor eax, eax
jmp 0x4df529
mov al, 1
mov byte [ebp - 0xd], al
cmp dword [ebp - 0xc], 0
je case.default.0x4df42f
cmp byte [ebp - 0xd], 0
jne case.default.0x4df42f
push 0x2b
push 0x4dfc48
push 0
mov ecx, 3
mov dl, 1
mov eax, dword [ebp - 0xc]
call fcn.00527250
jmp case.default.0x4df42f
push 0x4dfcbc
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193cc], eax
mov byte [ebp - 0xd], 1
jmp case.default.0x4df42f
push 0x4dfcc8
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193d0], eax
push 0x4dfcd8
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193dc], eax
push 0x4dfcf0
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193e4], eax
push 0x4dfd08
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193e8], eax
push 0x4dfd1c
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193fc], eax
push 0x4dfd30
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193f0], eax
push 0x4dfd4c
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193f4], eax
push 0x4dfd64
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193f8], eax
push 0x4dfd78
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x719400], eax
cmp dword [0x7193d0], 0
je 0x4df6f7
cmp dword [0x7193e8], 0
je 0x4df6f7
cmp dword [0x7193fc], 0
je 0x4df6f7
cmp dword [0x719400], 0
je 0x4df6f7
cmp dword [0x7193dc], 0
je 0x4df6f7
cmp dword [0x7193e4], 0
je 0x4df6f7
cmp dword [0x7193f0], 0
je 0x4df6f7
cmp dword [0x7193f4], 0
je 0x4df6f7
cmp dword [0x7193f8], 0
jne 0x4df6fb
xor eax, eax
jmp 0x4df6fd
mov al, 1
mov byte [ebp - 0xd], al
jmp case.default.0x4df42f
push 0x4dfd88
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193e0], eax
cmp dword [0x7193e0], 0
setne byte [ebp - 0xd]
jmp case.default.0x4df42f
push 0x4dfda0
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193d4], eax
push 0x4dfdac
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193d8], eax
cmp dword [0x7193d4], 0
je 0x4df787
cmp dword [0x7193d8], 0
jne 0x4df78b
xor eax, eax
jmp 0x4df78d
mov al, 1
mov byte [ebp - 0xd], al
jmp case.default.0x4df42f
push 0x4dfdbc
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193c0], eax
cmp dword [0x7193c0], 0
setne byte [ebp - 0xd]
jmp case.default.0x4df42f
push 0x4dfdd0
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x71940c], eax
push 0x4dfde0
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x719434], eax
push 0x4dfdec
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [fcn.00719438], eax
push 0x4dfe00
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x719410], eax
push 0x4dfe10
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x719414], eax
push 0x4dfe20
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193ec], eax
push 0x4dfe2c
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x719418], eax
push 0x4dfe3c
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x71941c], eax
push 0x4dfe54
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x719424], eax
push 0x4dfe68
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x719428], eax
push 0x4dfe74
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [fcn.0071942c], eax
push 0x4dfe84
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193a4], eax
push 0x4dfe94
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x719420], eax
push 0x4dfea0
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193a8], eax
push 0x4dfeb0
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [fcn.00719430], eax
push 0x4dfebc
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x719404], eax
push 0x4dfec4
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193c8], eax
push 0x4dfedc
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [fcn.00719408], eax
cmp dword [0x71940c], 0
je 0x4dfab3
cmp dword [0x719410], 0
je 0x4dfab3
cmp dword [0x719414], 0
je 0x4dfab3
cmp dword [0x719418], 0
je 0x4dfab3
cmp dword [0x71941c], 0
je 0x4dfab3
cmp dword [0x7193ec], 0
je 0x4dfab3
cmp dword [0x719424], 0
je 0x4dfab3
cmp dword [0x719428], 0
je 0x4dfab3
cmp dword [fcn.00719430], 0
je 0x4dfab3
cmp dword [0x719404], 0
je 0x4dfab3
cmp dword [0x719434], 0
je 0x4dfab3
cmp dword [fcn.0071942c], 0
je 0x4dfab3
cmp dword [fcn.00719438], 0
je 0x4dfab3
cmp dword [0x7193a4], 0
je 0x4dfab3
cmp dword [0x7193a8], 0
je 0x4dfab3
cmp dword [0x719420], 0
je 0x4dfab3
cmp dword [0x7193c8], 0
je 0x4dfab3
cmp dword [fcn.00719408], 0
jne 0x4dfab7
xor eax, eax
jmp 0x4dfab9
mov al, 1
mov byte [ebp - 0xd], al
jmp case.default.0x4df42f
push 0x4dfdbc
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x2f8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x7193c4], eax
cmp dword [0x7193c4], 0
setne byte [ebp - 0xd]
cmp byte [ebp - 0xd], 0
jne 0x4dfba7
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
xor ecx, ecx
mov dword [edx + eax*4 + 0x2f8], ecx
jmp 0x4dfba7
cmp dword [ebp - 0xc], 0
je 0x4dfba7
mov eax, dword [ebp + 8]
sub eax, 2
je 0x4dfb21
dec eax
je 0x4dfb3b
jmp 0x4dfb55
push 0x2b
push 0x4dfef8
push 0
mov ecx, 3
mov dl, 1
mov eax, dword [ebp - 0xc]
call fcn.00527250
jmp 0x4dfba7
push 0x2b
push 0x4dff88
push 0
mov ecx, 3
mov dl, 1
mov eax, dword [ebp - 0xc]
call fcn.00527250
jmp 0x4dfba7
push 0x2b
lea ecx, [ebp - 0x24]
mov edx, 0x2b
mov eax, dword [ebp - 0xc]
call fcn.004db3c4
push dword [ebp - 0x24]
push 0x4e001c
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
push dword [edx + eax*4 + 0x2f0]
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.00405174
mov eax, dword [ebp - 0x20]
push eax
push 0
mov ecx, 3
mov dl, 1
mov eax, dword [ebp - 0xc]
call fcn.00527250
jmp 0x4dfba7
mov byte [ebp - 0xd], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4dfbc9
lea eax, [ebp - 0x24]
mov edx, 5
call fcn.00404df4
ret