Function at 0x460070
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 0x46044b
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 0x4600f1
mov eax, dword [edi + 0x28]
test eax, eax
je 0x4600e2
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4600c3
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 0x4600b5
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 0x4600a8
mov edi, dword [ebp - 8]
mov eax, dword [edi]
test eax, eax
je 0x460130
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x460119
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 0x460108
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 0x460412
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 0x4602e6
mov eax, dword [ecx - 0x50]
not eax
test eax, 0x40000
jne 0x4602e6
xor edx, edx
nop dword [eax]
test dword [ecx - 4], 0x10000000
je 0x4602d7
imul eax, dword [ecx], 0x2dc
mov ebx, dword [ebp - 0x10]
cmp esi, dword [eax + ebx]
je 0x460335
inc edx
add ecx, 0x50
cmp edx, 8
jl 0x4602c0
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 0x4602a8
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 0x46033c
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 0x460412
mov eax, 1
jmp 0x4602fa
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 0x460387
mov dword [ebp - 4], 0xff
jmp 0x460398
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 0x4603a6
mov ecx, edi
jmp 0x4603b3
xor edi, edi
test cx, cx
cmovs ecx, edi
mov edi, 0xff
cmp dx, di
jle 0x4603bf
mov edx, 0xff
jmp 0x4603cc
xor edi, edi
test dx, dx
cmovs edx, edi
mov edi, 0xff
cmp ax, di
jle 0x4603da
mov dword [ebp - 0xc], 0xff
jmp 0x4603e5
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.0046f210
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 0x46043b
mov eax, dword [edi + 0x24]
mov dword [ecx + 0x4c], eax
push 0x54
lea eax, [edi - 0x28]
push 0
push eax
call fcn.0046f210
add esp, 0xc
add edi, 0x54
mov dword [ebp - 8], edi
cmp edi, 0x4d6038
jl 0x460090
push 0x54
push 0
push 0x4d6010
call fcn.0046f210
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret