Function at 0x471270
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x190
mov eax, dword [0x641a90]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov dword [ebp - 0x190], eax
xor bh, bh
push esi
movsx ax, byte [eax + 0xfd]
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0x184], esi
movzx edi, ax
lea eax, [ebp - 0x174]
push eax
lea eax, [ebp - 0x178]
mov dword [ebp - 0x17c], edi
push eax
lea eax, [ebp - 0x18c]
mov dword [ebp - 0x178], 0
push eax
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x188]
push eax
push esi
call fcn.00471990
add esp, 0x18
test ax, ax
je 0x471316
push 0
push 0
push dword [esi]
call fcn.00595cb4
lea eax, [ebp - 0x18c]
push eax
lea eax, [ebp - 0x180]
push eax
push esi
call fcn.00471830
movzx eax, ax
add esp, 0x18
test ax, ax
jne 0x4717fe
mov bh, 1
test di, di
jle 0x471321
cmp di, 6
jle 0x47132c
mov edi, 1
mov dword [ebp - 0x17c], edi
movsx ecx, di
mov edi, dword [ebp - 0x18c]
mov eax, edi
cdq
idiv ecx
mov eax, dword [ebp - 0x17c]
mov ecx, 1
test edx, edx
mov dword [ebp - 0x188], edi
cmovne eax, ecx
mov dword [ebp - 0x17c], eax
lea eax, [ebp - 0x16c]
push eax
call fcn.00457d90
mov ecx, dword [ebp - 0x178]
add esp, 4
test ecx, ecx
jne 0x471385
lea eax, [ebp - 0x86]
push str.HP_Grob_Bitmap_file
push eax
call fcn.005933b1
add esp, 8
jmp 0x4713bd
test bh, bh
je 0x4713a0
push ecx
lea eax, [ebp - 0x86]
push str.HP__d_Grob_Ascii_Bitmap_file
push eax
call fcn.005933b1
add esp, 0xc
jmp 0x4713bd
movsx eax, byte [ebp - 0x174]
push eax
push ecx
lea eax, [ebp - 0x86]
push str.HP__d_Grob__Rev__c__Bitmap_file
push eax
call fcn.005933b1
add esp, 0x10
mov bl, byte [ebp + 0x10]
test bl, bl
je 0x471438
mov dword [ebp - 0x158], edi
test esi, esi
je 0x471405
mov edx, dword [esi + 0x84]
mov ecx, edx
lea esi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4713e0
sub ecx, esi
lea eax, [edx - 5]
add eax, ecx
push str..gro2
push eax
call fcn.00452150
add esp, 8
mov esi, 2
test eax, eax
je 0x47140a
mov esi, 4
mov edi, dword [ebp - 0x180]
mov eax, 1
mov word [ebp - 0x154], ax
mov eax, edi
movsx ecx, si
cdq
idiv ecx
mov dword [ebp - 0x17c], 1
mov ecx, eax
mov dword [ebp - 0x15c], ecx
jmp 0x471478
mov edi, dword [ebp - 0x180]
mov esi, 1
mov eax, edi
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x17c]
movsx ecx, ax
mov eax, dword [ebp - 0x18c]
cdq
idiv ecx
mov ecx, edi
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x17c]
mov word [ebp - 0x154], ax
mov eax, edi
mov word [ebp - 0x152], si
cdq
and edx, 3
add eax, edx
sar eax, 2
and edi, 0x80000003
jns 0x471497
dec edi
or edi, 0xfffffffc
inc edi
je 0x47149a
inc eax
test al, 1
je 0x47149f
inc eax
test bl, bl
je 0x4714ca
movsx eax, si
imul eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebp - 0x14c], eax
and ecx, 0x80000001
jns 0x4714c5
dec ecx
or ecx, 0xfffffffe
inc ecx
je 0x4714d5
inc eax
jmp 0x4714cf
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x14c], eax
mov edi, dword [ebp - 0x18c]
imul eax, edi
push eax
call fcn.00593e38
mov esi, eax
add esp, 4
mov dword [ebp - 0x180], esi
test esi, esi
jne 0x471507
pop edi
lea eax, [esi + 1]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
lea eax, [ebp - 0x16c]
push eax
push dword [ebp - 0x190]
call fcn.00456000
movzx eax, ax
add esp, 8
mov dword [ebp - 0x174], eax
test ax, ax
jne 0x4717e7
test bh, bh
je 0x471615
test edi, edi
jle 0x47172d
mov ecx, dword [ebp - 0x14c]
xor edi, edi
test ecx, ecx
jle 0x471604
mov edi, edi
mov eax, dword [ebp - 0x184]
push dword [eax]
lea eax, [ebp - 0x16d]
push 1
push 1
push eax
call fcn.00595b79
add esp, 0x10
test eax, eax
je 0x4715f3
mov al, byte [ebp - 0x16d]
cmp al, 0x39
ja 0x471581
add al, 0xd0
jmp 0x471583
add al, 0xc9
mov byte [ebp - 0x16d], al
test bl, bl
jne 0x471596
movzx eax, al
mov al, byte [eax + 0x637d84]
shl al, 4
mov byte [esi], al
mov eax, dword [ebp - 0x184]
push dword [eax]
lea eax, [ebp - 0x16d]
push 1
push 1
push eax
call fcn.00595b79
mov al, byte [ebp - 0x16d]
add esp, 0x10
cmp al, 0x39
ja 0x4715c4
add al, 0xd0
jmp 0x4715c6
add al, 0xc9
mov byte [ebp - 0x16d], al
test bl, bl
jne 0x4715d9
movzx eax, al
mov al, byte [eax + 0x637d84]
or byte [esi], al
inc edi
mov ecx, dword [ebp - 0x14c]
inc esi
cmp edi, ecx
jl 0x471550
mov eax, dword [ebp - 0x174]
jmp 0x471604
mov ecx, dword [ebp - 0x14c]
mov eax, 4
mov dword [ebp - 0x174], eax
dec dword [ebp - 0x188]
jne 0x471544
jmp 0x471709
test edi, edi
jle 0x47172d
mov ecx, dword [ebp - 0x14c]
xor edi, edi
test ecx, ecx
jle 0x4716fd
lea ecx, [ecx]
mov eax, dword [ebp - 0x184]
push dword [eax]
lea eax, [ebp - 0x16d]
push 1
push 1
push eax
call fcn.00595b79
add esp, 0x10
test eax, eax
je 0x4716ec
test bl, bl
je 0x4716ab
cmp word [ebp - 0x152], 2
jne 0x471698
mov al, byte [ebp - 0x16d]
shr al, 6
mov byte [esi], al
mov dl, byte [ebp - 0x16d]
shr dl, 2
and dl, 0xc
or dl, al
mov byte [esi], dl
mov cl, byte [ebp - 0x16d]
and cl, 0xc
shl cl, 2
or cl, dl
mov byte [esi], cl
movzx eax, byte [ebp - 0x16d]
shl al, 6
jmp 0x4716d0
mov cl, byte [ebp - 0x16d]
shr cl, 4
mov byte [esi], cl
mov al, byte [ebp - 0x16d]
jmp 0x4716cd
movzx eax, byte [ebp - 0x16d]
shr eax, 4
mov cl, byte [eax + 0x637d84]
mov byte [esi], cl
movzx eax, byte [ebp - 0x16d]
and eax, 0xf
mov al, byte [eax + 0x637d84]
shl al, 4
or al, cl
inc edi
mov byte [esi], al
inc esi
mov ecx, dword [ebp - 0x14c]
cmp edi, ecx
jl 0x471630
mov eax, dword [ebp - 0x174]
jmp 0x4716fd
mov ecx, dword [ebp - 0x14c]
mov eax, 4
mov dword [ebp - 0x174], eax
dec dword [ebp - 0x188]
jne 0x471623
test ax, ax
je 0x471733
mov esi, dword [ebp - 0x174]
push 0
push 0
push 1
push dword [ebp - 0x190]
call fcn.00453f80
add esp, 0x10
jmp 0x4717ed
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x158]
xor edi, edi
mov ebx, dword [ebp - 0x180]
mov dword [ebp - 0x178], edi
test edx, edx
jle 0x47170e
mov eax, dword [ebp - 0x17c]
cwde
mov dword [ebp - 0x184], eax
xor esi, esi
test eax, eax
jle 0x47179f
lea edi, [eax - 1]
mov eax, esi
imul eax, ecx
push ecx
imul eax, edx
add eax, ebx
push eax
mov eax, edi
imul eax, ecx
add eax, dword [ebp - 0x160]
push eax
call fcn.00592150
mov ecx, dword [ebp - 0x14c]
inc esi
add esp, 0xc
dec edi
cmp esi, dword [ebp - 0x184]
jge 0x471799
mov edx, dword [ebp - 0x158]
jmp 0x471761
mov edi, dword [ebp - 0x178]
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp - 0x190]
add ebx, ecx
call fcn.004585b0
movzx esi, ax
add esp, 0x10
test si, si
jne 0x471714
mov edx, dword [ebp - 0x158]
inc edi
mov dword [ebp - 0x178], edi
cmp edi, edx
jge 0x471714
mov ecx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x184]
jmp 0x471758
mov esi, dword [ebp - 0x174]
push dword [ebp - 0x180]
call fcn.00592c4b
add esp, 4
mov ax, si
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005920c1
mov esp, ebp
pop ebp
ret