Function at 0x401000
Capabilities:
Access peb ldr_data
Get process heap flags
Get process heap force flags
Hash data using sha1
Hash data using sha1 via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ecx, 0x9a
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x280]
mov esi, section..data
push ebx
sub esp, 0x34c
rep movsd dword es:[edi], dword [esi]
mov dword [esp], 0
call sub.gdi32.dll_CreateCompatibleDC
lea edx, [ebp - 0x2f8]
mov dword [ebp - 0x294], 0
sub esp, 4
mov esi, eax
mov dword [ebp - 0x2fc], eax
lea eax, [ebp - 0x2ac]
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 0
mov dword [ebp - 0x2ac], 0x28
mov dword [ebp - 0x2a8], 0x10
mov dword [ebp - 0x2a4], 0xc
mov dword [ebp - 0x2a0], 0x200001
mov dword [ebp - 0x29c], 0
mov dword [ebp - 0x298], 0
call sub.gdi32.dll_CreateDIBSection
mov edx, dword [ebp - 0x2a4]
mov ecx, dword [ebp - 0x2a4]
mov ebx, eax
movzx eax, word [ebp - 0x29e]
imul eax, dword [ebp - 0x2a8]
sub esp, 0x18
sar edx, 0x1f
mov dword [esp + 4], 0x81
xor ecx, edx
mov dword [esp], str..._wine_dlls_msvfw32_tests_drawdib.c
add eax, 0x1f
sub ecx, edx
sar eax, 3
and eax, 0xfffffffc
imul eax, ecx
mov dword [ebp - 0x308], eax
call fcn.004092d0
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.CreateDIBSection_failed_n
setne al
mov dword [esp], eax
call fcn.00409540
mov dword [esp + 4], ebx
lea ebx, [ebp - 0x274]
mov dword [esp], esi
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2b4], 0
sub esp, 8
mov dword [ebp - 0x2b0], 0
mov dword [esp + 8], 0x300
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [ebp - 0x2c0], 0
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x2bc], 0
mov dword [ebp - 0x2d8], 0x28
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x2d4], 0x10
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x2d0], 0xc
mov dword [ebp - 0x2cc], 0x200001
mov dword [ebp - 0x2c8], 0
mov dword [ebp - 0x2c4], 0
mov dword [ebp - 0x318], eax
call eax
sub esp, 0xc
mov esi, eax
mov dword [ebp - 0x300], eax
mov dword [esp + 4], 0x87
lea edi, [esi + 4]
mov dword [esp], str..._wine_dlls_msvfw32_tests_drawdib.c
call fcn.004092d0
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Cant_allocate_memory_n
setne al
and edi, 0xfffffffc
mov dword [esp], eax
call fcn.00409540
mov eax, esi
mov dword [esi], 0x88888888
mov dword [esi + 0x2fc], 0x88888888
sub eax, edi
mov ecx, eax
mov eax, 0x88888888
add ecx, 0x300
shr ecx, 2
rep stosd dword es:[edi], eax
call sub.msvfw32.dll_DrawDibOpen
mov dword [esp + 4], 0x8b
mov dword [esp], str..._wine_dlls_msvfw32_tests_drawdib.c
mov esi, eax
mov dword [ebp - 0x304], eax
call fcn.004092d0
test esi, esi
mov dword [esp + 4], str.DrawDibOpen_failed_n
setne al
xor esi, esi
movzx eax, al
mov dword [esp], eax
call fcn.00409540
lea esi, [esi]
mov eax, dword [ebp - 0x308]
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_memset]
mov eax, dword [ebx - 0xc]
mov ecx, dword [ebx - 4]
mov dword [ebp - 0x2c0], 0
mov dword [ebp - 0x2bc], 0
mov edx, dword [ebx - 8]
mov dword [ebp - 0x2d4], eax
mov dword [esp + 0x28], eax
mov eax, dword [ebp - 0x300]
mov dword [ebp - 0x2b8], 0
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x2d8]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x2fc]
mov dword [ebp - 0x2b4], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x304]
mov dword [ebp - 0x2b0], 0
mov dword [esp], eax
mov dword [ebp - 0x2d8], 0x28
mov dword [ebp - 0x2d0], edx
mov dword [ebp - 0x2cc], 0x200001
mov dword [ebp - 0x2c8], 0
mov dword [ebp - 0x2c4], ecx
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
call sub.msvfw32.dll_DrawDibDraw
sub esp, 0x34
cmp byte [ebx], 0
mov edi, eax
je 0x401690
mov dword [esp + 4], 0x95
mov dword [esp], str..._wine_dlls_msvfw32_tests_drawdib.c
call fcn.004092d0
mov dword [esp + 8], esi
mov dword [esp + 4], str.__u__DrawDibDraw_failed__expected_success_n
mov dword [esp], edi
call fcn.00409540
test edi, edi
je 0x4015fe
cmp byte [ebx], 0
je 0x4015fe
mov eax, dword [ebp - 0x2f8]
mov ecx, dword [ebp - 0x2a8]
mov dword [ebp - 0x2f0], 0x14
mov edx, dword [ebp - 0x2a4]
movzx edi, word [ebp - 0x29e]
mov dword [ebp - 0x30c], eax
mov eax, dword [section..bss]
mov dword [ebp - 0x314], ecx
mov dword [ebp - 0x310], edx
test eax, eax
je 0x4016d0
lea edx, [ebp - 0x2f4]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x8004
mov dword [esp], eax
call sub.advapi32.dll_CryptCreateHash
sub esp, 0x14
test eax, eax
je 0x4016d0
mov ecx, dword [ebp - 0x314]
mov edx, dword [ebp - 0x310]
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x30c]
imul ecx, edi
mov edi, edx
sar edi, 0x1f
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2f4]
xor edx, edi
add ecx, 0x1f
sub edx, edi
mov dword [esp], eax
sar ecx, 3
and ecx, 0xfffffffc
imul edx, ecx
mov dword [esp + 8], edx
call sub.advapi32.dll_CryptHashData
lea eax, [ebp - 0x2f0]
sub esp, 0x10
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2f4]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov dword [esp], eax
call sub.advapi32.dll_CryptGetHashParam
sub esp, 0x14
cmp dword [ebp - 0x2f0], 0x14
jne 0x4016d0
lea eax, [ebp - 0x2f0]
lea edx, [ebp - 0x2ec]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2f4]
mov dword [esp + 8], edx
mov dword [esp + 4], 2
mov dword [esp], eax
call sub.advapi32.dll_CryptGetHashParam
mov eax, dword [ebp - 0x2f4]
sub esp, 0x14
mov dword [esp], eax
call sub.advapi32.dll_CryptDestroyHash
mov ecx, dword [ebp - 0x2f0]
sub esp, 4
lea ecx, [ecx + ecx + 1]
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x318]
call eax
mov edi, eax
mov eax, dword [ebp - 0x2f0]
sub esp, 0xc
test eax, eax
je 0x4016c4
xor eax, eax
lea edx, [ebp - 0x2ec]
nop
movzx ecx, byte [edx + eax]
shr cl, 4
movzx ecx, cl
movzx ecx, byte [ecx + 0x40c0c5]
mov byte [edi + eax*2], cl
movzx ecx, byte [edx + eax]
and ecx, 0xf
movzx ecx, byte [ecx + 0x40c0c5]
mov byte [edi + eax*2 + 1], cl
add eax, 1
cmp dword [ebp - 0x2f0], eax
ja 0x401560
mov byte [edi + eax*2], 0
mov dword [esp + 4], 0xa0
mov dword [esp], str..._wine_dlls_msvfw32_tests_drawdib.c
call fcn.004092d0
mov dword [esp + 4], ebx
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_strcmp]
mov dword [esp + 0x10], ebx
test eax, eax
mov dword [esp + 0xc], edi
sete al
mov dword [esp + 8], esi
movzx eax, al
mov dword [esp + 4], str.__u__got__s__expected__s_n
mov dword [esp], eax
call fcn.00409540
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
add esi, 1
add ebx, 0x38
cmp esi, 0xb
jne 0x401290
mov eax, dword [ebp - 0x304]
mov dword [esp], eax
call sub.msvfw32.dll_DrawDibClose
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0xa7
mov dword [esp], str..._wine_dlls_msvfw32_tests_drawdib.c
call fcn.004092d0
mov dword [esp], ebx
mov dword [esp + 4], str.DrawDibClose_failed_n
call fcn.00409540
mov esi, dword [ebp - 0x300]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], esi
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x2fc]
sub esp, 0xc
mov dword [esp], eax
call sub.gdi32.dll_DeleteDC
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x97
mov dword [esp], str..._wine_dlls_msvfw32_tests_drawdib.c
call fcn.004092d0
xor eax, eax
test edi, edi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.__u__DrawDibDraw_succeeded__expected_failed_n
mov dword [esp], eax
call fcn.00409540
jmp 0x4013be
mov byte [edi], 0
test edi, edi
jne 0x401595
nop
mov dword [esp + 4], 0x9d
mov dword [esp], str..._wine_dlls_msvfw32_tests_drawdib.c
call fcn.004092d0
mov dword [esp], str.This_platform_doesnt_support_SHA_1_hash_n
call fcn.00409650
jmp 0x4015fe