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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [sym.imp.PAL.dll_PalMemoryFree]
push esi
push edi
mov edi, 0x4d3638
mov dword [ebp - 0x14], 0xff
mov dword [ebp - 8], edi
nop
cmp dword [edi - 0x28], 0
je 0x46034b
lea esi, [edi + 4]
mov eax, 8
mov dword [ebp - 4], esi
mov dword [ebp - 0xc], eax
mov edi, dword [esi]
test edi, edi
je 0x45fff1
mov eax, dword [edi + 0x28]
test eax, eax
je 0x45ffe2
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x45ffc3
push eax
push edi
call ecx
add esp, 8
mov esi, dword [edi + 0x28]
mov eax, dword [esi + 0xc]
mov dword [edi + 0x28], eax
push dword [esi]
call ebx
push esi
call ebx
mov eax, dword [edi + 0x28]
add esp, 8
test eax, eax
jne 0x45ffb5
mov esi, dword [ebp - 4]
mov edi, dword [esi]
push dword [edi + 0x10]
call ebx
push dword [esi]
call ebx
mov eax, dword [ebp - 0xc]
add esp, 8
add esi, 4
sub eax, 1
mov dword [ebp - 4], esi
mov dword [ebp - 0xc], eax
jne 0x45ffa8
mov edi, dword [ebp - 8]
mov eax, dword [edi]
test eax, eax
je 0x460030
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x460019
push eax
lea eax, [edi - 0x28]
push eax
call ecx
add esp, 8
mov esi, dword [edi]
mov eax, dword [esi + 0xc]
mov dword [edi], eax
push dword [esi]
call ebx
push esi
call ebx
mov eax, dword [edi]
add esp, 8
test eax, eax
jne 0x460008
push dword [edi - 0x18]
call ebx
mov esi, dword [edi - 0x1c]
xor eax, eax
add esp, 4
mov dword [esi + 8], 0
mov dword [esi + 0xa8], 0
mov dword [esi + 0xac], 0
mov dword [esi + 0xb0], 0
mov dword [esi + 0xc8], 0
mov dword [esi + 0xcc], 0
mov dword [esi + 0xd0], 0
mov dword [esi + 0xe8], 0
mov word [esi + 0xf4], ax
mov dword [esi + 0x108], eax
mov dword [esi + 0x10c], eax
mov dword [esi + 0x110], eax
mov dword [esi + 0x120], eax
mov dword [esi + 0x124], eax
mov dword [esi + 0x128], eax
cmp dword [edi - 0x24], eax
jne 0x460312
movss xmm0, dword [esi + 0x1a0]
addss xmm0, dword [esi + 0x58]
mov eax, dword [esi + 0x178]
add dword [esi + 0x1c], eax
mov eax, dword [esi + 0x17c]
add dword [esi + 0x20], eax
movss dword [esi + 0x58], xmm0
movss xmm0, dword [esi + 0x1ac]
addss xmm0, dword [esi + 0x78]
mov eax, dword [esi + 0x180]
add dword [esi + 0x24], eax
mov eax, dword [esi + 0x184]
add dword [esi + 0x34], eax
movss dword [esi + 0x78], xmm0
movss xmm0, dword [esi + 0x1b0]
addss xmm0, dword [esi + 0x7c]
mov eax, dword [esi + 0x188]
add dword [esi + 0x38], eax
mov eax, dword [esi + 0x18c]
add dword [esi + 0x3c], eax
movss dword [esi + 0x7c], xmm0
movss xmm0, dword [esi + 0x1b4]
addss xmm0, dword [esi + 0x80]
push 0
movss dword [esi + 0x80], xmm0
movss xmm0, dword [esi + 0x1b8]
addss xmm0, dword [esi + 0x90]
movss dword [esi + 0x90], xmm0
movss xmm0, dword [esi + 0x1bc]
addss xmm0, dword [esi + 0x94]
movss dword [esi + 0x94], xmm0
movss xmm0, dword [esi + 0x1c0]
addss xmm0, dword [esi + 0x98]
movss dword [esi + 0x98], xmm0
call dword [sym.imp.PAL.dll_PalTaskGetTaskData]
add eax, 0x28548
add esp, 4
xor edx, edx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
lea ecx, [eax + 0x5c]
mov dword [ebp - 4], ecx
cmp dword [ecx - 0x5c], 0
je 0x4601e6
mov eax, dword [ecx - 0x50]
not eax
test eax, 0x40000
jne 0x4601e6
xor edx, edx
nop dword [eax]
test dword [ecx - 4], 0x10000000
je 0x4601d7
imul eax, dword [ecx], 0x2dc
mov ebx, dword [ebp - 0x10]
cmp esi, dword [eax + ebx]
je 0x460235
inc edx
add ecx, 0x50
cmp edx, 8
jl 0x4601c0
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
inc edx
add ecx, 0x2dc
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], ecx
cmp edx, 0x40
jl 0x4601a8
xor eax, eax
movzx ecx, word [esi + 0x1a4]
movzx edx, word [esi + 0x1a6]
mov ebx, dword [sym.imp.PAL.dll_PalMemoryFree]
test eax, eax
je 0x46023c
movzx eax, word [esi + 0x1a8]
add word [esi + 0x64], ax
movzx eax, word [esi + 0x1aa]
add word [esi + 0x60], cx
add word [esi + 0x62], dx
add word [esi + 0x66], ax
jmp 0x460312
mov eax, 1
jmp 0x4601fa
movzx eax, byte [esi + 0x5f]
movzx edi, word [esi + 0x1aa]
add ax, cx
movzx eax, ax
mov dword [ebp - 4], eax
movzx eax, byte [esi + 0x5e]
add ax, dx
movzx edx, word [esi + 0x1a8]
movzx ecx, ax
movzx eax, byte [esi + 0x5d]
add ax, dx
movzx edx, ax
movzx eax, byte [esi + 0x5c]
add ax, di
mov edi, dword [ebp - 4]
movzx eax, ax
cmp di, word [ebp - 0x14]
jle 0x460287
mov dword [ebp - 4], 0xff
jmp 0x460298
test di, di
mov dword [ebp - 0x10], 0
cmovs edi, dword [ebp - 0x10]
mov dword [ebp - 4], edi
mov edi, 0xff
cmp cx, di
jle 0x4602a6
mov ecx, edi
jmp 0x4602b3
xor edi, edi
test cx, cx
cmovs ecx, edi
mov edi, 0xff
cmp dx, di
jle 0x4602bf
mov edx, 0xff
jmp 0x4602cc
xor edi, edi
test dx, dx
cmovs edx, edi
mov edi, 0xff
cmp ax, di
jle 0x4602da
mov dword [ebp - 0xc], 0xff
jmp 0x4602e5
xor edi, edi
test ax, ax
cmovs eax, edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov edi, dword [ebp - 8]
cwde
movzx ecx, cl
shl eax, 8
or ecx, eax
movzx eax, dl
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0xc]
shl ecx, 8
movzx eax, al
or ecx, eax
xor eax, eax
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], eax
push 0x4c
lea eax, [esi + 0x178]
push 0
push eax
call fcn.0046f110
mov ecx, dword [edi + 0x24]
add esp, 0xc
mov eax, dword [edi + 0x28]
mov dword [ecx + 0x50], eax
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x46033b
mov eax, dword [edi + 0x24]
mov dword [ecx + 0x4c], eax
push 0x54
lea eax, [edi - 0x28]
push 0
push eax
call fcn.0046f110
add esp, 0xc
add edi, 0x54
mov dword [ebp - 8], edi
cmp edi, 0x4d6038
jl 0x45ff90
push 0x54
push 0
push 0x4d6010
call fcn.0046f110
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret