Function at 0x404de0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x42ec
call fcn.00412cb0
mov eax, dword [0x42d0f0]
xor eax, esp
mov dword [esp + 0x42e8], eax
push ebx
mov ebx, dword [esp + 0x42fc]
push ebp
mov ebp, dword [esp + 0x42fc]
xor eax, eax
push esi
mov esi, dword [esp + 0x42fc]
push edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x24], ebx
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], eax
cmp dword [ebp + 0x48], eax
je 0x404e3c
mov eax, dword [ebp + 0x48]
mov edi, dword [eax + 0x10]
push eax
call fcn.00412c14
add esp, 4
mov dword [ebp + 0x48], edi
test edi, edi
jne 0x404e26
mov eax, dword [ebp + 0x30]
or eax, dword [ebp + 0x34]
jne 0x404e8e
mov ecx, dword [ebp + 0x40]
or ecx, dword [ebp + 0x44]
jne 0x404e8e
mov edx, dword [ebp + 0x38]
or edx, dword [ebp + 0x3c]
jne 0x404e8e
lea eax, [esp + 0x34]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
je 0x404e8e
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0x40]
mov dword [ebp + 0x34], ecx
mov ecx, dword [esp + 0x44]
mov dword [ebp + 0x40], eax
mov eax, dword [esp + 0x48]
mov dword [ebp + 0x44], ecx
mov ecx, dword [esp + 0x4c]
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x3c], ecx
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi + 0x238]
mov eax, dword [edx + 0x28]
push ecx
mov ecx, dword [esi + 0x22c]
push eax
push 0
push 4
call ecx
add esp, 0x10
xor edi, edi
xor ebx, ebx
mov esi, 0x3e8
mov dword [esp + 0x18], ebx
test esi, esi
jle 0x405071
push 0
lea edx, [esp + 0x34]
push edx
mov edx, dword [esp + 0x2c]
push 0x3e90
lea eax, [esp + 0x74]
push eax
push 8
lea ecx, [esp + 0x3c]
push ecx
push 0x90073
dec esi
push edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], ebx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x404f03
mov dword [esp + 0x14], 0
jmp 0x404f1c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x14], eax
test eax, eax
je 0x404f1c
cmp eax, 0xea
jne 0x405021
cmp dword [esp + 0x68], 0
mov dword [esp + 0x1c], 0
jbe 0x405013
lea esi, [esp + 0x78]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x404f6c
mov edx, dword [esi + 4]
push edx
mov edx, dword [esi]
push edx
push ebx
push edi
push ecx
push eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x238]
mov edx, dword [ecx + 0x2c]
mov eax, dword [eax + 0x22c]
push edx
push 0
push 4
call eax
add esp, 0x24
jmp 0x404f95
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [eax + 0x238]
mov eax, dword [eax + 0x22c]
push edx
mov edx, dword [ecx + 0xb8]
push ebx
push edi
push edx
push 0
push 4
call eax
add esp, 0x1c
mov ecx, dword [esi + 8]
and ecx, dword [esi + 0xc]
cmp ecx, 0xffffffff
je 0x404faf
mov edx, dword [esi]
mov eax, dword [esi + 4]
sub edx, edi
sbb eax, ebx
add dword [ebp + 0x28], edx
adc dword [ebp + 0x2c], eax
push 0x18
call fcn.00412a5f
add esp, 4
test eax, eax
je 0x404ff4
mov ecx, dword [esi + 8]
mov dword [eax], ecx
mov edx, dword [esi + 0xc]
mov dword [eax + 4], edx
mov ecx, dword [esi]
mov dword [eax + 8], ecx
mov edx, dword [esi + 4]
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], 0
cmp dword [ebp + 0x48], 0
jne 0x404fe5
mov dword [ebp + 0x48], eax
jmp 0x404ff0
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x404ff0
mov dword [ecx + 0x10], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov edi, dword [esi]
mov ebx, dword [esi + 4]
inc eax
add esi, 0x10
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x68]
jb 0x404f33
mov esi, dword [esp + 0x20]
cmp dword [esp + 0x14], 0xea
je 0x404eb8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x40508d
cmp eax, 0x26
je 0x40508d
push 0x200
lea edx, [esp + 0x3efc]
push edx
push eax
call sym.JkDefrag.exe_SystemErrorStr
mov ecx, dword [ebp + 0x10]
lea eax, [esp + 0x3f04]
push eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x238]
push ecx
mov ecx, dword [edx + 0xac]
mov edx, dword [eax + 0x22c]
push ecx
push 0
push 3
call edx
add esp, 0x20
xor eax, eax
jmp 0x405092
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x22c]
push str.FSCTL_GET_RETRIEVAL_POINTERS_error:_Infinite_loop
push 0
push 2
call ecx
add esp, 0xc
xor eax, eax
jmp 0x405092
mov eax, 1
mov ecx, dword [esp + 0x42f8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00411002
add esp, 0x42ec
ret