Function at 0x401990
Capabilities:
Get file size
Get process heap flags
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
mov eax, 0x1058
call fcn.00404420
sub esp, eax
mov eax, dword [esp + eax]
mov dword [ebp - 0x1040], edx
lea edx, [ebp - 0x102c]
mov esi, eax
mov dword [ebp - 0x1044], ecx
mov dword [ebp - 0x1024], 0
call dbg.open_database
test eax, eax
je 0x4019e0
lea esp, [ebp - 0xc]
mov ebx, 1
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, eax
mov eax, dword [ebp - 0x102c]
mov dword [esp], eax
call sym._MsiCloseHandle_4
lea eax, [ebp - 0x1028]
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], esi
call sym._StgOpenStorage_24
sub esp, 0x18
mov edi, eax
test eax, eax
jne 0x401bd0
mov edi, dword [ebp - 0x1040]
cmp word [edi], 0
mov eax, edi
je 0x402340
add eax, 2
cmp word [eax], 0
jne 0x401a44
sub eax, dword [ebp - 0x1040]
mov ebx, eax
sar ebx, 1
lea eax, [ebx + ebx + 4]
cmp ebx, 0x1f
ja 0x401b55
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sym._HeapAlloc_12
sub esp, 0xc
mov edi, eax
mov dword [ebp - 0x1048], eax
test eax, eax
je 0x401b55
mov edx, dword [ebp - 0x1040]
movzx eax, word [edx]
lea esi, [edx + 2]
mov ecx, eax
test eax, eax
je 0x401c94
mov dword [ebp - 0x103c], edx
jmp 0x401adb
movzx ecx, word [esi]
lea edx, [esi + 2]
sub ebx, 1
mov eax, ecx
test ecx, ecx
je 0x401ca0
mov dword [ebp - 0x103c], esi
mov esi, edx
cmp eax, 0x7f
ja 0x401b20
call sym._utf2mime
test eax, eax
js 0x401b20
lea ecx, [eax + 0x4800]
mov eax, dword [ebp - 0x103c]
movzx eax, word [eax + 2]
lea edx, [eax - 1]
cmp edx, 0x7e
ja 0x401b20
call sym._utf2mime
cmp eax, 0xffffffff
je 0x401b20
add eax, 0x3ffffc0
mov esi, dword [ebp - 0x103c]
shl eax, 6
add ecx, eax
add esi, 4
nop
add edi, 2
mov word [edi - 2], cx
cmp ebx, 0xffffffff
jne 0x401ac0
mov edi, dword [ebp - 0x1048]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], edi
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sym._HeapFree_12
sub esp, 0xc
mov dword [ebp - 0x1048], 0
mov ebx, 1
test byte [0x405004], 4
jne 0x401fa0
mov edi, dword [ebp - 0x1048]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], edi
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sym._HeapFree_12
mov eax, dword [ebp - 0x1024]
sub esp, 0xc
test eax, eax
je 0x401baf
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
mov eax, dword [ebp - 0x1028]
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
ret
test byte [0x405004], 4
je 0x4019cd
test esi, esi
je 0x402403
mov eax, esi
shr eax, 0x10
je 0x401f30
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call sym._IsBadStringPtrW_8
mov ebx, eax
sub esp, 8
mov eax, str._invalid_
test ebx, ebx
jne 0x401f43
cmp word [esi], 0
je 0x401c2a
lea esi, [esi]
nop
add ebx, 1
cmp word [esi + ebx*2], 0
jne 0x401c20
mov eax, 0x224c
lea edx, [ebp - 0x1016]
mov word [ebp - 0x1018], ax
lea esi, [esi]
lea ecx, [ebx - 1]
test ebx, ebx
jle 0x4022e0
lea eax, [ebp - 0xef6]
cmp edx, eax
ja 0x4022e0
add esi, 2
movzx eax, word [esi - 2]
cmp ax, 0xd
je 0x4020f0
ja 0x402060
cmp ax, 9
je 0x402180
cmp ax, 0xa
jne 0x402120
mov eax, 0x6e5c
add edx, 2
mov ebx, ecx
mov word [edx - 2], ax
jmp 0x401c40
mov edi, dword [ebp - 0x1048]
lea esi, [esi]
xor edx, edx
lea ecx, [ebp - 0x1024]
mov word [edi], dx
mov eax, dword [ebp - 0x1028]
mov edi, dword [ebp - 0x1048]
mov edx, dword [eax]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x1011
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 0x18
mov esi, eax
test eax, eax
je 0x401dc0
mov ebx, 1
test byte [0x405004], 4
je 0x401b71
mov eax, dword [ebp - 0x1048]
shr eax, 0x10
je 0x402604
mov edi, dword [ebp - 0x1048]
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call sym._IsBadStringPtrW_8
mov ebx, eax
sub esp, 8
mov eax, str._invalid_
test ebx, ebx
jne 0x4021c4
cmp word [edi], 0
je 0x401d4a
mov eax, edi
lea esi, [esi]
add ebx, 1
cmp word [eax + ebx*2], 0
jne 0x401d40
mov eax, 0x224c
mov ecx, dword [ebp - 0x1048]
mov dword [ebp - 0x103c], esi
lea edx, [ebp - 0x1016]
mov word [ebp - 0x1018], ax
lea eax, [ebp - 0xef6]
mov esi, eax
lea edi, [ebx - 1]
cmp edx, esi
ja 0x402193
test ebx, ebx
jle 0x402193
add ecx, 2
movzx eax, word [ecx - 2]
cmp ax, 0xd
je 0x4023d3
ja 0x402090
cmp ax, 9
je 0x4023c0
cmp ax, 0xa
jne 0x402360
mov eax, 0x6e5c
add edx, 2
mov ebx, edi
mov word [edx - 2], ax
jmp 0x401d70
mov eax, dword [ebp - 0x1044]
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 sym._CreateFileW_28
sub esp, 0x1c
mov dword [ebp - 0x103c], eax
cmp eax, 0xffffffff
je 0x402200
lea eax, [ebp - 0x1020]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x103c]
mov dword [esp], eax
call sym._GetFileSize_8
sub esp, 8
cmp eax, 0xffffffff
je 0x401f74
mov edx, dword [ebp - 0x1020]
test edx, edx
jne 0x401f74
mov esi, eax
mov eax, dword [ebp - 0x1024]
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 0x402474
mov dword [ebp - 0x1040], eax
mov ebx, dword [ebp - 0x103c]
jmp 0x401eb6
mov eax, dword [ebp - 0x101c]
test eax, eax
je 0x401ee9
mov edx, dword [ebp - 0x1024]
mov ecx, dword [edx]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1018]
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 0x401ee9
mov eax, dword [ebp - 0x101c]
xor edx, edx
sub esi, eax
sbb edi, edx
lea eax, [ebp - 0x101c]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x1018]
mov dword [esp + 8], 0x1000
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._ReadFile_20
sub esp, 0x14
test eax, eax
jne 0x401e75
mov eax, dword [ebp - 0x103c]
mov ebx, dword [ebp - 0x1040]
mov dword [esp], eax
call sym._CloseHandle_4
mov edx, edi
sub esp, 4
or edx, esi
jne 0x40262c
mov eax, dword [ebp - 0x1028]
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 8
jmp 0x401b71
movzx esi, si
mov dword [esp], str._04x
mov dword [esp + 4], esi
call sym._wine_dbg_sprintf.constprop.4
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.failed_to_open_storage__s__0x_08x__n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], 0x405004
mov dword [esp], 2
call sym._wine_dbg_log.constprop.2
jmp 0x4019cd
test byte [0x405004], 4
jne 0x402480
mov eax, dword [ebp - 0x103c]
mov ebx, 1
mov dword [esp], eax
call sym._CloseHandle_4
sub esp, 4
jmp 0x401b71
mov eax, dword [ebp - 0x1040]
shr eax, 0x10
je 0x402863
mov edi, dword [ebp - 0x1040]
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call sym._IsBadStringPtrW_8
mov ecx, eax
sub esp, 8
mov eax, str._invalid_
test ecx, ecx
jne 0x402438
cmp word [edi], 0
je 0x401fea
mov eax, edi
nop
add ecx, 1
cmp word [eax + ecx*2], 0
jne 0x401fe0
mov eax, 0x224c
mov edi, dword [ebp - 0x1040]
lea edx, [ebp - 0x1016]
lea esi, [ebp - 0xef6]
mov word [ebp - 0x1018], ax
lea esi, [esi]
nop
lea ebx, [ecx - 1]
test ecx, ecx
jle 0x40240d
cmp edx, esi
ja 0x40240d
add edi, 2
movzx eax, word [edi - 2]
cmp ax, 0xd
je 0x402683
ja 0x4020c0
cmp ax, 9
je 0x402700
cmp ax, 0xa
jne 0x4026a0
mov eax, 0x6e5c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402010
cmp ax, 0x22
je 0x402103
cmp ax, 0x5c
jne 0x402120
mov ebx, 0x5c5c
add edx, 2
mov word [edx - 2], bx
mov ebx, ecx
jmp 0x401c40
cmp ax, 0x22
je 0x4023f0
cmp ax, 0x5c
jne 0x402360
mov ebx, 0x5c5c
add edx, 2
mov word [edx - 2], bx
mov ebx, edi
jmp 0x401d70
cmp ax, 0x22
je 0x402670
cmp ax, 0x5c
jne 0x4026a0
mov eax, 0x5c5c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402010
mov eax, 0x725c
add edx, 2
mov ebx, ecx
mov word [edx - 2], ax
jmp 0x401c40
mov eax, 0x225c
add edx, 2
mov ebx, ecx
mov word [edx - 2], ax
jmp 0x401c40
lea ebx, [eax - 0x20]
cmp bx, 0x5e
jbe 0x402350
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 0x401c40
mov eax, 0x745c
add edx, 2
mov ebx, ecx
mov word [edx - 2], ax
jmp 0x401c40
mov esi, dword [ebp - 0x103c]
mov byte [edx], 0x22
lea eax, [edx + 1]
test edi, edi
jle 0x4021b3
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x1018]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.failed_to_create_stream__s__0x_08x__n
mov dword [esp + 8], str.add_stream
mov ebx, 1
mov dword [esp + 4], 0x405004
mov dword [esp], 2
call sym._wine_dbg_log.constprop.2
jmp 0x401b71
mov ebx, 1
test byte [0x405004], 4
je 0x401b71
mov eax, dword fs:[0x18]
mov esi, dword [eax + 0x34]
mov eax, dword [ebp - 0x1044]
test eax, eax
je 0x4028e5
shr eax, 0x10
je 0x4028a7
mov edi, dword [ebp - 0x1044]
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call sym._IsBadStringPtrW_8
mov ecx, eax
sub esp, 8
mov eax, str._invalid_
test ecx, ecx
jne 0x4025ef
cmp word [edi], 0
mov eax, edi
je 0x40226c
add ecx, 1
cmp word [eax + ecx*2], 0
jne 0x402262
mov eax, 0x224c
mov dword [ebp - 0x103c], esi
mov esi, dword [ebp - 0x1044]
lea edx, [ebp - 0x1016]
mov word [ebp - 0x1018], ax
lea edi, [ebp - 0xef6]
lea ebx, [ecx - 1]
cmp edx, edi
ja 0x4025be
test ecx, ecx
jle 0x4025be
add esi, 2
movzx eax, word [esi - 2]
cmp ax, 0xd
je 0x402833
ja 0x402310
cmp ax, 9
je 0x402820
cmp ax, 0xa
jne 0x4027c0
mov eax, 0x6e5c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402290
mov byte [edx], 0x22
lea eax, [edx + 1]
test ecx, ecx
jle 0x4022fa
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x1018]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
jmp 0x401f43
cmp ax, 0x22
je 0x402850
cmp ax, 0x5c
jne 0x4027c0
mov eax, 0x5c5c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402290
mov eax, 4
jmp 0x401a64
mov byte [edx], al
mov ebx, ecx
add edx, 1
jmp 0x401c40
lea ebx, [eax - 0x20]
cmp bx, 0x5e
jbe 0x402620
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, edi
jmp 0x401d70
mov eax, 0x745c
add edx, 2
mov ebx, edi
mov word [edx - 2], ax
jmp 0x401d70
mov eax, 0x725c
add edx, 2
mov ebx, edi
mov word [edx - 2], ax
jmp 0x401d70
mov eax, 0x225c
add edx, 2
mov ebx, edi
mov word [edx - 2], ax
jmp 0x401d70
mov eax, str._null_
jmp 0x401f43
mov byte [edx], 0x22
lea eax, [edx + 1]
test ebx, ebx
jle 0x402427
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x1018]
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], 0x405004
mov dword [esp], 2
call sym._wine_dbg_log.constprop.2
mov dword [ebp - 0x1048], 0
jmp 0x401b71
mov ebx, 1
jmp 0x401b71
mov eax, dword [ebp - 0x1044]
test eax, eax
je 0x4028db
shr eax, 0x10
je 0x40288b
mov edi, dword [ebp - 0x1044]
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call sym._IsBadStringPtrW_8
mov ecx, eax
sub esp, 8
mov eax, str._invalid_
test ecx, ecx
jne 0x402591
cmp word [edi], 0
mov eax, edi
je 0x4024da
lea esi, [esi]
nop
add ecx, 1
cmp word [eax + ecx*2], 0
jne 0x4024d0
mov eax, 0x224c
mov edi, dword [ebp - 0x1044]
lea edx, [ebp - 0x1016]
lea esi, [ebp - 0xef6]
mov word [ebp - 0x1018], ax
lea esi, [esi]
nop
lea ebx, [ecx - 1]
test ecx, ecx
jle 0x402566
cmp edx, esi
ja 0x402566
add edi, 2
movzx eax, word [edi - 2]
cmp ax, 0xd
je 0x402713
ja 0x402542
cmp ax, 9
je 0x402790
cmp ax, 0xa
jne 0x402730
mov eax, 0x6e5c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402500
cmp ax, 0x22
je 0x4027a3
cmp ax, 0x5c
jne 0x402730
mov eax, 0x5c5c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402500
mov byte [edx], 0x22
lea eax, [edx + 1]
test ebx, ebx
jle 0x402580
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x1018]
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], 0x405004
mov dword [esp], 2
call sym._wine_dbg_log.constprop.2
jmp 0x401f81
mov esi, dword [ebp - 0x103c]
mov byte [edx], 0x22
lea eax, [edx + 1]
test ebx, ebx
jle 0x4025de
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x1018]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.failed_to_open_file__s___u__n
jmp 0x4021d4
movzx eax, word [ebp - 0x1048]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.4
jmp 0x4021c4
mov byte [edx], al
mov ebx, edi
add edx, 1
jmp 0x401d70
mov ebx, 1
test byte [0x405004], 4
je 0x401b71
mov dword [esp + 0xc], str.failed_to_write_stream_contents_n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], 0x405004
mov dword [esp], 2
call sym._wine_dbg_log.constprop.2
jmp 0x401b71
mov eax, 0x225c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402010
mov eax, 0x725c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402010
lea ecx, [eax - 0x20]
cmp cx, 0x5e
jbe 0x40287f
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 0x402010
mov eax, 0x745c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402010
mov eax, 0x725c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402500
lea ecx, [eax - 0x20]
cmp cx, 0x5e
jbe 0x4028c3
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 0x402500
mov eax, 0x745c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402500
mov eax, 0x225c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402500
lea ecx, [eax - 0x20]
cmp cx, 0x5e
jbe 0x4028cf
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 0x402290
mov eax, 0x745c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402290
mov eax, 0x725c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402290
mov eax, 0x225c
add edx, 2
mov ecx, ebx
mov word [edx - 2], ax
jmp 0x402290
movzx eax, word [ebp - 0x1040]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.4
jmp 0x402438
mov byte [edx], al
mov ecx, ebx
add edx, 1
jmp 0x402010
movzx eax, word [ebp - 0x1044]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.4
jmp 0x402591
movzx eax, word [ebp - 0x1044]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.4
jmp 0x4025ef
mov byte [edx], al
mov ecx, ebx
add edx, 1
jmp 0x402500
mov byte [edx], al
mov ecx, ebx
add edx, 1
jmp 0x402290
mov eax, str._null_
jmp 0x402591
mov eax, str._null_
jmp 0x4025ef