Function at 0x4e1564
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov ebx, eax
mov esi, dword [0x5d2c7c]
xor eax, eax
push ebp
push 0x4e1e13
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5d2f10]
cmp dword [eax], 0x20
jae 0x4e15a2
mov eax, 0x4e1e2c
call fcn.0045934c
jmp 0x4e1de5
push 0x4e1e48
mov eax, dword [0x5d2f10]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GetProcAddress
mov edi, eax
mov eax, dword [0x5d3170]
mov dword [eax], edi
mov eax, dword [0x5d3170]
test edi, edi
je 0x4e15cf
mov eax, dword [0x5d3170]
mov eax, dword [eax]
call eax
push 0x4e1e58
mov eax, dword [0x5d2f10]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GetProcAddress
mov edi, eax
mov dword [esi], edi
test edi, edi
je 0x4e1890
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2cc]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1e6c
mov eax, dword [esi]
call eax
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2d0]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1e84
mov eax, dword [esi]
call eax
push 1
push 0
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2d4]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x1c]
call fcn.00408fb8
mov edx, dword [ebp - 0x1c]
mov ecx, 0x4e1ea4
mov eax, ebx
call fcn.004ddcc0
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1eac
mov eax, dword [esi]
call eax
push 1
push 0
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2d8]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x1c]
call fcn.00408fb8
mov edx, dword [ebp - 0x1c]
mov ecx, 0x4e1ea4
mov eax, ebx
call fcn.004ddcc0
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1ecc
mov eax, dword [esi]
call eax
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2f4]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1eec
mov eax, dword [esi]
call eax
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2dc]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1f0c
mov eax, dword [esi]
call eax
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2e0]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1f28
mov eax, dword [esi]
call eax
push 1
push 0
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2e4]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x1c]
call fcn.00408fb8
mov edx, dword [ebp - 0x1c]
mov ecx, 0x4e1ea4
mov eax, ebx
call fcn.004ddcc0
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1f48
mov eax, dword [esi]
call eax
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x530]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1f64
mov eax, dword [esi]
call eax
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2ec]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1f84
mov eax, dword [esi]
call eax
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2f0]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1fa0
mov eax, dword [esi]
call eax
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x3d4]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1fbc
mov eax, dword [esi]
call eax
mov eax, dword [ebx + 0x42c]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov eax, dword [ebx + 0x434]
mov edx, dword [eax]
call dword [edx + 0xd0]
push 0x4e1fc8
mov eax, dword [0x5d2f10]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GetProcAddress
mov edi, eax
mov eax, dword [0x5d2bfc]
mov dword [eax], edi
mov eax, dword [0x5d2bfc]
test edi, edi
je 0x4e1de5
mov eax, dword [ebx + 0x498]
mov edx, dword [eax]
call dword [edx + 0xb8]
cmp al, 1
jne 0x4e18f2
mov dword [ebx + 0x5bc], 1
jmp 0x4e18fa
xor eax, eax
mov dword [ebx + 0x5bc], eax
mov eax, dword [ebx + 0x5bc]
push eax
push 2
mov eax, dword [0x5d2bfc]
mov eax, dword [eax]
call eax
cmp al, 1
jne 0x4e1dd5
push 0x4e1fd0
mov eax, dword [0x5d2f10]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GetProcAddress
mov edi, eax
mov eax, dword [0x5d3034]
mov dword [eax], edi
mov eax, dword [0x5d3034]
test edi, edi
je 0x4e19f4
push 1
lea eax, [ebp - 0x10]
push eax
mov eax, dword [0x5d3034]
mov eax, dword [eax]
call eax
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 0x14]
call fcn.00403f3c
mov edx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x42c]
call fcn.00434264
mov eax, dword [ebx + 0x5b4]
mov edx, dword [eax]
call dword [edx + 0xb8]
cmp al, 1
jne 0x4e1998
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x42c]
call fcn.00434234
mov ecx, dword [ebp - 0x18]
mov eax, dword [0x5d298c]
mov eax, dword [eax]
mov edx, 0x4e1fe8
call fcn.005c8cdc
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, dword [0x5d3034]
mov eax, dword [eax]
call eax
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 0x14]
call fcn.00403f3c
mov edx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x434]
call fcn.00434264
mov eax, dword [ebx + 0x5b4]
mov edx, dword [eax]
call dword [edx + 0xb8]
cmp al, 1
jne 0x4e19f4
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x434]
call fcn.00434234
mov ecx, dword [ebp - 0x18]
mov eax, dword [0x5d298c]
mov eax, dword [eax]
mov edx, 0x4e2008
call fcn.005c8cdc
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x42c]
call fcn.00434234
mov edx, dword [ebp - 0x18]
mov eax, 0x4e2028
call fcn.0040425c
test eax, eax
jge 0x4e1a36
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x42c]
call fcn.00434234
mov edx, dword [ebp - 0x18]
mov eax, 0x4e2040
call fcn.0040425c
test eax, eax
jl 0x4e1de5
push 0x4e1e58
mov eax, dword [0x5d2f10]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GetProcAddress
mov edi, eax
mov dword [esi], edi
test edi, edi
je 0x4e1b86
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2cc]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1e6c
mov eax, dword [esi]
call eax
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2dc]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1f0c
mov eax, dword [esi]
call eax
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x530]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1f64
mov eax, dword [esi]
call eax
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2ec]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1f84
mov eax, dword [esi]
call eax
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x2f0]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1fa0
mov eax, dword [esi]
call eax
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebx + 0x3d0]
call fcn.00434234
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00408fb8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004044bc
mov eax, dword [ebp - 0x10]
push eax
push 0x4e1fbc
mov eax, dword [esi]
call eax
push 0x4e1fc8
mov eax, dword [0x5d2f10]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GetProcAddress
mov esi, eax
mov eax, dword [0x5d2bfc]
mov dword [eax], esi
mov eax, dword [0x5d2bfc]
test esi, esi
je 0x4e1c08
mov eax, dword [ebx + 0x498]
mov edx, dword [eax]
call dword [edx + 0xb8]
cmp al, 1
jne 0x4e1bc8
mov dword [ebx + 0x5bc], 1
jmp 0x4e1bd0
xor eax, eax
mov dword [ebx + 0x5bc], eax
mov eax, dword [ebx + 0x5bc]
push eax
push 1
mov eax, dword [0x5d2bfc]
mov eax, dword [eax]
call eax
cmp al, 1
jne 0x4e1c08
push 0x4e1fd0
mov eax, dword [0x5d2f10]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GetProcAddress
mov esi, eax
mov eax, dword [0x5d3034]
mov dword [eax], esi
mov eax, dword [0x5d3034]
test esi, esi
push 0x4e2050
mov eax, dword [0x5d2f10]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GetProcAddress
mov esi, eax
mov eax, dword [0x5d2fcc]
mov dword [eax], esi
mov eax, dword [0x5d2fcc]
test esi, esi
je 0x4e1de5
mov eax, dword [ebx + 0x438]
mov eax, dword [eax + 0x22c]
dec eax
test eax, eax
jl 0x4e1c7e
inc eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], 0
mov eax, dword [ebx + 0x438]
mov esi, dword [eax + 0x1fc]
dec esi
test esi, esi
jl 0x4e1c76
inc esi
xor edi, edi
push 0
mov ecx, dword [ebp - 4]
mov edx, edi
mov eax, dword [ebx + 0x438]
call fcn.0047c2bc
inc edi
dec esi
jne 0x4e1c60
inc dword [ebp - 4]
dec dword [ebp - 0xc]
jne 0x4e1c4c
mov edx, 2
mov eax, dword [ebx + 0x438]
call fcn.0047a028
mov edx, 1
mov eax, dword [ebx + 0x438]
call fcn.00479ca0
push 1
push 0
push 0
push 1
mov eax, dword [0x5d2fcc]
mov eax, dword [eax]
call eax
mov edx, eax
lea eax, [ebp - 0x14]
call fcn.00403edc
mov eax, dword [ebp - 0x14]
call fcn.0040919c
mov esi, eax
lea edx, [ebp - 0x14]
mov eax, esi
dec eax
call fcn.00409138
mov edx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x534]
call fcn.00434264
push 1
push 0
push 0
push 2
mov eax, dword [0x5d2fcc]
mov eax, dword [eax]
call eax
mov edx, eax
lea eax, [ebp - 0x14]
call fcn.00403edc
mov eax, dword [ebp - 0x14]
call fcn.0040919c
mov dword [ebp - 8], eax
test esi, esi
jle 0x4e1d85
cmp dword [ebp - 8], 0
jle 0x4e1d85
mov edx, esi
mov eax, dword [ebx + 0x438]
call fcn.0047a028
mov edx, dword [ebp - 8]
mov eax, dword [ebx + 0x438]
call fcn.00479ca0
dec esi
test esi, esi
jl 0x4e1d7e
inc esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 4], 0
mov esi, dword [ebp - 8]
dec esi
test esi, esi
jl 0x4e1d76
inc esi
xor edi, edi
push 1
push edi
mov eax, dword [ebp - 4]
push eax
push 3
mov eax, dword [0x5d2fcc]
mov eax, dword [eax]
call eax
mov edx, eax
lea eax, [ebp - 0x14]
call fcn.00403edc
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 4]
mov edx, edi
mov eax, dword [ebx + 0x438]
call fcn.0047c2bc
inc edi
dec esi
jne 0x4e1d42
inc dword [ebp - 4]
dec dword [ebp - 0xc]
jne 0x4e1d37
mov eax, ebx
call fcn.004e09b8
lea eax, [ebp - 0x14]
push eax
mov ecx, 1
mov edx, 3
mov eax, dword [ebx + 0x438]
call fcn.0047c244
mov edx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x364]
call fcn.00434264
lea eax, [ebp - 0x14]
push eax
mov ecx, 1
mov edx, 4
mov eax, dword [ebx + 0x438]
call fcn.0047c244
mov edx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x360]
call fcn.00434264
jmp 0x4e1de5
mov edx, 0x4e2068
mov eax, dword [ebx + 0x4f4]
call fcn.00434264
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4e1e1a
lea eax, [ebp - 0x1c]
call fcn.00403cf8
lea eax, [ebp - 0x18]
call fcn.00403cf8
lea eax, [ebp - 0x14]
call fcn.00403cf8
lea eax, [ebp - 0x10]
call fcn.004043b4
ret