Function at 0x45c380
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, 0x4cd5d8
mov dword [ebp - 0x14], 0xff
mov dword [ebp - 8], edi
nop
cmp dword [edi - 0x28], 0
je 0x45c75b
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 0x45c401
mov eax, dword [edi + 0x28]
test eax, eax
je 0x45c3f2
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x45c3d3
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 0x45c3c5
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 0x45c3b8
mov edi, dword [ebp - 8]
mov eax, dword [edi]
test eax, eax
je 0x45c440
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x45c429
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 0x45c418
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 0x45c722
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, 0x28408
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 0x45c5f6
mov eax, dword [ecx - 0x50]
not eax
test eax, 0x40000
jne 0x45c5f6
xor edx, edx
nop dword [eax]
test dword [ecx - 4], 0x10000000
je 0x45c5e7
imul eax, dword [ecx], 0x2dc
mov ebx, dword [ebp - 0x10]
cmp esi, dword [eax + ebx]
je 0x45c645
inc edx
add ecx, 0x50
cmp edx, 8
jl 0x45c5d0
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 0x45c5b8
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 0x45c64c
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 0x45c722
mov eax, 1
jmp 0x45c60a
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 0x45c697
mov dword [ebp - 4], 0xff
jmp 0x45c6a8
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 0x45c6b6
mov ecx, edi
jmp 0x45c6c3
xor edi, edi
test cx, cx
cmovs ecx, edi
mov edi, 0xff
cmp dx, di
jle 0x45c6cf
mov edx, 0xff
jmp 0x45c6dc
xor edi, edi
test dx, dx
cmovs edx, edi
mov edi, 0xff
cmp ax, di
jle 0x45c6ea
mov dword [ebp - 0xc], 0xff
jmp 0x45c6f5
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.00469410
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 0x45c74b
mov eax, dword [edi + 0x24]
mov dword [ecx + 0x4c], eax
push 0x54
lea eax, [edi - 0x28]
push 0
push eax
call fcn.00469410
add esp, 0xc
add edi, 0x54
mov dword [ebp - 8], edi
cmp edi, 0x4cffd8
jl 0x45c3a0
push 0x54
push 0
push 0x4cffb0
call fcn.00469410
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret