Function at 0x10005899
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
mov eax, dword [0x1005d014]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
push edi
push dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
push esi
push edi
push ebx
mov dword [esp + 0x58], ecx
call fcn.10005500
test ebx, ebx
je 0x10005724
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 1
push 0x100553f4
call dword [eax + 0x58]
jmp 0x1000573a
test edi, edi
je 0x1000573a
push edi
push 1
push 1
push 0x100553f4
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x1000576a
push 1
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x1000576a
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, 0x100553f4
je 0x10005760
mov al, byte [0x100553f4]
mov byte [ecx], al
inc dword [esi + 0x14]
mov ecx, esi
call fcn.1000ab40
mov eax, dword [esp + 0x48]
mov ecx, 0x10093398
push dword [eax]
mov eax, dword [0x10093398]
call dword [eax + 0x10]
mov ecx, dword [esp + 0x48]
push eax
push esi
push edi
push ebx
call fcn.10005580
test ebx, ebx
je 0x1000579f
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 2
push 0x10055e24
call dword [eax + 0x58]
jmp 0x100057b5
test edi, edi
je 0x100057b5
push edi
push 1
push 2
push 0x10055e24
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x100057e8
push 2
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x100057e8
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, 0x10055e24
je 0x100057dd
mov ax, word [0x10055e24]
mov word [ecx], ax
add dword [esi + 0x14], 2
mov ecx, esi
call fcn.1000ab40
push dword [ebp + 0x14]
push esi
push edi
push ebx
call fcn.10005500
test ebx, ebx
je 0x10005808
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 2
push 0x10055e28
call dword [eax + 0x58]
jmp 0x1000581e
test edi, edi
je 0x1000581e
push edi
push 1
push 2
push 0x10055e28
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10005851
push 2
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10005851
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, 0x10055e28
je 0x10005846
mov ax, word [0x10055e28]
mov word [ecx], ax
add dword [esi + 0x14], 2
mov ecx, esi
call fcn.1000ab40
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x1000609b
mov edx, dword [ebp + 0x18]
cmp dword [ecx + 0x18], 0
je 0x10005884
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x44]
inc eax
push edx
push eax
push esi
push edi
push ebx
call fcn.100056e0
jmp 0x10006085
movsx eax, byte [ecx + 0x10]
dec eax
cmp eax, 7
ja case.0x10005892.4
jmp dword [eax*4 + 0x10006118]
mov eax, dword [ecx + 4]
test eax, eax
je case.0x10005892.4
test dl, dl
jne 0x100058b0
cmp byte [eax], dl
je case.0x10005892.4
mov eax, dword [ebp + 0x14]
inc eax
push eax
push esi
push edi
push ebx
call fcn.10005500
push 1
push 0x100553f4
push esi
push edi
push ebx
call fcn.10005670
mov eax, dword [esp + 0x44]
mov ecx, 0x10093398
push dword [eax]
mov eax, dword [0x10093398]
call dword [eax + 0x10]
mov ecx, dword [esp + 0x48]
push eax
push esi
push edi
push ebx
call fcn.10005580
push 4
push str.__t_t_
push esi
push edi
push ebx
call fcn.10005670
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
push dword [eax + 4]
push esi
push edi
push ebx
call fcn.10005580
push 2
push 0x10055e24
push esi
push edi
push ebx
call fcn.10005670
jmp 0x10006085
mov eax, dword [ecx + 8]
test eax, eax
je case.0x10005892.4
push 0x400
mov edx, 0x10098788
mov ecx, eax
call fcn.1000bfd0
add esp, 4
test eax, eax
je 0x10006085
mov eax, dword [ebp + 0x14]
inc eax
push eax
push esi
push edi
push ebx
call fcn.10005500
push 1
push 0x100553f4
push esi
push edi
push ebx
call fcn.10005670
mov eax, dword [esp + 0x44]
mov ecx, 0x10093398
push dword [eax]
mov eax, dword [0x10093398]
call dword [eax + 0x10]
lea edx, [eax + 1]
nop dword [eax + eax]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10005980
sub eax, edx
mov ecx, 0x10093398
push eax
mov eax, dword [esp + 0x48]
push dword [eax]
mov eax, dword [0x10093398]
call dword [eax + 0x10]
push eax
push esi
push edi
push ebx
call fcn.10005670
push 4
push str.__t_t_
push esi
push edi
push ebx
call fcn.10005670
mov ecx, dword [esp + 0x48]
push 0x10098788
push esi
push edi
push ebx
call fcn.10005580
push 2
push 0x10055e24
push esi
push edi
push ebx
call fcn.10005670
jmp 0x10006085
mov eax, dword [ebp + 0x14]
inc eax
push eax
push esi
push edi
push ebx
call fcn.10005500
test ebx, ebx
je 0x100059fc
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 1
push 0x100553f4
call dword [eax + 0x58]
jmp 0x10005a12
test edi, edi
je 0x10005a12
push edi
push 1
push 1
push 0x100553f4
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10005a42
push 1
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10005a42
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, 0x100553f4
je 0x10005a38
mov al, byte [0x100553f4]
mov byte [ecx], al
inc dword [esi + 0x14]
mov ecx, esi
call fcn.1000ab40
mov eax, dword [esp + 0x44]
mov ecx, 0x10093398
push dword [eax]
mov eax, dword [0x10093398]
call dword [eax + 0x10]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10005a58
sub eax, edx
mov ecx, 0x10093398
push eax
mov eax, dword [esp + 0x48]
push dword [eax]
mov eax, dword [0x10093398]
call dword [eax + 0x10]
push eax
push esi
push edi
push ebx
call fcn.10005670
test ebx, ebx
je 0x10005a93
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 4
push str.__t_t_
call dword [eax + 0x58]
jmp 0x10005aa9
test edi, edi
je 0x10005aa9
push edi
push 1
push 4
push str.__t_t_
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10005ada
push 4
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10005ada
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, str.__t_t_
je 0x10005acf
mov eax, dword [str.__t_t_]
mov dword [ecx], eax
add dword [esi + 0x14], 4
mov ecx, esi
call fcn.1000ab40
mov eax, dword [esp + 0x44]
push dword [eax + 0xc]
lea eax, [esp + 0x50]
push 0x100553fc
push 0x20
push eax
call fcn.100099d0
lea ecx, [esp + 0x5c]
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10005b00
sub ecx, edx
lea eax, [esp + 0x4c]
push ecx
push eax
push esi
push edi
push ebx
call fcn.10005670
test ebx, ebx
je 0x10005b2c
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 2
push 0x10055e24
call dword [eax + 0x58]
jmp 0x10005b42
test edi, edi
je 0x10005b42
push edi
push 1
push 2
push 0x10055e24
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10006085
push 2
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10006085
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, 0x10055e24
je 0x10005b72
mov ax, word [0x10055e24]
mov word [ecx], ax
add dword [esi + 0x14], 2
mov ecx, esi
call fcn.1000ab40
jmp 0x10006085
mov eax, dword [ebp + 0x14]
inc eax
push eax
push esi
push edi
push ebx
call fcn.10005500
test ebx, ebx
je 0x10005ba4
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 1
push 0x100553f4
call dword [eax + 0x58]
jmp 0x10005bba
test edi, edi
je 0x10005bba
push edi
push 1
push 1
push 0x100553f4
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10005bea
push 1
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10005bea
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, 0x100553f4
je 0x10005be0
mov al, byte [0x100553f4]
mov byte [ecx], al
inc dword [esi + 0x14]
mov ecx, esi
call fcn.1000ab40
mov eax, dword [esp + 0x44]
mov ecx, 0x10093398
push dword [eax]
mov eax, dword [0x10093398]
call dword [eax + 0x10]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10005c00
sub eax, edx
mov ecx, 0x10093398
push eax
mov eax, dword [esp + 0x48]
push dword [eax]
mov eax, dword [0x10093398]
call dword [eax + 0x10]
push eax
push esi
push edi
push ebx
call fcn.10005670
test ebx, ebx
je 0x10005c3b
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 4
push str.__t_t_
call dword [eax + 0x58]
jmp 0x10005c51
test edi, edi
je 0x10005c51
push edi
push 1
push 4
push str.__t_t_
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10005c82
push 4
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10005c82
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, str.__t_t_
je 0x10005c77
mov eax, dword [str.__t_t_]
mov dword [ecx], eax
add dword [esi + 0x14], 4
mov ecx, esi
call fcn.1000ab40
mov eax, dword [esp + 0x44]
push dword [eax + 0xc]
lea eax, [esp + 0x50]
push 0x10055a6c
push 0x20
push eax
call fcn.100099d0
lea ecx, [esp + 0x5c]
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10005ca4
sub ecx, edx
lea eax, [esp + 0x4c]
push ecx
push eax
push esi
push edi
push ebx
call fcn.10005670
test ebx, ebx
je 0x10005cd0
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 2
push 0x10055e24
call dword [eax + 0x58]
jmp 0x10005ce6
test edi, edi
je 0x10005ce6
push edi
push 1
push 2
push 0x10055e24
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10006085
push 2
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10006085
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, 0x10055e24
je 0x10005d16
mov ax, word [0x10055e24]
mov word [ecx], ax
add dword [esi + 0x14], 2
mov ecx, esi
call fcn.1000ab40
jmp 0x10006085
mov eax, dword [ebp + 0x14]
inc eax
push eax
push esi
push edi
push ebx
call fcn.10005500
test ebx, ebx
je 0x10005d48
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 1
push 0x100553f4
call dword [eax + 0x58]
jmp 0x10005d5e
test edi, edi
je 0x10005d5e
push edi
push 1
push 1
push 0x100553f4
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10005d8e
push 1
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10005d8e
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, 0x100553f4
je 0x10005d84
mov al, byte [0x100553f4]
mov byte [ecx], al
inc dword [esi + 0x14]
mov ecx, esi
call fcn.1000ab40
mov eax, dword [esp + 0x44]
mov ecx, 0x10093398
push dword [eax]
mov eax, dword [0x10093398]
call dword [eax + 0x10]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10005da4
sub eax, edx
mov ecx, 0x10093398
push eax
mov eax, dword [esp + 0x48]
push dword [eax]
mov eax, dword [0x10093398]
call dword [eax + 0x10]
push eax
push esi
push edi
push ebx
call fcn.10005670
test ebx, ebx
je 0x10005ddf
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 4
push str.__t_t_
call dword [eax + 0x58]
jmp 0x10005df5
test edi, edi
je 0x10005df5
push edi
push 1
push 4
push str.__t_t_
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10005e26
push 4
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10005e26
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, str.__t_t_
je 0x10005e1b
mov eax, dword [str.__t_t_]
mov dword [ecx], eax
add dword [esi + 0x14], 4
mov ecx, esi
call fcn.1000ab40
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
push dword [eax + 4]
push dword [eax]
lea eax, [esp + 0x54]
push str.0x_016I64X
push 0x20
push eax
call fcn.100099d0
lea ecx, [esp + 0x60]
add esp, 0x14
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10005e50
sub ecx, edx
lea eax, [esp + 0x4c]
push ecx
push eax
push esi
push edi
push ebx
call fcn.10005670
test ebx, ebx
je 0x10005e7c
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 2
push 0x10055e24
call dword [eax + 0x58]
jmp 0x10005e92
test edi, edi
je 0x10005e92
push edi
push 1
push 2
push 0x10055e24
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10006085
push 2
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10006085
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, 0x10055e24
je 0x10005ec2
mov ax, word [0x10055e24]
mov word [ecx], ax
add dword [esi + 0x14], 2
mov ecx, esi
call fcn.1000ab40
jmp 0x10006085
mov eax, dword [ebp + 0x14]
inc eax
push eax
push esi
push edi
push ebx
call fcn.10005500
test ebx, ebx
je 0x10005ef4
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 1
push 0x100553f4
call dword [eax + 0x58]
jmp 0x10005f0a
test edi, edi
je 0x10005f0a
push edi
push 1
push 1
push 0x100553f4
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10005f3a
push 1
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10005f3a
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, 0x100553f4
je 0x10005f30
mov al, byte [0x100553f4]
mov byte [ecx], al
inc dword [esi + 0x14]
mov ecx, esi
call fcn.1000ab40
mov eax, dword [esp + 0x44]
mov ecx, 0x10093398
push dword [eax]
mov eax, dword [0x10093398]
call dword [eax + 0x10]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10005f50
sub eax, edx
mov ecx, 0x10093398
push eax
mov eax, dword [esp + 0x48]
push dword [eax]
mov eax, dword [0x10093398]
call dword [eax + 0x10]
push eax
push esi
push edi
push ebx
call fcn.10005670
test ebx, ebx
je 0x10005f8b
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 4
push str.__t_t_
call dword [eax + 0x58]
jmp 0x10005fa1
test edi, edi
je 0x10005fa1
push edi
push 1
push 4
push str.__t_t_
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10005fd2
push 4
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10005fd2
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, str.__t_t_
je 0x10005fc7
mov eax, dword [str.__t_t_]
mov dword [ecx], eax
add dword [esi + 0x14], 4
mov ecx, esi
call fcn.1000ab40
mov eax, dword [esp + 0x44]
sub esp, 8
movss xmm0, dword [eax + 0xc]
lea eax, [esp + 0x54]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x100562a4
push 0x30
push eax
call fcn.100099d0
lea ecx, [esp + 0x60]
add esp, 0x14
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10006001
sub ecx, edx
lea eax, [esp + 0x4c]
push ecx
push eax
push esi
push edi
push ebx
call fcn.10005670
test ebx, ebx
je 0x1000602d
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 2
push 0x10055e24
call dword [eax + 0x58]
jmp 0x10006043
test edi, edi
je 0x10006043
push edi
push 1
push 2
push 0x10055e24
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10006085
push 2
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10006085
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, 0x10055e24
je 0x1000606b
mov ax, word [0x10055e24]
mov word [ecx], ax
add dword [esi + 0x14], 2
mov ecx, esi
call fcn.1000ab40
jmp 0x10006085
push str.KeyValues::RecursiveSaveToFile:_TODO__missing_code_for_TYPE_COLOR._n
call fcn.10002de0
add esp, 4
mov ecx, dword [esp + 0x44]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x44], ecx
test ecx, ecx
jne 0x10005867
push dword [ebp + 0x14]
push esi
push edi
push ebx
call fcn.10005500
test ebx, ebx
je 0x100060bb
mov eax, dword [ebx]
mov ecx, ebx
push edi
push 2
push 0x10055e84
call dword [eax + 0x58]
jmp 0x100060d1
test edi, edi
je 0x100060d1
push edi
push 1
push 2
push 0x10055e84
call fcn.10038174
add esp, 0x10
test esi, esi
je 0x10006104
push 2
mov ecx, esi
call fcn.1000aa80
test al, al
je 0x10006104
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0x14]
cmp ecx, 0x10055e84
je 0x100060f9
mov ax, word [0x10055e84]
mov word [ecx], ax
add dword [esi + 0x14], 2
mov ecx, esi
call fcn.1000ab40
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1002bc85
mov esp, ebp
pop ebp
ret 0x14