Function at 0x4a86c0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x519537
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x17c
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov eax, dword [esi + 8]
test eax, eax
je 0x4a89c5
cmp eax, 1
jne 0x4a872d
mov eax, dword [ebp + 0x14]
mov edx, dword [esi + 4]
mov ecx, dword [ebp + 0x10]
push 0
push 0x4a6320
push eax
mov eax, dword [edx]
push ecx
mov ecx, dword [ebp + 8]
push eax
push ecx
call fcn.004a64b0
add esp, 0x18
mov ecx, dword [esp + 0x188]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
lea ecx, [esp + 0xc]
push edx
call fcn.0047dc60
mov al, byte [ebp + 0x18]
mov dword [esp + 0x190], 0
test al, al
jne 0x4a8766
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0xc]
push eax
push esi
push ecx
call fcn.004d9370
add esp, 0xc
test al, al
je 0x4a89b1
lea ecx, [esp + 0x30]
call fcn.004b7e80
lea ecx, [esp + 0x30]
mov byte [esp + 0x190], 1
call fcn.004b7ed0
lea ecx, [esp + 0x70]
call fcn.004d5b10
mov eax, dword [esi + 8]
xor edi, edi
test eax, eax
mov byte [esp + 0x190], 2
jle 0x4a87c4
mov eax, dword [esi + 4]
lea edx, [esp + 0x30]
push edx
push 0
mov ecx, dword [eax + edi*4]
call fcn.0048fc50
mov ecx, dword [esi + 4]
mov edx, dword [ecx + edi*4]
lea ecx, [esp + 0x70]
push edx
call fcn.004d5f20
mov eax, dword [esi + 8]
inc edi
cmp edi, eax
jl 0x4a879a
lea ecx, [esp + 0xf8]
call fcn.004d22b0
mov bl, 3
lea ecx, [esp + 0xb8]
mov byte [esp + 0x190], bl
call fcn.004b7e80
mov edi, dword [ebp + 0x14]
push 0xffffffffffffffff
push 0
mov ecx, edi
mov byte [esp + 0x198], 4
call fcn.004a6070
lea eax, [esp + 0xb8]
lea ecx, [esp + 0x70]
push eax
mov eax, dword [ebp + 0x10]
lea edx, [esp + 0x10]
push ecx
push edx
push eax
push esi
call fcn.0048ef50
push ecx
fstp qword [esp]
call fcn.004d8ac0
add esp, 0x18
test al, al
je 0x4a8968
sub esp, 0x20
lea edx, [esp + 0x2c]
mov ecx, esp
mov dword [esp + 0x4c], esp
push edx
call fcn.0047dc60
lea eax, [esp + 0x50]
lea ecx, [esp + 0xd8]
push eax
push ecx
lea ecx, [esp + 0x120]
call fcn.004d27c0
mov al, byte [ebp + 0x18]
test al, al
je 0x4a88b3
mov eax, dword [esi + 4]
push 0x4d4ab0
push 0
push 0x4a64a0
mov ecx, dword [eax]
push 0x40340000
push 0
push 0x3fb99999
lea edx, [esp + 0x88]
push 0x9999999a
push edx
push edi
call fcn.0040a240
push eax
lea ecx, [esp + 0x120]
call fcn.004d5050
test al, al
mov byte [esp + 0x190], bl
lea ecx, [esp + 0xb8]
je 0x4a8976
jmp 0x4a88ff
mov edx, dword [esi + 4]
push 0
push 0
push 0x4a6320
push 0x40340000
push 0
push 0x3fb99999
lea ecx, [esp + 0x88]
push 0x9999999a
push ecx
mov ecx, dword [edx]
push edi
call fcn.0040a240
push eax
lea ecx, [esp + 0x120]
call fcn.004d5050
test al, al
je 0x4a8968
mov byte [esp + 0x190], bl
lea ecx, [esp + 0xb8]
call fcn.004b7420
lea ecx, [esp + 0xf8]
mov byte [esp + 0x190], 2
call fcn.004d2340
lea ecx, [esp + 0x70]
mov byte [esp + 0x190], 1
call fcn.004d5b70
lea ecx, [esp + 0x30]
mov byte [esp + 0x190], 0
call fcn.004b7420
lea ecx, [esp + 0xc]
mov dword [esp + 0x190], 0xffffffff
call fcn.00507a00
mov eax, 1
mov ecx, dword [esp + 0x188]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [esp + 0x190], bl
lea ecx, [esp + 0xb8]
call fcn.004b7420
lea ecx, [esp + 0xf8]
mov byte [esp + 0x190], 2
call fcn.004d2340
lea ecx, [esp + 0x70]
mov byte [esp + 0x190], 1
call fcn.004d5b70
lea ecx, [esp + 0x30]
mov byte [esp + 0x190], 0
call fcn.004b7420
lea ecx, [esp + 0xc]
mov dword [esp + 0x190], 0xffffffff
call fcn.00507a00
mov ecx, dword [esp + 0x188]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret