Function at 0x4014b0
Capabilities:
Get file size
Read file on windows

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff8
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
mov eax, 0x1044
call fcn.00402f88
sub esp, eax
mov eax, dword [esp + eax]
mov dword [ebp - 0x102c], edx
lea edx, [ebp - 0x1024]
mov ebx, eax
mov dword [ebp - 0x1030], ecx
mov dword [ebp - 0x101c], 0
call dbg.open_database
test eax, eax
je 0x401510
lea esp, [ebp - 0xc]
mov ebx, 1
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov eax, dword [ebp - 0x1024]
mov dword [esp], eax
call sym._MsiCloseHandle_4
lea eax, [ebp - 0x1020]
sub esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x10012
mov dword [esp + 4], 0
mov dword [esp], ebx
call dword [sym.imp.ole32.dll_StgOpenStorage]
sub esp, 0x18
mov esi, eax
test eax, eax
jne 0x401644
mov ebx, dword [ebp - 0x102c]
movzx edi, word [ebx]
test di, di
je 0x401771
add ebx, 2
cmp word [ebx], 0
jne 0x401573
sub ebx, dword [ebp - 0x102c]
sar ebx, 1
cmp ebx, 0x1f
ja 0x401710
lea eax, [ebx + ebx + 4]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0x1034], eax
test eax, eax
je 0x401710
mov edx, dword [ebp - 0x102c]
movzx eax, di
mov edi, dword [ebp - 0x1034]
mov ecx, eax
lea esi, [edx + 2]
mov dword [ebp - 0x1028], edx
jmp 0x4015df
movzx ecx, word [esi]
lea edx, [esi + 2]
sub ebx, 1
mov eax, ecx
test ecx, ecx
je 0x401790
mov dword [ebp - 0x1028], esi
mov esi, edx
cmp eax, 0x7f
ja 0x401622
call sym._utf2mime
test eax, eax
js 0x401622
lea ecx, [eax + 0x4800]
mov eax, dword [ebp - 0x1028]
movzx eax, word [eax + 2]
lea edx, [eax - 1]
cmp edx, 0x7e
ja 0x401622
call sym._utf2mime
cmp eax, 0xffffffff
je 0x401622
add eax, 0x3ffffc0
mov esi, dword [ebp - 0x1028]
shl eax, 6
add ecx, eax
add esi, 4
add edi, 2
mov word [edi - 2], cx
cmp ebx, 0xffffffff
jne 0x4015c4
mov eax, dword [ebp - 0x1034]
mov esi, dword [sym.imp.ucrtbase.dll_free]
mov dword [esp], eax
call esi
jmp 0x401716
test byte [0x403000], 4
je 0x4014f8
test ebx, ebx
je 0x401ef3
mov eax, ebx
shr eax, 0x10
je 0x401a30
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edi, eax
sub esp, 8
mov eax, str._invalid_
test edi, edi
jne 0x401a43
cmp word [ebx], 0
je 0x40169a
lea esi, [esi]
add edi, 1
cmp word [ebx + edi*2], 0
jne 0x401690
mov eax, 0x224c
mov dword [ebp - 0x1028], ebx
lea edx, [ebp - 0x100e]
mov word [ebp - 0x1010], ax
lea ecx, [edi - 1]
test edi, edi
jle 0x401de0
lea eax, [ebp - 0xeee]
cmp edx, eax
ja 0x401de0
add dword [ebp - 0x1028], 2
mov eax, dword [ebp - 0x1028]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x401c10
ja 0x401b60
cmp ax, 9
je 0x401bf3
cmp ax, 0xa
jne 0x401c23
mov eax, 0x6e5c
add edx, 2
mov edi, ecx
mov word [edx - 2], ax
jmp 0x4016b2
mov esi, dword [sym.imp.ucrtbase.dll_free]
mov dword [ebp - 0x1034], 0
mov ebx, 1
test byte [0x403000], 4
jne 0x401aa3
mov eax, dword [ebp - 0x1034]
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x101c]
test eax, eax
je 0x401752
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
mov eax, dword [ebp - 0x1020]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, ebx
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov dword [esp], 4
call dword [sym.imp.ucrtbase.dll_malloc]
mov esi, dword [sym.imp.ucrtbase.dll_free]
mov edi, eax
test eax, eax
je 0x401716
mov dword [ebp - 0x1034], eax
xor eax, eax
lea ecx, [ebp - 0x101c]
mov word [edi], ax
mov eax, dword [ebp - 0x1020]
mov edi, dword [ebp - 0x1034]
mov edx, dword [eax]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x1011
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 0x18
mov edi, eax
test eax, eax
je 0x4018b4
mov ebx, 1
mov esi, dword [sym.imp.ucrtbase.dll_free]
test byte [0x403000], 4
je 0x401732
mov eax, dword [ebp - 0x1034]
shr eax, 0x10
je 0x402104
mov esi, dword [ebp - 0x1034]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov ebx, eax
sub esp, 8
mov eax, str._invalid_
test ebx, ebx
jne 0x401cae
cmp word [esi], 0
je 0x40183e
mov eax, esi
add ebx, 1
cmp word [eax + ebx*2], 0
jne 0x401834
mov eax, 0x224c
mov ecx, dword [ebp - 0x1034]
lea edx, [ebp - 0x100e]
mov word [ebp - 0x1010], ax
lea esi, [esi]
lea esi, [esi]
lea esi, [ebx - 1]
test ebx, ebx
jle 0x401c83
lea eax, [ebp - 0xeee]
cmp edx, eax
ja 0x401c83
add ecx, 2
movzx eax, word [ecx - 2]
cmp ax, 0xd
je 0x401ec3
ja 0x401b83
cmp ax, 9
je 0x401ee0
cmp ax, 0xa
jne 0x401e50
mov eax, 0x6e5c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x401860
mov eax, dword [ebp - 0x1030]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x80000000
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CreateFileW]
sub esp, 0x1c
mov dword [ebp - 0x1028], eax
cmp eax, 0xffffffff
je 0x401cf0
lea eax, [ebp - 0x1018]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1028]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetFileSize]
sub esp, 8
cmp eax, 0xffffffff
je 0x401a74
mov edx, dword [ebp - 0x1018]
test edx, edx
jne 0x401a74
mov esi, eax
mov eax, dword [ebp - 0x101c]
xor edi, edi
mov edx, dword [eax]
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp], eax
call dword [edx + 0x18]
sub esp, 0xc
test eax, eax
jne 0x401f70
mov dword [ebp - 0x102c], eax
mov ebx, dword [ebp - 0x1028]
jmp 0x4019b1
mov eax, dword [ebp - 0x1014]
test eax, eax
je 0x4019e5
mov edx, dword [ebp - 0x101c]
mov ecx, dword [edx]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1010]
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [ecx + 0x10]
sub esp, 0x10
test eax, eax
jne 0x4019e5
mov eax, dword [ebp - 0x1014]
xor edx, edx
sub esi, eax
sbb edi, edx
lea eax, [ebp - 0x1014]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x1010]
mov dword [esp + 8], 0x1000
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_ReadFile]
sub esp, 0x14
test eax, eax
jne 0x401970
mov eax, dword [ebp - 0x1028]
mov ebx, dword [ebp - 0x102c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CloseHandle]
mov eax, edi
sub esp, 4
or eax, esi
jne 0x40212c
mov eax, dword [ebp - 0x1020]
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x24]
mov esi, dword [sym.imp.ucrtbase.dll_free]
sub esp, 8
jmp 0x401732
movzx ebx, bx
mov dword [esp], str._04x
mov dword [esp + 4], ebx
call sym._wine_dbg_sprintf.constprop.5
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.failed_to_open_storage__s__0x_08lx__n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], global___dbch
mov dword [esp], 2
call sym._wine_dbg_log.constprop.2
jmp 0x4014f8
test byte [0x403000], 4
jne 0x401f80
mov eax, dword [ebp - 0x1028]
mov ebx, 1
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CloseHandle]
mov esi, dword [sym.imp.ucrtbase.dll_free]
sub esp, 4
jmp 0x401732
mov eax, dword [ebp - 0x102c]
shr eax, 0x10
je 0x402356
mov edi, dword [ebp - 0x102c]
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov ebx, eax
sub esp, 8
mov eax, str._invalid_
test ebx, ebx
jne 0x401f2e
cmp word [edi], 0
je 0x401aed
mov eax, edi
add ebx, 1
cmp word [eax + ebx*2], 0
jne 0x401ae3
mov eax, 0x224c
mov dword [ebp - 0x1028], esi
mov esi, dword [ebp - 0x102c]
lea edx, [ebp - 0x100e]
mov word [ebp - 0x1010], ax
lea edi, [ebp - 0xeee]
lea ecx, [ebx - 1]
test ebx, ebx
jle 0x401efd
cmp edx, edi
ja 0x401efd
add esi, 2
movzx eax, word [esi - 2]
cmp ax, 0xd
je 0x4021e3
ja 0x401bb0
cmp ax, 9
je 0x4021d0
cmp ax, 0xa
jne 0x402170
mov eax, 0x6e5c
add edx, 2
mov ebx, ecx
mov word [edx - 2], ax
jmp 0x401b11
cmp ax, 0x22
je 0x401be0
cmp ax, 0x5c
jne 0x401c23
mov ebx, 0x5c5c
add edx, 2
mov edi, ecx
mov word [edx - 2], bx
jmp 0x4016b2
cmp ax, 0x22
je 0x401eb0
cmp ax, 0x5c
jne 0x401e50
mov ebx, 0x5c5c
add edx, 2
mov word [edx - 2], bx
mov ebx, esi
jmp 0x401860
cmp ax, 0x22
je 0x402200
cmp ax, 0x5c
jne 0x402170
mov ebx, 0x5c5c
add edx, 2
mov word [edx - 2], bx
mov ebx, ecx
jmp 0x401b11
mov edi, 0x225c
add edx, 2
mov word [edx - 2], di
mov edi, ecx
jmp 0x4016b2
mov eax, 0x745c
add edx, 2
mov edi, ecx
mov word [edx - 2], ax
jmp 0x4016b2
mov eax, 0x725c
add edx, 2
mov edi, ecx
mov word [edx - 2], ax
jmp 0x4016b2
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x401e40
mov edi, eax
mov byte [edx], 0x5c
add edx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefopen_database]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [edx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefopen_database]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefopen_database]
and edi, 0xf
mov byte [edx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefopen_database]
mov byte [edx - 1], al
mov edi, ecx
mov byte [edx - 2], bl
jmp 0x4016b2
mov byte [edx], 0x22
lea eax, [edx + 1]
test esi, esi
jle 0x401c9d
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x1010]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.failed_to_create_stream__s__0x_08lx__n
mov dword [esp + 8], str.add_stream
mov ebx, 1
mov dword [esp + 4], global___dbch
mov dword [esp], 2
call sym._wine_dbg_log.constprop.2
mov esi, dword [sym.imp.ucrtbase.dll_free]
jmp 0x401732
mov ebx, 1
mov esi, dword [sym.imp.ucrtbase.dll_free]
test byte [0x403000], 4
je 0x401732
mov eax, dword fs:[0x18]
mov edi, dword [eax + 0x34]
mov eax, dword [ebp - 0x1030]
test eax, eax
je 0x4023d8
shr eax, 0x10
je 0x40239a
mov esi, dword [ebp - 0x1030]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov ebx, eax
sub esp, 8
mov eax, str._invalid_
test ebx, ebx
jne 0x4020ef
cmp word [esi], 0
mov eax, esi
je 0x401d6a
lea esi, [esi]
add ebx, 1
cmp word [eax + ebx*2], 0
jne 0x401d60
mov eax, 0x224c
mov dword [ebp - 0x1028], edi
mov edi, dword [ebp - 0x1030]
lea edx, [ebp - 0x100e]
mov word [ebp - 0x1010], ax
lea esi, [ebp - 0xeee]
nop
lea ecx, [ebx - 1]
cmp edx, esi
ja 0x4020be
test ebx, ebx
jle 0x4020be
add edi, 2
movzx eax, word [edi - 2]
cmp ax, 0xd
je 0x4022b6
ja 0x401e10
cmp ax, 9
je 0x402343
cmp ax, 0xa
jne 0x4022e3
mov eax, 0x6e5c
add edx, 2
mov ebx, ecx
mov word [edx - 2], ax
jmp 0x401d90
mov byte [edx], 0x22
lea eax, [edx + 1]
test ecx, ecx
jle 0x401dfa
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x1010]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
jmp 0x401a43
cmp ax, 0x22
je 0x4022d0
cmp ax, 0x5c
jne 0x4022e3
mov ebx, 0x5c5c
add edx, 2
mov word [edx - 2], bx
mov ebx, ecx
jmp 0x401d90
mov byte [edx], al
mov edi, ecx
add edx, 1
jmp 0x4016b2
lea ebx, [eax - 0x20]
cmp bx, 0x5e
jbe 0x402120
mov ebx, eax
mov byte [edx], 0x5c
add edx, 5
shr bx, 0xc
movzx ebx, bx
movzx ebx, byte [ebx + str.0123456789abcdefopen_database]
mov byte [edx - 4], bl
mov ebx, eax
shr bx, 8
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefopen_database]
mov byte [edx - 3], bl
mov ebx, eax
and eax, 0xf
shr bx, 4
movzx eax, byte [eax + str.0123456789abcdefopen_database]
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefopen_database]
mov byte [edx - 1], al
mov byte [edx - 2], bl
mov ebx, esi
jmp 0x401860
mov eax, 0x225c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x401860
mov eax, 0x725c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x401860
mov eax, 0x745c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x401860
mov eax, str._null_
jmp 0x401a43
mov esi, dword [ebp - 0x1028]
mov byte [edx], 0x22
lea eax, [edx + 1]
test ecx, ecx
jle 0x401f1d
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x1010]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
mov dword [esp + 0x10], eax
mov ebx, 1
mov dword [esp + 0xc], str.failed_to_encode_stream_name__s_n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], global___dbch
mov dword [esp], 2
call sym._wine_dbg_log.constprop.2
mov dword [ebp - 0x1034], 0
jmp 0x401732
mov ebx, 1
mov esi, dword [sym.imp.ucrtbase.dll_free]
jmp 0x401732
mov eax, dword [ebp - 0x1030]
test eax, eax
je 0x4023ce
shr eax, 0x10
je 0x40237e
mov edi, dword [ebp - 0x1030]
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov ecx, eax
sub esp, 8
mov eax, str._invalid_
test ecx, ecx
jne 0x402091
cmp word [edi], 0
mov eax, edi
je 0x401fda
lea esi, [esi]
nop
add ecx, 1
cmp word [eax + ecx*2], 0
jne 0x401fd0
mov eax, 0x224c
mov edi, dword [ebp - 0x1030]
lea edx, [ebp - 0x100e]
lea esi, [ebp - 0xeee]
mov word [ebp - 0x1010], ax
lea esi, [esi]
nop
lea ebx, [ecx - 1]
cmp edx, esi
ja 0x402066
test ecx, ecx
jle 0x402066
add edi, 2
movzx eax, word [edi - 2]
cmp ax, 0xd
je 0x4022a3
ja 0x402042
cmp ax, 9
je 0x402273
cmp ax, 0xa
jne 0x402213
mov eax, 0x6e5c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402000
cmp ax, 0x22
je 0x402290
cmp ax, 0x5c
jne 0x402213
mov eax, 0x5c5c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402000
mov byte [edx], 0x22
lea eax, [edx + 1]
test ebx, ebx
jle 0x402080
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x1010]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.file__s_too_big_n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], global___dbch
mov dword [esp], 2
call sym._wine_dbg_log.constprop.2
jmp 0x401a81
mov edi, dword [ebp - 0x1028]
mov byte [edx], 0x22
lea eax, [edx + 1]
test ecx, ecx
jle 0x4020de
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x1010]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.failed_to_open_file__s___lu__n
jmp 0x401cbe
movzx eax, word [ebp - 0x1034]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.5
jmp 0x401cae
mov byte [edx], al
mov ebx, esi
add edx, 1
jmp 0x401860
mov ebx, 1
mov esi, dword [sym.imp.ucrtbase.dll_free]
test byte [0x403000], 4
je 0x401732
mov dword [esp + 0xc], str.failed_to_write_stream_contents_n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], global___dbch
mov dword [esp], 2
call sym._wine_dbg_log.constprop.2
jmp 0x401732
lea ebx, [eax - 0x20]
cmp bx, 0x5e
jbe 0x402372
mov ebx, eax
mov byte [edx], 0x5c
add edx, 5
shr bx, 0xc
movzx ebx, bx
movzx ebx, byte [ebx + str.0123456789abcdefopen_database]
mov byte [edx - 4], bl
mov ebx, eax
shr bx, 8
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefopen_database]
mov byte [edx - 3], bl
mov ebx, eax
and eax, 0xf
shr bx, 4
movzx eax, byte [eax + str.0123456789abcdefopen_database]
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefopen_database]
mov byte [edx - 1], al
mov byte [edx - 2], bl
mov ebx, ecx
jmp 0x401b11
mov eax, 0x745c
add edx, 2
mov ebx, ecx
mov word [edx - 2], ax
jmp 0x401b11
mov eax, 0x725c
add edx, 2
mov ebx, ecx
mov word [edx - 2], ax
jmp 0x401b11
mov eax, 0x225c
add edx, 2
mov ebx, ecx
mov word [edx - 2], ax
jmp 0x401b11
lea ecx, [eax - 0x20]
cmp cx, 0x5e
jbe 0x4023b6
mov ecx, eax
mov byte [edx], 0x5c
add edx, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefopen_database]
mov byte [edx - 4], cl
mov ecx, eax
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefopen_database]
mov byte [edx - 3], cl
mov ecx, eax
and eax, 0xf
shr cx, 4
movzx eax, byte [eax + str.0123456789abcdefopen_database]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefopen_database]
mov byte [edx - 1], al
mov byte [edx - 2], cl
mov ecx, ebx
jmp 0x402000
mov eax, 0x745c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402000
mov eax, 0x225c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402000
mov eax, 0x725c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402000
mov eax, 0x725c
add edx, 2
mov ebx, ecx
mov word [edx - 2], ax
jmp 0x401d90
mov eax, 0x225c
add edx, 2
mov ebx, ecx
mov word [edx - 2], ax
jmp 0x401d90
lea ebx, [eax - 0x20]
cmp bx, 0x5e
jbe 0x4023c2
mov ebx, eax
mov byte [edx], 0x5c
add edx, 5
shr bx, 0xc
movzx ebx, bx
movzx ebx, byte [ebx + str.0123456789abcdefopen_database]
mov byte [edx - 4], bl
mov ebx, eax
shr bx, 8
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefopen_database]
mov byte [edx - 3], bl
mov ebx, eax
and eax, 0xf
shr bx, 4
movzx eax, byte [eax + str.0123456789abcdefopen_database]
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefopen_database]
mov byte [edx - 1], al
mov byte [edx - 2], bl
mov ebx, ecx
jmp 0x401d90
mov eax, 0x745c
add edx, 2
mov ebx, ecx
mov word [edx - 2], ax
jmp 0x401d90
movzx eax, word [ebp - 0x102c]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.5
jmp 0x401f2e
mov byte [edx], al
mov ebx, ecx
add edx, 1
jmp 0x401b11
movzx eax, word [ebp - 0x1030]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.5
jmp 0x402091
movzx eax, word [ebp - 0x1030]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.5
jmp 0x4020ef
mov byte [edx], al
mov ecx, ebx
add edx, 1
jmp 0x402000
mov byte [edx], al
mov ebx, ecx
add edx, 1
jmp 0x401d90
mov eax, str._null_
jmp 0x402091
mov eax, str._null_
jmp 0x4020ef