Function at 0x464250
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, 0x510908
mov dword [ebp - 0x14], 0xff
mov dword [ebp - 8], edi
nop
cmp dword [edi - 0x28], 0
je 0x46462b
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 0x4642d1
mov eax, dword [edi + 0x28]
test eax, eax
je 0x4642c2
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4642a3
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 0x464295
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 0x464288
mov edi, dword [ebp - 8]
mov eax, dword [edi]
test eax, eax
je 0x464310
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4642f9
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 0x4642e8
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 0x4645f2
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 0x4644c6
mov eax, dword [ecx - 0x50]
not eax
test eax, 0x40000
jne 0x4644c6
xor edx, edx
nop dword [eax]
test dword [ecx - 4], 0x10000000
je 0x4644b7
imul eax, dword [ecx], 0x2dc
mov ebx, dword [ebp - 0x10]
cmp esi, dword [eax + ebx]
je 0x464515
inc edx
add ecx, 0x50
cmp edx, 8
jl 0x4644a0
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 0x464488
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 0x46451c
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 0x4645f2
mov eax, 1
jmp 0x4644da
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 0x464567
mov dword [ebp - 4], 0xff
jmp 0x464578
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 0x464586
mov ecx, edi
jmp 0x464593
xor edi, edi
test cx, cx
cmovs ecx, edi
mov edi, 0xff
cmp dx, di
jle 0x46459f
mov edx, 0xff
jmp 0x4645ac
xor edi, edi
test dx, dx
cmovs edx, edi
mov edi, 0xff
cmp ax, di
jle 0x4645ba
mov dword [ebp - 0xc], 0xff
jmp 0x4645c5
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.0048e190
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 0x46461b
mov eax, dword [edi + 0x24]
mov dword [ecx + 0x4c], eax
push 0x54
lea eax, [edi - 0x28]
push 0
push eax
call fcn.0048e190
add esp, 0xc
add edi, 0x54
mov dword [ebp - 8], edi
cmp edi, 0x513308
jl 0x464270
push 0x54
push 0
push 0x5132e0
call fcn.0048e190
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret