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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x5e4de9
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
push ebx
push esi
push edi
mov eax, dword [0x638190]
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.0050dd00
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.0050dd00
mov ebx, dword [ebp + 8]
sub ecx, ebx
add ecx, 8
add esp, 0x20
and ecx, 0x80000007
jns 0x50dea5
dec ecx
or ecx, 0xfffffff8
inc ecx
sub eax, ebx
add eax, 8
and eax, 0x80000007
jns 0x50deb6
dec eax
or eax, 0xfffffff8
inc eax
cmp ecx, eax
je 0x50dedd
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 0x50deea
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x50df04
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.00513c30
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.00513c30
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.00513c30
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.00513c30
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.00514de0
add esp, 0x10
lea ecx, [esp + 0x34]
mov esi, eax
mov byte [esp + 0x100], bl
call fcn.00440ab0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x100], 1
call fcn.00440ab0
lea ecx, [esp + 0x58]
mov byte [esp + 0x100], 0
call fcn.00440ab0
lea ecx, [esp + 0xa0]
mov dword [esp + 0x100], 0xffffffff
call fcn.00440ab0
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