Function at 0x47dffe
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x160
mov eax, dword [0x582e50]
xor eax, ebp
mov dword [esp + 0x158], eax
mov edi, dword [ecx]
test edi, edi
je 0x47e115
cmp byte [edi + 0x20], 0
je 0x47e086
xor eax, eax
push eax
push eax
push eax
push dword [edi]
call fcn.00498a66
add esp, 0x10
or edx, eax
je 0x47e12b
push 2
call fcn.00419f10
add esp, 4
test al, al
je 0x47e086
lea esi, [esp + 0x80]
mov ecx, esi
push 2
push 0x1d5
push str..._.._third_party_crashpad_crashpad_client_crash_report_database_win.cc
call fcn.00419fa0
lea eax, [esp + 0x88]
push str.failed_to_rewind_to_write
push eax
call fcn.004014ea
add esp, 8
mov ecx, esi
call fcn.00419550
xor eax, eax
xor edx, edx
lea ecx, [esp + 0x140]
xorps xmm0, xmm0
mov dword [ecx + 0x10], eax
movaps xmmword [ecx], xmm0
dec edx
push ecx
push edx
push edx
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_UnlockFileEx]
test eax, eax
jne 0x47e0f5
push 2
call fcn.00419f10
add esp, 4
test al, al
je 0x47e0f5
call fcn.0041abf0
lea esi, [esp + 0x80]
mov ecx, esi
push eax
push 2
push 0x129
push str..._.._third_party_crashpad_crashpad_client_crash_report_database_win.cc
call fcn.0041afa0
lea eax, [esp + 0x90]
push 0x54043e
push eax
call fcn.004014ea
add esp, 8
mov ecx, esi
call fcn.0041b0c0
lea ecx, [edi + 0x24]
call fcn.0047f772
lea ecx, [edi + 8]
call fcn.00412c40
mov ecx, edi
call fcn.0047c724
push edi
call fcn.004ed55c
add esp, 4
mov ecx, dword [esp + 0x158]
xor ecx, ebp
call fcn.004ed5a1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push dword [edi]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x47e1e0
mov ecx, edi
mov edi, dword [edi + 0x28]
sub edi, dword [ecx + 0x24]
mov eax, edi
sar eax, 3
imul esi, eax, 0xc4ec4ec5
lea eax, [esp + 0x48]
mov dword [eax + 0xc], 0
mov dword [eax], 0x43504144
mov dword [eax + 4], 1
mov dword [eax + 8], esi
push 0x10
push eax
mov dword [esp + 0x14], ecx
push dword [ecx]
call fcn.00498dcb
add esp, 0xc
test al, al
je 0x47e233
test edi, edi
mov edi, dword [esp + 0xc]
je 0x47e086
cmp esi, 0x4924925
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], 0
mov byte [esp + 0x68], 0
jae 0x47e73e
imul ebx, esi, 0x38
cmp ebx, 0x1000
jb 0x47e274
xor eax, eax
mov ecx, ebx
dec eax
add ecx, 0x23
cmovb ecx, eax
push ecx
call fcn.004ed52c
add esp, 4
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x47e27f
push 2
call fcn.00419f10
add esp, 4
test al, al
je 0x47e086
call fcn.0041abf0
lea esi, [esp + 0x80]
mov ecx, esi
push eax
push 2
push 0x1dc
push str..._.._third_party_crashpad_crashpad_client_crash_report_database_win.cc
call fcn.0041afa0
lea eax, [esp + 0x90]
push str.failed_to_truncate
push eax
call fcn.004014ea
add esp, 8
mov ecx, esi
call fcn.0041b0c0
jmp 0x47e086
push 2
call fcn.00419f10
add esp, 4
mov edi, dword [esp + 0xc]
test al, al
je 0x47e086
lea esi, [esp + 0x80]
mov ecx, esi
push 2
push 0x1e8
push str..._.._third_party_crashpad_crashpad_client_crash_report_database_win.cc
call fcn.00419fa0
lea eax, [esp + 0x88]
push str.failed_to_write_header
jmp 0x47e076
push ebx
call fcn.004ed52c
add esp, 4
mov ecx, eax
mov eax, dword [edi + 0x28]
mov edx, dword [edi + 0x24]
add ebx, ecx
cmp edx, eax
mov dword [esp + 0x44], eax
je 0x47e594
lea eax, [edi + 8]
mov esi, ecx
mov dword [esp + 0x18], eax
mov eax, ebx
mov dword [esp + 0x1c], esi
lea esi, [edx + 0x10]
lea ebx, [esp + 0x80]
mov dword [esp + 4], ecx
mov dword [esp + 0x10], eax
mov ecx, esi
push ebx
mov edi, edx
call fcn.004137e0
mov ecx, ebx
push dword [esp + 0x18]
call fcn.00412f50
lea ecx, [esp + 0x80]
mov ebx, eax
call fcn.00412c40
test bl, bl
jne 0x47e601
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov dword [esp + 0x38], edi
mov ecx, esi
lea edi, [esp + 0x140]
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm0
push edi
call fcn.00413ce0
mov eax, dword [esp + 0x150]
cmp dword [esp + 0x154], 7
mov ecx, edi
jbe 0x47e321
mov ecx, dword [esp + 0x140]
push eax
push ecx
lea edi, [esp + 0x88]
push edi
call fcn.00427330
add esp, 0xc
lea ebx, [esp + 0x68]
mov edx, edi
mov ecx, ebx
call fcn.0047f7fa
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.00401ade
lea ecx, [esp + 0x140]
call fcn.00412c40
mov edi, dword [esp + 0x38]
mov ecx, ebx
lea edx, [edi + 0x28]
call fcn.0047f7fa
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x44]
mov edx, edi
mov cl, byte [edi + 0x5c]
mov ebx, dword [edi + 0x40]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x54]
add cl, cl
mov dword [esp + 0x30], ebx
or cl, byte [edi + 0x48]
mov edi, dword [edi + 0x50]
mov dword [esp + 0x34], eax
mov eax, dword [edx + 0x58]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x60]
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x83], eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x47e425
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x60]
mov ebx, dword [esp + 0x14]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
mov dword [esi + 0x10], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esi + 0x14], ebx
mov ebx, dword [esp + 0x30]
mov dword [esi + 0x18], ebx
mov ebx, dword [esp + 0x28]
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], edi
mov edi, dword [esp + 0x34]
mov dword [esi + 0x24], edi
mov edi, dword [esp + 0x20]
mov dword [esi + 0x28], edi
mov edi, dword [esp + 0x24]
mov dword [esi + 0x2c], edi
mov byte [esi + 0x30], cl
mov edi, eax
mov ecx, dword [esp + 0x83]
mov eax, dword [esp + 0x80]
mov dword [esi + 0x34], ecx
mov ecx, dword [esp + 4]
mov dword [esi + 0x31], eax
mov eax, edi
add esi, 0x38
jmp 0x47e583
mov ebx, eax
mov dword [esp + 0x40], edi
mov byte [esp + 0xb], cl
mov ecx, 0x4924924
sub ebx, dword [esp + 4]
mov eax, ebx
sar eax, 3
imul edi, eax, 0xb6db6db7
mov eax, edi
lea esi, [edi + 1]
shr eax, 1
sub ecx, eax
cmp edi, ecx
mov ecx, esi
ja 0x47e45b
add eax, edi
cmp eax, esi
cmovb eax, esi
mov ecx, eax
imul edx, ecx, 0x38
cmp ecx, 0x4924924
mov ecx, 0xffffffff
mov dword [esp + 0x3c], ebx
mov eax, edx
mov dword [esp + 0x1c], edx
cmova eax, ecx
cmp eax, 0x1000
jb 0x47e497
add eax, 0x23
cmovb eax, ecx
push eax
call fcn.004ed52c
add esp, 4
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x47e4aa
test eax, eax
je 0x47e4a8
push eax
call fcn.004ed52c
add esp, 4
mov ebx, eax
jmp 0x47e4aa
xor ebx, ebx
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x60]
mov ecx, dword [esp + 0x14]
imul eax, edi, 0x38
movsd qword [ebx + eax + 8], xmm1
movsd qword [ebx + eax], xmm0
mov dword [ebx + eax + 0x10], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ebx + eax + 0x14], ecx
mov ecx, dword [esp + 0x28]
mov dword [ebx + eax + 0x1c], ecx
mov ecx, dword [esp + 0x30]
mov dword [ebx + eax + 0x18], ecx
mov ecx, dword [esp + 0x34]
mov dword [ebx + eax + 0x24], ecx
mov ecx, dword [esp + 0x40]
mov dword [ebx + eax + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov dword [ebx + eax + 0x28], ecx
mov ecx, dword [esp + 0x24]
mov dword [ebx + eax + 0x2c], ecx
mov cl, byte [esp + 0xb]
mov byte [ebx + eax + 0x30], cl
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x83]
mov dword [ebx + eax + 0x34], edx
mov dword [ebx + eax + 0x31], ecx
mov eax, dword [esp + 0x10]
cmp dword [esp + 4], eax
je 0x47e55c
mov edx, dword [esp + 0x3c]
xor eax, eax
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 4]
lea edi, [ebx + eax]
lea esi, [ecx + eax]
mov ecx, 0xe
add eax, 0x38
rep movsd dword es:[edi], dword [esi]
cmp edx, eax
mov ecx, dword [esp + 4]
jne 0x47e536
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
jmp 0x47e55e
mov ecx, eax
test ecx, ecx
je 0x47e572
sub eax, ecx
sar eax, 3
imul edx, eax, 0xb6db6db7
call fcn.0047f7ca
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
imul esi, esi, 0x38
mov ecx, ebx
add esi, ebx
add eax, ebx
add edx, 0x68
cmp edx, dword [esp + 0x44]
jne 0x47e29e
mov ebx, eax
jmp 0x47e596
mov esi, ecx
sub esi, ecx
push esi
mov esi, ecx
push ecx
mov edi, dword [esp + 0x14]
push dword [edi]
call fcn.00498dcb
add esp, 0xc
test al, al
je 0x47e5c6
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x7c], 0xf
jbe 0x47e6bf
mov ecx, dword [esp + 0x68]
jmp 0x47e6c3
push 2
call fcn.00419f10
add esp, 4
test al, al
je 0x47e71a
lea ecx, [esp + 0x80]
push 2
push 0x200
push str..._.._third_party_crashpad_crashpad_client_crash_report_database_win.cc
call fcn.00419fa0
lea eax, [esp + 0x88]
push str.failed_to_write_records
jmp 0x47e705
push 2
call fcn.00419f10
add esp, 4
test al, al
je 0x47e6b1
lea ecx, [esp + 0x80]
push 2
push 0x1f6
push str..._.._third_party_crashpad_crashpad_client_crash_report_database_win.cc
call fcn.00419fa0
mov ecx, 8
lea eax, [esp + 0x88]
cmp dword [edi + 0x24], ecx
mov edi, dword [esp + 0xc]
jb 0x47e642
mov esi, dword [esi]
push esi
push eax
call fcn.0041b180
add esp, 8
push str._expected_to_start_with
push eax
call fcn.004014ea
add esp, 8
mov esi, eax
mov eax, dword [edi + 0x18]
cmp dword [edi + 0x1c], 7
jbe 0x47e66c
mov ecx, dword [edi + 8]
mov dword [esp + 0x18], ecx
lea edi, [esp + 0x140]
push eax
push dword [esp + 0x1c]
push edi
call fcn.00427330
add esp, 0xc
mov eax, dword [edi + 0x10]
cmp dword [edi + 0x14], 0xf
mov ecx, edi
jbe 0x47e693
mov ecx, dword [esp + 0x140]
push eax
push ecx
push esi
call fcn.00402d83
add esp, 0xc
mov ecx, edi
call fcn.00401ade
lea ecx, [esp + 0x80]
call fcn.00419550
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 4]
jmp 0x47e71a
lea ecx, [esp + 0x68]
push eax
push ecx
push dword [edi]
call fcn.00498dcb
add esp, 0xc
test al, al
jne 0x47e71a
push 2
call fcn.00419f10
add esp, 4
test al, al
je 0x47e71a
lea ecx, [esp + 0x80]
push 2
push 0x205
push str..._.._third_party_crashpad_crashpad_client_crash_report_database_win.cc
call fcn.00419fa0
lea eax, [esp + 0x88]
push str.failed_to_write_string_table
push eax
call fcn.004014ea
add esp, 8
lea ecx, [esp + 0x80]
call fcn.00419550
test esi, esi
je 0x47e730
sub ebx, esi
mov ecx, esi
sar ebx, 3
imul edx, ebx, 0xb6db6db7
call fcn.0047f7ca
lea ecx, [esp + 0x68]
call fcn.00401ade
jmp 0x47e086
call fcn.004049f0
int3