Function at 0x47903c
Capabilities:
Create process on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1a0
mov eax, dword [0x54c03c]
lea esi, [ebp + 8]
lea ecx, [esp + 0x180]
xor eax, ebp
mov dword [esp + 0x198], eax
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
mov word [ecx], 0
mov dword [esp + 4], ecx
push ecx
push dword [esi]
call fcn.00495018
add esp, 8
mov esi, dword [esi]
mov edi, dword [esi + 0x68]
mov ebx, dword [esi + 0x6c]
cmp edi, ebx
je 0x4790d4
lea esi, [esp + 0x98]
mov eax, dword [edi + 0x10]
cmp dword [edi + 0x14], 0xf
mov ecx, edi
jbe 0x4790a5
mov ecx, dword [edi]
push eax
push ecx
push esi
call fcn.004205a0
add esp, 0xc
lea eax, [esp + 0x180]
push eax
push esi
call fcn.00495018
add esp, 8
mov ecx, esi
call fcn.0040196e
add edi, 0x18
cmp ebx, edi
jne 0x479098
lea eax, [ebp + 8]
mov esi, dword [eax]
cmp dword [esi + 0x28], 0
mov eax, 0xf
je 0x479139
lea ebx, [esp + 0x20]
add esi, 0x18
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x10], 0
mov byte [ebx], 0
mov ecx, ebx
push 8
push str.database
call fcn.00401ec4
lea edi, [esp + 0x98]
mov edx, ebx
mov ecx, edi
push esi
call fcn.0047a021
add esp, 4
lea eax, [esp + 0x180]
push eax
push edi
call fcn.00495018
add esp, 8
mov ecx, edi
call fcn.0040196e
mov ecx, ebx
call fcn.00401b04
lea eax, [ebp + 8]
mov esi, dword [eax]
cmp dword [esi + 0x40], 0
je 0x47919e
lea ebx, [esp + 0x20]
add esi, 0x30
mov eax, 0xf
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x10], 0
mov byte [ebx], 0
mov ecx, ebx
push 0xb
push str.metrics_dir
call fcn.00401ec4
lea edi, [esp + 0x98]
mov edx, ebx
mov ecx, edi
push esi
call fcn.0047a021
add esp, 4
lea eax, [esp + 0x180]
push eax
push edi
call fcn.00495018
add esp, 8
mov ecx, edi
call fcn.0040196e
mov ecx, ebx
call fcn.00401b04
lea eax, [ebp + 8]
mov esi, dword [eax]
mov eax, dword [esi + 0x58]
test eax, eax
je 0x47922b
cmp dword [esi + 0x5c], 0xf
jbe 0x4791b4
mov esi, dword [esi + 0x48]
jmp 0x4791b7
add esi, 0x48
lea ecx, [esp + 0x20]
push eax
push esi
push ecx
mov esi, ecx
call fcn.004205a0
add esp, 0xc
lea edi, [esp + 0x68]
mov eax, 0xf
mov dword [edi + 0x14], eax
mov dword [edi + 0x10], 0
mov byte [edi], 0
mov ecx, edi
push 3
push 0x5018ca
call fcn.00401ec4
lea ebx, [esp + 0x98]
mov edx, edi
mov ecx, ebx
push esi
call fcn.0047a021
add esp, 4
lea eax, [esp + 0x180]
push eax
push ebx
call fcn.00495018
add esp, 8
mov ecx, ebx
call fcn.0040196e
mov ecx, edi
call fcn.00401b04
mov ecx, esi
call fcn.0040196e
lea eax, [ebp + 8]
mov esi, dword [eax]
mov eax, dword [esi + 0x60]
mov edi, 0xf
mov esi, dword [eax]
mov dword [esp], eax
cmp esi, eax
mov dword [esp + 8], esi
je 0x4793a6
xor eax, eax
lea ebx, [esp + 0x168]
mov dword [esp + 0x17c], edi
mov dword [esp + 0x178], eax
mov byte [esp + 0x168], al
mov ecx, ebx
mov eax, dword [esi + 0x20]
inc eax
push eax
call fcn.0040337c
mov ecx, 0xf
mov eax, dword [esi + 0x20]
cmp dword [esi + 0x24], ecx
jbe 0x479280
mov edx, dword [esi + 0x10]
jmp 0x479283
lea edx, [esi + 0x10]
mov ecx, ebx
push eax
push edx
call fcn.004021da
mov ecx, ebx
push 0x3d
call fcn.00430166
mov ecx, 0xf
mov eax, dword [esi + 0x38]
cmp dword [esi + 0x3c], ecx
jbe 0x4792a7
mov esi, dword [esi + 0x28]
jmp 0x4792aa
add esi, 0x28
mov ecx, ebx
push eax
push esi
call fcn.004021da
movsd xmm0, qword [eax + 0x10]
mov ecx, 0
mov edx, 0xf
movsd qword [esp + 0x78], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x70], xmm1
movsd qword [esp + 0x68], xmm0
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
mov byte [eax], cl
lea ecx, [esp + 0x68]
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x7c], edx
jbe 0x4792f7
mov ecx, dword [esp + 0x68]
push eax
push ecx
lea esi, [esp + 0x28]
push esi
call fcn.004205a0
add esp, 0xc
mov edi, 0xf
xor eax, eax
lea ebx, [esp + 0x150]
mov dword [esp + 0x164], edi
mov dword [esp + 0x160], eax
mov byte [esp + 0x150], al
mov ecx, ebx
push 0xa
push str.annotation
call fcn.00401ec4
lea esi, [esp + 0x98]
lea eax, [esp + 0x20]
mov edx, ebx
mov ecx, esi
push eax
call fcn.0047a021
add esp, 4
lea eax, [esp + 0x180]
push eax
push esi
call fcn.00495018
add esp, 8
mov ecx, esi
call fcn.0040196e
mov ecx, ebx
call fcn.00401b04
lea ecx, [esp + 0x20]
call fcn.0040196e
lea ecx, [esp + 0x68]
call fcn.00401b04
lea ebx, [esp + 0x168]
mov ecx, ebx
call fcn.00401b04
lea ecx, [esp + 8]
call fcn.004577de
mov esi, dword [esp + 8]
xor eax, eax
cmp esi, dword [esp]
jne 0x47924d
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 1
push 0x1f0fff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x479473
lea ecx, [ebp + 8]
lea esi, [esp + 0x68]
xor ebx, ebx
mov edx, dword [ecx]
mov ecx, esi
push ebx
push 0x551d7c
push ebx
push 0x551d70
push ebx
push 0x551d60
push eax
push dword [edx + 0x8c]
push dword [0x54ca98]
push dword [0x54ca94]
push dword [0x54ca90]
call fcn.00478072
lea edi, [esp + 0x168]
mov ecx, esi
push edi
call fcn.00478380
lea esi, [esp + 0x150]
mov eax, 0xf
mov ecx, esi
mov dword [esi + 0x14], eax
mov dword [esi + 0x10], ebx
mov byte [esi], 0
push 0x16
push str.__initial_client_data
call fcn.00401ec4
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov edx, dword [edi + 0x10]
mov ebx, ecx
sub ebx, eax
cmp edx, ebx
mov ebx, dword [edi + 0x14]
mov dword [esp], ebx
jbe 0x4794ca
mov ebx, dword [esp]
sub ebx, edx
cmp ebx, eax
jb 0x4794ca
cmp ecx, 0xf
jbe 0x479461
mov esi, dword [esp + 0x150]
lea ecx, [esp + 0x168]
push eax
push esi
push 0
call fcn.00404936
jmp 0x4794e5
xor ebx, ebx
push 2
call fcn.00414940
add esp, 4
test al, al
je 0x479984
call sub.KERNEL32.dll_GetLastError
lea esi, [esp + 0x98]
mov ecx, esi
push eax
push 2
push 0x180
push str..._.._third_party_crashpad_crashpad_client_crashpad_client_win.cc
call fcn.00415cc0
lea eax, [esp + 0xa8]
push 0x50bedf
push eax
call fcn.004015c0
add esp, 8
mov ecx, esi
call fcn.00415de0
xor ebx, ebx
jmp 0x479984
cmp dword [esp], 0xf
jbe 0x4794d7
mov edi, dword [esp + 0x168]
lea ecx, [esp + 0x150]
push edx
push edi
call fcn.004021da
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
xor edi, edi
mov ecx, 0xf
lea esi, [esp + 0x20]
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 0x28], xmm1
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x30], xmm0
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], ecx
mov byte [eax], 0
cmp dword [esi + 0x14], ecx
mov eax, dword [esi + 0x10]
mov ecx, esi
jbe 0x479527
mov ecx, dword [esp + 0x20]
lea ebx, [esp + 0x98]
push eax
push ecx
push ebx
call fcn.004205a0
add esp, 0xc
lea eax, [esp + 0x180]
push eax
push ebx
call fcn.00495018
add esp, 8
mov ecx, ebx
call fcn.0040196e
mov ecx, esi
call fcn.00401b04
lea esi, [esp + 0x150]
mov ecx, esi
call fcn.00401b04
lea ecx, [esp + 0x168]
call fcn.00401b04
mov ebx, dword [sym.imp.KERNEL32.dll_GetStdHandle]
xorps xmm0, xmm0
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], edi
movaps xmmword [esp + 0x40], xmm0
movaps xmmword [esp + 0x50], xmm0
movaps xmmword [esp + 0x30], xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x4c], 0x100
push 0xfffffffffffffff6
call ebx
mov dword [esp + 0x58], eax
push 0xfffffffffffffff5
call ebx
mov dword [esp + 0x5c], eax
push 0xfffffffffffffff4
call ebx
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esp + 0x60], eax
mov dword [esi + 8], edi
mov dword [esp + 0x18], edi
mov eax, dword [0x551da0]
mov ecx, dword [0x54fa0c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x479baa
mov eax, dword [0x551da8]
mov ecx, dword [0x54fa0c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x479bf0
mov ecx, dword [0x551d9c]
lea ebx, [esp + 0x168]
test ecx, ecx
je 0x479685
mov eax, dword [0x551da4]
test eax, eax
je 0x479685
mov dword [esp + 0x20], 0x48
xor eax, eax
push ebx
push eax
push 1
push eax
call ecx
test eax, eax
je 0x479874
push 2
call fcn.00414940
add esp, 4
test al, al
je 0x47995e
lea esi, [esp + 0x98]
mov ecx, esi
push 2
push 0x1b1
push str..._.._third_party_crashpad_crashpad_client_crashpad_client_win.cc
call fcn.004149d0
lea eax, [esp + 0xa0]
push str.InitializeProcThreadAttributeList__size__succeeded__expected_failure
push eax
call fcn.004015c0
add esp, 8
mov ecx, esi
call fcn.00413fc0
jmp 0x47995e
mov dword [esp + 0x20], 0x44
xor edi, edi
xor eax, eax
cmp dword [esp + 0x194], 7
jbe 0x4796a6
mov ecx, dword [esp + 0x180]
mov dword [esp + 4], ecx
lea ecx, [ebp + 8]
mov ecx, dword [ecx]
cmp dword [ecx + 0x14], 8
jb 0x4796b3
mov ecx, dword [ecx]
lea edx, [esp + 0x20]
xor esi, esi
push ebx
push edx
push esi
push esi
push eax
push 1
push esi
push esi
push dword [esp + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x47981d
push dword [esp + 0x16c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, eax
push 1
call fcn.00414940
add esp, 4
test esi, esi
jne 0x479732
test al, al
je 0x479732
call sub.KERNEL32.dll_GetLastError
lea esi, [esp + 0x98]
mov ecx, esi
push eax
push 1
push 0x1f0
push str..._.._third_party_crashpad_crashpad_client_crashpad_client_win.cc
call fcn.00415cc0
lea eax, [esp + 0xa8]
push str.CloseHandle_thread
push eax
call fcn.004015c0
add esp, 8
mov ecx, esi
call fcn.00415de0
push dword [esp + 0x168]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, eax
push 1
call fcn.00414940
add esp, 4
test esi, esi
jne 0x47978f
test al, al
je 0x47978f
call sub.KERNEL32.dll_GetLastError
lea esi, [esp + 0x98]
mov ecx, esi
push eax
push 1
push 0x1f3
push str..._.._third_party_crashpad_crashpad_client_crashpad_client_win.cc
call fcn.00415cc0
lea eax, [esp + 0xa8]
push str.CloseHandle_process
push eax
call fcn.004015c0
add esp, 8
mov ecx, esi
call fcn.00415de0
lea eax, [ebp + 8]
mov ecx, 0x8c
add ecx, dword [eax]
mov esi, eax
lea eax, [esp + 0x98]
mov dword [esp + 0x98], 0xffffffff
mov ebx, eax
push eax
call fcn.00479d84
xor eax, eax
lea ecx, [esp + 8]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x98], 2
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [ecx + 8], eax
mov eax, dword [esi]
add eax, 0x74
push ecx
push ebx
push eax
call fcn.00494c48
add esp, 0xc
mov ebx, eax
jmp 0x479962
xor ebx, ebx
push 2
call fcn.00414940
add esp, 4
test al, al
je 0x479962
call sub.KERNEL32.dll_GetLastError
lea esi, [esp + 0x98]
mov ecx, esi
push eax
push 2
push 0x1eb
push str..._.._third_party_crashpad_crashpad_client_crashpad_client_win.cc
call fcn.00415cc0
lea eax, [esp + 0xa8]
push str.CreateProcess
push eax
call fcn.004015c0
add esp, 8
mov ecx, esi
call fcn.00415de0
xor ebx, ebx
jmp 0x479962
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x479914
push dword [esp + 0x168]
call fcn.004d45ba
add esp, 4
mov edi, eax
mov dword [esp + 0x64], eax
push ebx
push 0
push 1
push eax
call dword [0x551d9c]
test eax, eax
je 0x4799d8
lea esi, [esp + 0x18]
mov ecx, esi
call fcn.0047a212
mov eax, dword [esp + 0x64]
mov dword [esi], eax
mov eax, dword [esp + 0x158]
mov ecx, eax
sub ecx, dword [esp + 0x150]
sar ecx, 2
cmp ecx, 7
ja 0x4798e8
lea esi, [esp + 0x150]
mov ecx, esi
push 8
call fcn.0047a28c
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x154]
cmp eax, ecx
je 0x479a1b
mov eax, dword [0x54ca90]
mov dword [ecx], eax
mov eax, dword [esp + 0x154]
add eax, 4
mov dword [esp + 0x154], eax
jmp 0x479a32
push 2
call fcn.00414940
add esp, 4
test al, al
je 0x47995e
call sub.KERNEL32.dll_GetLastError
lea esi, [esp + 0x98]
mov ecx, esi
push eax
push 2
push 0x1b5
push str..._.._third_party_crashpad_crashpad_client_crashpad_client_win.cc
call fcn.00415cc0
lea eax, [esp + 0xa8]
push str.InitializeProcThreadAttributeList__size_
push eax
call fcn.004015c0
add esp, 8
mov ecx, esi
call fcn.00415de0
xor ebx, ebx
xor edi, edi
lea ecx, [esp + 0x18]
call fcn.0047a212
test edi, edi
je 0x479978
push edi
call fcn.004d45c3
add esp, 4
lea ecx, [esp + 0x150]
call fcn.0042b7dc
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x47999d
push eax
call fcn.00494b8a
add esp, 4
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x180]
call fcn.0040196e
xor eax, eax
lea ecx, [ebp + 8]
inc eax
cmp bl, 1
adc eax, 0
xchg dword [0x551d98], eax
call fcn.00479fb6
mov ecx, dword [esp + 0x198]
xor ecx, ebp
call fcn.004d45c8
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 2
call fcn.00414940
add esp, 4
test al, al
je 0x47986d
call sub.KERNEL32.dll_GetLastError
lea esi, [esp + 0x98]
mov ecx, esi
push eax
push 2
push 0x1c0
push str..._.._third_party_crashpad_crashpad_client_crashpad_client_win.cc
call fcn.00415cc0
lea eax, [esp + 0xa8]
push str.InitializeProcThreadAttributeList
jmp 0x47985d
lea esi, [esp + 0x150]
mov ecx, esi
push 0x54ca90
push eax
call fcn.0042b806
mov eax, dword [esi + 4]
cmp dword [esp + 0x158], eax
je 0x479a56
mov ecx, dword [0x54ca94]
mov dword [eax], ecx
mov eax, dword [esp + 0x154]
add eax, 4
mov dword [esp + 0x154], eax
jmp 0x479a6d
lea esi, [esp + 0x150]
mov ecx, esi
push 0x54ca94
push eax
call fcn.0042b806
mov eax, dword [esi + 4]
cmp dword [esp + 0x158], eax
je 0x479a91
mov ecx, dword [0x54ca98]
mov dword [eax], ecx
mov eax, dword [esp + 0x154]
add eax, 4
mov dword [esp + 0x154], eax
jmp 0x479aa8
lea esi, [esp + 0x150]
mov ecx, esi
push 0x54ca98
push eax
call fcn.0042b806
mov eax, dword [esi + 4]
mov edx, 0x8c
lea ecx, [ebp + 8]
add edx, dword [ecx]
cmp dword [esp + 0x158], eax
je 0x479ad2
mov ecx, dword [edx]
mov dword [eax], ecx
mov eax, dword [esp + 0x154]
add eax, 4
mov dword [esp + 0x154], eax
jmp 0x479ae5
lea esi, [esp + 0x150]
mov ecx, esi
push edx
push eax
call fcn.0042b806
mov eax, dword [esi + 4]
cmp dword [esp + 0x158], eax
je 0x479b02
mov ecx, dword [esp + 0x1c]
mov dword [eax], ecx
mov ecx, 4
add dword [esp + 0x154], ecx
jmp 0x479b14
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x150]
push edx
push eax
call fcn.0042b806
mov edx, dword [esp + 0x58]
lea esi, [esp + 0x150]
mov ecx, esi
call fcn.0047a198
mov edx, dword [esp + 0x5c]
mov ecx, esi
call fcn.0047a198
mov edx, dword [esp + 0x60]
mov ecx, esi
call fcn.0047a198
mov eax, dword [esi]
mov ecx, dword [esi + 4]
xor edx, edx
sub ecx, eax
push edx
push edx
push ecx
push eax
push 0x20002
push edx
push dword [esp + 0x7c]
call dword [0x551da4]
test eax, eax
je 0x479b67
mov eax, 0x80000
jmp 0x479691
push 2
call fcn.00414940
add esp, 4
test al, al
je 0x47986d
call sub.KERNEL32.dll_GetLastError
lea esi, [esp + 0x98]
mov ecx, esi
push eax
push 2
push 0x1da
push str..._.._third_party_crashpad_crashpad_client_crashpad_client_win.cc
call fcn.00415cc0
lea eax, [esp + 0xa8]
push str.UpdateProcThreadAttribute
jmp 0x47985d
push 0x551da0
call fcn.004d4600
add esp, 4
mov eax, dword [0x551da0]
cmp eax, 0xffffffff
jne 0x4795e4
push 0
push str.::InitializeProcThreadAttributeList
push 0x4ff240
call fcn.004950ec
add esp, 0xc
mov dword [0x551d9c], eax
push 0x551da0
sbb eax, 0x6ae80055
stosb byte es:[edi], al
add eax, 0x4c48300
jmp 0x4795e4
push 0x551da8
call fcn.004d4600
add esp, 4
mov eax, dword [0x551da8]
cmp eax, 0xffffffff
jne 0x479605
cmp dword [0x551d9c], 0
je 0x479c2a
push 0
push str.::UpdateProcThreadAttribute
push 0x4ff240
call fcn.004950ec
add esp, 0xc
jmp 0x479c2c
xor eax, eax
mov dword [0x551da4], eax
push 0x551da8
call fcn.004d4652
add esp, 4
jmp 0x479605