Function at 0x41c556
Capabilities:
Get file size
Hash data with crc32
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x558
lea eax, [ebp - 0x54c]
push 0x208
push 0
push eax
call dword [sym.imp.NTDLL.DLL_memset]
add esp, 0xc
push 0x24454c
push 0x49465f4d
push 0x4f525f4b
push 0x434f5453
push 0x5f45534f
push 0x4f484324
mov dword [ebp - 0x13c], esp
push 0
mov dword [ebp - 0x138], esp
push 0
push 0x2a002e
push 0x2a0000
push 0x730065
push 0x6c0069
push 0x660020
push 0x6c006c
push 0x410000
push 0x780065
push 0x68002e
push 0x2a0000
push 0x65006c
push 0x690066
push 0x200078
push 0x650048
push 0x6e
push 0x690062
push 0x2e002a
push 0x65
push 0x6c0069
push 0x660020
push 0x790072
push 0x61006e
push 0x690042
mov dword [ebp - 0x134], esp
push 0
push 0
push 0
push 0
push 0
push 0x1800
push 0
push 0
push 0
push 0
push 0x104
push 0
push 1
push 0
push 0
push 0
push 0
push 0
push 0x4c
mov dword [ebp - 0x130], esp
mov eax, dword [ebx + 0x8ac]
mov dword [esp + 4], eax
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleA]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x134]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x54c]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x138]
mov dword [esp + 0x2c], eax
lea eax, [ebp - 0x344]
push eax
push dword [ebp - 0x13c]
push dword [ebx + 0x184]
call dword [ebx + 0x2c]
lea eax, [ebp - 0x344]
mov dword [esp + 0x30], eax
push esp
call dword [sym.imp.COMDLG32.DLL_GetOpenFileNameW]
add esp, 0x4c
add esp, 0x60
add esp, 4
add esp, 0x18
cmp eax, 0
je 0x41cbef
mov eax, dword [esi + 0x14]
push eax
push 0x40
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
mov dword [ebp - 0x550], eax
lea eax, [ebp - 0x54c]
push 0
push pe_nt_image_headers32
push 3
push 0
push 0
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
cmp eax, 0xffffffff
jne 0x41c71f
push 0xa0d
push 0x24454c49
push 0x465f474e
push 0x494e4550
push 0x4f5f524f
push 0x52524524
mov dword [ebp - 0x12c], esp
push esp
call dword [ebx + 0x30]
add esp, 0x18
jmp 0x41cbe3
mov dword [ebp - 0x558], eax
push 0
push dword [ebp - 0x558]
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov ecx, dword [esi + 0x14]
cmp eax, ecx
je 0x41c795
push 0xa
push 0xd245345
push 0x54594224
push 0x20642520
push 0x3a244542
push 0x5f545355
push 0x4d5f455a
push 0x49535f45
push 0x4c494624
mov dword [ebp - 0x128], esp
lea eax, [ebp - 0x344]
push dword [esi + 0x14]
push dword [ebp - 0x128]
push eax
call dword [sym.imp.USER32.DLL_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x344]
push eax
call dword [ebx + 0x30]
add esp, 0x24
jmp 0x41cbe3
lea eax, [ebp - 0x554]
push 0
push eax
push dword [esi + 0x14]
push dword [ebp - 0x550]
push dword [ebp - 0x558]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
push dword [ebp - 0x558]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push 0xa0d73
push 0x25203a24
push 0x44455443
push 0x454c4553
push 0x5f454c49
push 0x465f4b43
push 0x4f545324
mov dword [ebp - 0x18], esp
lea eax, [ebp - 0x54c]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
inc eax
lea ecx, [ebp - 0x124]
lea edx, [ebp - 0x54c]
push 0
push 0
push 0x104
push ecx
push eax
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_WideCharToMultiByte]
lea eax, [ebp - 0x124]
lea ecx, [ebp - 0x344]
push eax
push dword [ebp - 0x18]
push ecx
call dword [sym.imp.USER32.DLL_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x344]
push eax
call dword [ebx + 0x30]
add esp, 0x1c
pushal
xor eax, eax
mov ebx, dword [esi + 0x20]
xor edi, edi
cmp edi, dword [esi + 0x14]
jae 0x41c86f
movzx ecx, byte [ebx + edi]
cmp ch, 8
jae 0x41c86c
movzx edx, cl
xor edx, eax
shr eax, 1
shr cl, 1
test edx, 1
je 0x41c868
xor eax, 0xedb88320
inc ch
jmp 0x41c84d
inc edi
jmp 0x41c844
mov dword [ebp - 0x20], eax
xor eax, eax
mov ebx, dword [ebp - 0x550]
xor edi, edi
cmp edi, dword [esi + 0x14]
jae 0x41c8a7
movzx ecx, byte [ebx + edi]
cmp ch, 8
jae 0x41c8a4
movzx edx, cl
xor edx, eax
shr eax, 1
shr cl, 1
test edx, 1
je 0x41c8a0
xor eax, 0xedb88320
inc ch
jmp 0x41c885
inc edi
jmp 0x41c87c
mov dword [ebp - 0x1c], eax
popal
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x1c]
jne 0x41c99f
push 0x2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
push 0x2a2a2a2a
mov dword [ebp - 0x14], esp
push 0
push 0x24454d41
push 0x535f4548
push 0x545f4552
push 0x415f4b43
push 0x4f54535f
push 0x444e415f
push 0x454c4946
push 0x5f4e4553
push 0x4f48435f
push 0x474e494e
push 0x52415724
mov dword [ebp - 0x10], esp
push dword [ebp - 0x14]
call dword [ebx + 0x30]
push dword [ebp - 0x10]
call dword [ebx + 0x30]
push dword [ebp - 0x14]
call dword [ebx + 0x30]
add esp, 0x30
add esp, 0x70
jmp 0x41cbe3
push 0xa0d
push 0x24444554
push 0x43455252
push 0x4f435f4d
push 0x55534b43
push 0x45484324
mov dword [ebp - 0xc], esp
push 0xa0d
push 0x2444494c
push 0x41565f4d
push 0x55534b43
push 0x45484324
mov dword [ebp - 8], esp
push 0xa0d
push 0x24444e55
push 0x4f465f54
push 0x4f4e5f4d
push 0x55534b43
push 0x45484324
mov dword [ebp - 4], esp
xor eax, eax
xor ecx, ecx
cmp ecx, dword [esi + 0x14]
jae 0x41ca15
mov edx, dword [ebp - 0x550]
movzx edx, byte [edx + ecx]
add eax, edx
inc ecx
jmp 0x41ca01
and eax, 0xff
test eax, eax
jne 0x41ca61
xor eax, eax
xor ecx, ecx
cmp ecx, dword [esi + 0x14]
jae 0x41ca33
mov edx, dword [esi + 0x20]
movzx edx, byte [edx + ecx]
add eax, edx
inc ecx
jmp 0x41ca22
and eax, 0xff
test eax, eax
jne 0x41ca44
push dword [ebp - 8]
call dword [ebx + 0x30]
jmp 0x41ca5c
mov edx, dword [esi + 0x14]
sub edx, 0x80
add edx, dword [esi + 0x20]
mov cl, byte [edx]
sub cl, al
mov byte [edx], cl
push dword [ebp - 0xc]
call dword [ebx + 0x30]
jmp 0x41cbda
cmp dword [esi + 0x14], 0x80000
je 0x41ca73
cmp dword [esi + 0x14], 0x100000
jne 0x41cadd
xor eax, eax
mov ecx, 0x8000
cmp ecx, dword [esi + 0x14]
jae 0x41ca8e
mov edx, dword [ebp - 0x550]
movzx edx, byte [edx + ecx]
add eax, edx
inc ecx
jmp 0x41ca7a
and eax, 0xff
test eax, eax
jne 0x41cadd
xor eax, eax
mov ecx, 0x8000
cmp ecx, dword [esi + 0x14]
jae 0x41caaf
mov edx, dword [esi + 0x20]
movzx edx, byte [edx + ecx]
add eax, edx
inc ecx
jmp 0x41ca9e
and eax, 0xff
test eax, eax
jne 0x41cac0
push dword [ebp - 8]
call dword [ebx + 0x30]
jmp 0x41cad8
mov edx, dword [esi + 0x14]
sub edx, 0x80
add edx, dword [esi + 0x20]
mov cl, byte [edx]
sub cl, al
mov byte [edx], cl
push dword [ebp - 0xc]
call dword [ebx + 0x30]
jmp 0x41cbda
xor eax, eax
xor ecx, ecx
cmp ecx, dword [esi + 0x14]
jae 0x41caf8
mov edx, dword [ebp - 0x550]
movzx edx, word [edx + ecx]
xchg dh, dl
add eax, edx
inc ecx
inc ecx
jmp 0x41cae1
and eax, 0xffff
test eax, eax
jne 0x41cb4e
xor eax, eax
xor ecx, ecx
cmp ecx, dword [esi + 0x14]
jae 0x41cb19
mov edx, dword [esi + 0x20]
movzx edx, word [edx + ecx]
xchg dh, dl
add eax, edx
inc ecx
inc ecx
jmp 0x41cb05
and eax, 0xffff
test eax, eax
jne 0x41cb2a
push dword [ebp - 8]
call dword [ebx + 0x30]
jmp 0x41cb49
mov edx, dword [esi + 0x14]
sub edx, 0x80
add edx, dword [esi + 0x20]
mov cx, word [edx]
xchg ch, cl
sub cx, ax
xchg ch, cl
mov word [edx], cx
push dword [ebp - 0xc]
call dword [ebx + 0x30]
jmp 0x41cbda
cmp dword [esi + 0x14], 0x80000
je 0x41cb60
cmp dword [esi + 0x14], 0x100000
jne 0x41cbd4
xor eax, eax
mov ecx, 0x8000
cmp ecx, dword [esi + 0x14]
jae 0x41cb7e
mov edx, dword [ebp - 0x550]
movzx edx, word [edx + ecx]
xchg dh, dl
add eax, edx
inc ecx
inc ecx
jmp 0x41cb67
and eax, 0xffff
test eax, eax
jne 0x41cbd4
xor eax, eax
mov ecx, 0x8000
cmp ecx, dword [esi + 0x14]
jae 0x41cba2
mov edx, dword [esi + 0x20]
movzx edx, word [edx + ecx]
xchg dh, dl
add eax, edx
inc ecx
inc ecx
jmp 0x41cb8e
and eax, 0xffff
test eax, eax
jne 0x41cbb3
push dword [ebp - 8]
call dword [ebx + 0x30]
jmp 0x41cbd2
mov edx, dword [esi + 0x14]
sub edx, 0x80
add edx, dword [esi + 0x20]
mov cx, word [edx]
xchg ch, cl
sub cx, ax
xchg ch, cl
mov word [edx], cx
push dword [ebp - 0xc]
call dword [ebx + 0x30]
jmp 0x41cbda
push dword [ebp - 4]
call dword [ebx + 0x30]
add esp, 0x18
add esp, 0x14
add esp, 0x18
push dword [ebp - 0x550]
call dword [sym.imp.KERNEL32.DLL_GlobalFree]
leave
ret