Function at 0x5094e0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x5dd4a9
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
push ebx
push esi
push edi
mov eax, dword [0x62fda0]
xor eax, esp
push eax
lea eax, [esp + 0xf8]
mov dword fs:[0], eax
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 8]
mov edx, dword [edi + 4]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
mov eax, dword [edi + 0xc]
sub esp, 0x20
mov dword [esp + 0x4c], edx
fstp qword [esp + 0x18]
mov dword [esp + 0x48], ecx
fild dword [esp + 0x4c]
mov dword [esp + 0x44], eax
fstp qword [esp + 0x10]
fild dword [esp + 0x48]
fstp qword [esp + 8]
fild dword [esp + 0x44]
fstp qword [esp]
call fcn.00509410
mov esi, dword [ebp + 0x10]
mov ecx, eax
mov eax, dword [esi + 8]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 4]
fild dword [esp + 0x44]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x10]
fstp qword [esp + 0x18]
mov dword [esp + 0x4c], eax
fild dword [esp + 0x48]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x50], eax
fstp qword [esp + 0x10]
fild dword [esp + 0x4c]
fstp qword [esp + 8]
fild dword [esp + 0x50]
fstp qword [esp]
call fcn.00509410
mov ebx, dword [ebp + 8]
sub ecx, ebx
add ecx, 8
add esp, 0x20
and ecx, 0x80000007
jns 0x5095b5
dec ecx
or ecx, 0xfffffff8
inc ecx
sub eax, ebx
add eax, 8
and eax, 0x80000007
jns 0x5095c6
dec eax
or eax, 0xfffffff8
inc eax
cmp ecx, eax
je 0x5095ed
xor edx, edx
cmp ecx, eax
setg dl
lea edx, [edx + edx - 1]
mov eax, edx
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
and ecx, 0x80000001
jns 0x5095fa
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x509614
xor eax, eax
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0xc]
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
mov dword [esp + 0x28], eax
sub esp, 8
lea ecx, [esp + 0xa8]
fisub dword [esp + 0x30]
fstp qword [esp]
call fcn.0050e3c0
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
mov dword [esp + 0x28], ecx
sub esp, 8
lea ecx, [esp + 0x60]
fisub dword [esp + 0x30]
mov dword [esp + 0x108], 0
fstp qword [esp]
call fcn.0050e3c0
mov edx, dword [esi + 4]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
mov dword [esp + 0x28], eax
sub esp, 8
lea ecx, [esp + 0x84]
fisub dword [esp + 0x30]
mov byte [esp + 0x108], 1
fstp qword [esp]
call fcn.0050e3c0
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
mov dword [esp + 0x28], edx
sub esp, 8
mov bl, 2
fisub dword [esp + 0x30]
lea ecx, [esp + 0x3c]
mov byte [esp + 0x108], bl
fstp qword [esp]
call fcn.0050e3c0
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0xa8]
push edx
lea eax, [esp + 0x64]
push eax
mov byte [esp + 0x110], 3
call fcn.0050f4b0
add esp, 0x10
lea ecx, [esp + 0x34]
mov esi, eax
mov byte [esp + 0x100], bl
call fcn.0045c490
lea ecx, [esp + 0x7c]
mov byte [esp + 0x100], 1
call fcn.0045c490
lea ecx, [esp + 0x58]
mov byte [esp + 0x100], 0
call fcn.0045c490
lea ecx, [esp + 0xa0]
mov dword [esp + 0x100], 0xffffffff
call fcn.0045c490
mov eax, esi
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret