Function at 0x576d90
Capabilities:
Get common file path
Get disk information
Set current directory
Set environment variable

Disassembly:
push ebp
mov ecx, 0x3a43
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x11a]
push ebx
sub esp, 0x570
mov word [ebp - 0x54b], cx
mov byte [ebp - 0x549], 0
mov dword [ebp - 0x53a], 0x5c3a43
mov dword [ebp - 0x536], 0x5c3f5c5c
mov dword [ebp - 0x532], 0x5c3a43
mov dword [ebp - 0x548], 0xffffffff
mov dword [ebp - 0x544], 0
mov dword [ebp - 0x540], 0
mov dword [esp + 4], 0x10e
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetWindowsDirectoryA]
sub esp, 8
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x197
xor eax, eax
cmp ebx, 0x10d
setbe al
mov dword [esp + 4], str.windowsdir_is_abnormally_long__n
mov dword [esp], eax
mov esi, dword fs:[0x18]
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x198
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.GetWindowsDirectory:_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], eax
call fcn.005744b0
movzx eax, byte [ebp - 0x11a]
mov byte [ebp - 0x54b], al
mov byte [ebp - 0x53a], al
mov byte [ebp - 0x532], al
lea eax, [ebp - 0x21f]
mov dword [esp + 4], eax
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryA]
sub esp, 8
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x19e
mov eax, dword [esi + 0x34]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], str.GetCurrentDirectory:_error__ld_n
call fcn.005744b0
lea eax, [ebp - 0x53a]
mov ebx, dword [sym.imp.kernel32.dll_SetCurrentDirectoryA]
mov dword [esp], eax
call ebx
sub esp, 4
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1a3
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str.SetCurrentDirectory:_error__ld_n
call fcn.005744b0
lea eax, [ebp - 0x324]
mov dword [esp + 0x1c], 0x105
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x429]
mov dword [esp + 4], eax
lea eax, [ebp - 0x54b]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_GetVolumeInformationA]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x105
mov dword [ebp - 0x550], eax
call eax
sub esp, 0x20
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1a6
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str.GetVolumeInformationA_root_failed__last_error__lu_n
call fcn.005744b0
lea ecx, [ebp - 0x11a]
mov dword [esp], ecx
call ebx
sub esp, 4
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1aa
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str.SetCurrentDirectory:_error__ld_n
call fcn.005744b0
lea ecx, [ebp - 0x324]
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 0x18], ecx
lea ecx, [ebp - 0x429]
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x54b]
mov dword [esp], ecx
mov dword [esp + 0x1c], 0x105
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x105
mov eax, dword [ebp - 0x550]
call eax
sub esp, 0x20
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1ae
mov eax, dword [esi + 0x34]
test edi, edi
jne 0x577a90
xor edx, edx
cmp eax, 0x7b
mov ecx, 0x601b00
sete dl
mov dword [esp + 8], ecx
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.GetVolumeInformationA_did_s_fail__last_error__lu_n
mov esi, dword fs:[0x18]
call fcn.005744b0
lea eax, [ebp - 0x21f]
mov dword [esp], eax
call ebx
sub esp, 4
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1b3
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str.SetCurrentDirectory:_error__ld_n
call fcn.005744b0
movsx eax, byte [ebp - 0x21f]
mov edi, dword [sym.imp.msvcrt.dll_toupper]
mov dword [esp], eax
call edi
mov dword [ebp - 0x554], eax
movsx eax, byte [ebp - 0x11a]
mov byte [ebp - 0x558], al
mov dword [esp], eax
call edi
cmp dword [ebp - 0x554], eax
je 0x577ad0
movzx eax, byte [ebp - 0x558]
mov ecx, dword [sym.imp.kernel32.dll_SetEnvironmentVariableA]
mov dword [ebp - 0x52e], 0x3a433d
mov byte [ebp - 0x52d], al
lea eax, [ebp - 0x11a]
mov dword [esp + 4], eax
lea eax, [ebp - 0x52e]
mov dword [ebp - 0x554], eax
mov dword [esp], eax
mov dword [ebp - 0x558], ecx
call ecx
sub esp, 8
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1bf
mov eax, dword [ebp - 0x554]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str.SetEnvironmentVariable__s_failed_n
call fcn.005744b0
lea eax, [ebp - 0x11a]
mov dword [esp], eax
call ebx
sub esp, 4
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1c2
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str.SetCurrentDirectory:_error__ld_n
call fcn.005744b0
lea eax, [ebp - 0x21f]
mov dword [esp], eax
call ebx
sub esp, 4
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1c4
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str.SetCurrentDirectory:_error__ld_n
call fcn.005744b0
lea eax, [ebp - 0x324]
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x429]
mov dword [esp + 4], eax
lea eax, [ebp - 0x54b]
mov dword [esp + 0x1c], 0x105
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x105
mov dword [esp], eax
mov eax, dword [ebp - 0x550]
call eax
sub esp, 0x20
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1ca
mov eax, dword [esi + 0x34]
test edi, edi
jne 0x577aa0
xor edx, edx
cmp eax, 0x7b
mov ecx, 0x601b00
sete dl
mov dword [esp + 8], ecx
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.GetVolumeInformationA_did_s_fail__last_error__lu_n
mov edi, dword fs:[0x18]
call fcn.005744b0
lea eax, [ebp - 0x324]
mov dword [esp + 0x1c], 0x105
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x429]
mov dword [esp + 4], eax
lea eax, [ebp - 0x53a]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x105
mov dword [esp], eax
mov esi, dword [ebp - 0x550]
call esi
sub esp, 0x20
mov dword [ebp - 0x55c], eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1d0
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.GetVolumeInformationA_with__failed__last_error__lu_n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x55c]
mov dword [esp], edx
call fcn.005744b0
lea eax, [ebp - 0x53a]
mov dword [esp], eax
call ebx
sub esp, 4
mov dword [ebp - 0x55c], eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1d3
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.SetCurrentDirectory:_error__ld_n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x55c]
mov dword [esp], edx
call fcn.005744b0
lea eax, [ebp - 0x21f]
mov dword [esp], eax
call ebx
sub esp, 4
mov dword [ebp - 0x55c], eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1d5
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.SetCurrentDirectory:_error__ld_n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x55c]
mov dword [esp], edx
call fcn.005744b0
lea eax, [ebp - 0x324]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x429]
mov dword [esp + 4], eax
lea eax, [ebp - 0x54b]
mov dword [esp + 0x1c], 0x105
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x105
mov dword [esp], eax
call esi
sub esp, 0x20
mov dword [ebp - 0x55c], eax
call fcn.0057d110
mov edx, dword [ebp - 0x55c]
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1dc
mov eax, dword [edi + 0x34]
test edx, edx
jne 0x577b10
xor edx, edx
cmp eax, 0x7b
mov ecx, 0x601b00
sete dl
mov dword [esp + 8], ecx
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.GetVolumeInformationA_did_s_fail__last_error__lu_n
call fcn.005744b0
lea eax, [ebp - 0x53a]
mov dword [esp + 4], eax
mov edi, dword [ebp - 0x554]
mov dword [esp], edi
mov eax, dword [ebp - 0x558]
call eax
sub esp, 8
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1e1
mov dword [esp + 8], edi
mov dword [esp], esi
mov dword [esp + 4], str.SetEnvironmentVariable__s_failed_n
mov esi, dword fs:[0x18]
call fcn.005744b0
lea eax, [ebp - 0x324]
mov dword [esp + 0x1c], 0x105
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x429]
mov dword [esp + 4], eax
lea eax, [ebp - 0x54b]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x105
mov dword [esp], eax
mov eax, dword [ebp - 0x550]
call eax
sub esp, 0x20
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1e6
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str.GetVolumeInformationA_failed__last_error__lu_n
call fcn.005744b0
lea edx, [ebp - 0x53a]
mov dword [esp], edx
call ebx
sub esp, 4
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1ea
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.SetCurrentDirectory:_error__ld_n
mov dword [esp + 8], eax
mov dword [esp], edi
call fcn.005744b0
lea edx, [ebp - 0x21f]
mov dword [esp], edx
call ebx
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1ec
mov eax, dword [esi + 0x34]
mov dword [esp], ebx
lea ebx, [ebp - 0x324]
mov dword [esp + 8], eax
mov dword [esp + 4], str.SetCurrentDirectory:_error__ld_n
call fcn.005744b0
mov dword [esp + 0x18], ebx
lea ebx, [ebp - 0x429]
mov dword [esp + 4], ebx
lea ebx, [ebp - 0x54b]
mov dword [esp], ebx
mov dword [esp + 0x1c], 0x105
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x105
mov eax, dword [ebp - 0x550]
call eax
sub esp, 0x20
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1f1
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.GetVolumeInformationA_failed__last_error__lu_n
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.005744b0
lea eax, [ebp - 0x324]
mov dword [esp + 0x1c], 0x105
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x429]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x105
mov dword [esp + 4], eax
mov dword [esp], 0
mov edi, dword [ebp - 0x550]
call edi
sub esp, 0x20
mov esi, eax
call fcn.0057d110
mov ebx, dword fs:[0x18]
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1f7
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 4], str.GetVolumeInformationA_failed_on_null_root_dir__last_error__lu_n
call fcn.005744b0
lea eax, [ebp - 0x324]
mov dword [esp + 0x1c], 0x105
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x540]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x544]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x548]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x429]
mov dword [esp + 4], eax
lea eax, [ebp - 0x53a]
mov dword [esp + 8], 0x105
mov dword [esp], eax
mov dword [ebp - 0x550], edi
call edi
lea edi, [ebp - 0x536]
sub esp, 0x20
mov esi, eax
call fcn.0057d110
lea ecx, [ebp - 0x53a]
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1fc
mov eax, dword [ebx + 0x34]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp], esi
mov dword [esp + 4], str.GetVolumeInformationA_failed__root_s__last_error_lu_n
call fcn.005744b0
lea edx, [ebp - 0x324]
mov dword [ebx + 0x34], 0xdeadbeef
lea ecx, [ebp - 0x540]
mov dword [esp + 0x18], edx
lea edx, [ebp - 0x544]
mov dword [esp + 0x14], ecx
lea ecx, [ebp - 0x548]
mov dword [esp + 0x10], edx
lea edx, [ebp - 0x429]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
mov dword [esp + 0x1c], 0x105
mov dword [esp + 8], 0x105
mov dword [esp], edi
mov eax, dword [ebp - 0x550]
call eax
sub esp, 0x20
mov esi, eax
call fcn.0057d110
mov ecx, 0x601b00
test esi, esi
mov edx, str._not
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x202
mov eax, ecx
mov ecx, dword [ebx + 0x34]
cmovne eax, edx
mov dword [esp], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.GetVolumeInformationA_did_s_fail__root_s__last_error_lu_n
call fcn.005744b0
lea edx, [ebp - 0x324]
mov dword [ebx + 0x34], 0xdeadbeef
lea ecx, [ebp - 0x540]
mov byte [ebp - 0x534], 0x2e
mov dword [esp + 0x18], edx
lea edx, [ebp - 0x544]
mov dword [esp + 0x14], ecx
lea ecx, [ebp - 0x548]
mov dword [esp + 0x10], edx
lea edx, [ebp - 0x429]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
mov dword [esp + 0x1c], 0x105
mov dword [esp + 8], 0x105
mov dword [esp], edi
mov eax, dword [ebp - 0x550]
call eax
sub esp, 0x20
mov esi, eax
call fcn.0057d110
test esi, esi
mov ecx, 0x601b00
mov edx, str._not
mov dword [eax], 0x601b57
cmove edx, ecx
mov dword [eax + 4], 0x209
mov eax, dword [ebx + 0x34]
mov dword [esp + 8], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.GetVolumeInformationA_did_s_fail__root_s__last_error_lu_n
mov dword [esp], esi
call fcn.005744b0
lea eax, [ebp - 0x11a]
mov ebx, dword [sym.imp.msvcrt.dll_strlen]
mov dword [esp], eax
call ebx
cmp byte [ebp + eax - 0x11b], 0x5c
je 0x577828
mov edx, 0x5c
mov word [ebp + eax - 0x11a], dx
lea eax, [ebp - 0x324]
mov edi, dword fs:[0x18]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x540]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x544]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x548]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x429]
mov dword [esp + 4], eax
lea eax, [ebp - 0x11a]
mov dword [esp + 0x1c], 0x105
mov dword [esp + 8], 0x105
mov dword [esp], eax
mov eax, dword [ebp - 0x550]
call eax
sub esp, 0x20
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x210
mov eax, dword [edi + 0x34]
test esi, esi
jne 0x577ab0
xor edx, edx
cmp eax, 0x90
mov ecx, 0x601b00
sete dl
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x11a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov dword [esp], edx
mov dword [esp + 4], str.GetVolumeInformationA_did_s_fail__root_s__last_error_lu_n
call fcn.005744b0
lea eax, [ebp - 0x11a]
mov dword [esp], eax
call ebx
cmp byte [ebp + eax - 0x11b], 0x5c
jne 0x5778f9
mov byte [ebp + eax - 0x11b], 0
lea eax, [ebp - 0x324]
mov esi, dword fs:[0x18]
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x540]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x544]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x548]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x429]
mov dword [esp + 4], eax
lea eax, [ebp - 0x11a]
mov dword [esp + 0x1c], 0x105
mov dword [esp + 8], 0x105
mov dword [esp], eax
mov eax, dword [ebp - 0x550]
call eax
sub esp, 0x20
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x217
mov eax, dword [esi + 0x34]
test ebx, ebx
jne 0x577ac0
xor edx, edx
cmp eax, 0x7b
mov ecx, 0x601b00
sete dl
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x11a]
mov dword [esp + 8], ecx
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.GetVolumeInformationA_did_s_fail__root_s__last_error_lu_n
call fcn.005744b0
mov dword [esp + 8], 0x104
mov esi, dword [ebp - 0x554]
lea eax, [ebp - 0x53a]
mov dword [esp], eax
mov dword [esp + 4], esi
call dword [sym.imp.kernel32.dll_GetVolumeNameForVolumeMountPointA]
sub esp, 0xc
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x21c
xor eax, eax
cmp ebx, 1
sete al
mov dword [esp + 4], str.GetVolumeNameForVolumeMountPointA_failed_n
mov dword [esp], eax
call fcn.005744b0
lea eax, [ebp - 0x324]
mov dword [esp], esi
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x540]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x544]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x548]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x429]
mov dword [esp + 0x1c], 0x105
mov dword [esp + 8], 0x105
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x550]
call eax
sub esp, 0x20
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x221
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.GetVolumeInformationA_failed__root_s__last_error_lu_n
call fcn.005744b0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, str._not
xor edx, edx
jmp 0x577044
mov ecx, str._not
xor edx, edx
jmp 0x577236
mov ecx, str._not
xor edx, edx
jmp 0x5778ba
mov ecx, str._not
xor edx, edx
jmp 0x577989
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x1b6
movsx eax, byte [ebp - 0x11a]
mov dword [esp], str.Please_re_run_from_another_device_than__c:_n
mov dword [esp + 4], eax
call fcn.00573f10
lea eax, [ebp - 0x52e]
mov dword [ebp - 0x554], eax
jmp 0x5775b4
mov ecx, str._not
xor edx, edx
jmp 0x5773e7