Function at 0x486b00
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x390
mov eax, dword [0x641a90]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x37c], eax
lea eax, [ebp - 0x384]
mov dword [ebp - 0x370], esi
mov dword [ebp - 0x380], 0
push dword [esi]
mov dword [ebp - 0x374], 0
push 1
push 2
push eax
call fcn.00595b79
add esp, 0x10
test eax, eax
jne 0x486b67
mov eax, 2
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x384], 0x50
jne case.default.0x486b9f
mov al, byte [ebp - 0x383]
sub al, 0x31
cmp al, 6
ja case.default.0x486b9f
lea eax, [ebp - 0x36c]
push eax
call fcn.00457d90
movsx eax, byte [ebp - 0x383]
add esp, 4
add eax, 0xffffffcf
cmp eax, 6
ja case.default.0x486b9f
mov ecx, 1
jmp dword [eax*4 + 0x4871f8]
movdqu xmm0, xmmword [str.Portable_Bitmap__Type_1___ASCII_]
mov al, byte [0x5d9728]
mov word [ebp - 0x352], cx
movdqu xmmword [ebp - 0x286], xmm0
mov byte [ebp - 0x266], al
movdqu xmm0, xmmword [0x5d9718]
mov dword [ebp - 0x380], ecx
movdqu xmmword [ebp - 0x276], xmm0
jmp 0x486d6b
movdqu xmm0, xmmword [str.Portable_Graymap__Type_2___ASCII_]
mov eax, 8
mov dword [ebp - 0x380], ecx
mov word [ebp - 0x352], ax
mov ax, word [0x5d974c]
movdqu xmmword [ebp - 0x286], xmm0
mov word [ebp - 0x266], ax
movdqu xmm0, xmmword [0x5d973c]
movdqu xmmword [ebp - 0x276], xmm0
jmp 0x486d6b
movdqu xmm0, xmmword [str.Portable_Pixmap__Type_3___ASCII_]
mov eax, 0x18
mov dword [ebp - 0x380], ecx
mov word [ebp - 0x352], ax
mov al, byte [0x5d9770]
movdqu xmmword [ebp - 0x286], xmm0
mov byte [ebp - 0x266], al
movdqu xmm0, xmmword [0x5d9760]
movdqu xmmword [ebp - 0x276], xmm0
jmp 0x486d6b
movdqu xmm0, xmmword [str.Portable_Bitmap__Type_4___Binary_]
mov ax, word [0x5d9794]
mov word [ebp - 0x352], cx
movdqu xmmword [ebp - 0x286], xmm0
mov word [ebp - 0x266], ax
movdqu xmm0, xmmword [0x5d9784]
movdqu xmmword [ebp - 0x276], xmm0
jmp 0x486d6b
movdqu xmm0, xmmword [str.Portable_Graymap__Type_5___Binary_]
mov eax, 8
mov word [ebp - 0x352], ax
mov ax, word [0x5d97b8]
movdqu xmmword [ebp - 0x286], xmm0
mov word [ebp - 0x266], ax
movdqu xmm0, xmmword [0x5d97a8]
mov al, byte [0x5d97ba]
mov byte [ebp - 0x264], al
movdqu xmmword [ebp - 0x276], xmm0
jmp 0x486d6b
movdqu xmm0, xmmword [str.Portable_Pixmap__Type_6___Binary_]
mov eax, 0x18
mov word [ebp - 0x352], ax
mov ax, word [0x5d97dc]
movdqu xmmword [ebp - 0x286], xmm0
mov word [ebp - 0x266], ax
movdqu xmm0, xmmword [0x5d97cc]
movdqu xmmword [ebp - 0x276], xmm0
jmp 0x486d6b
lea eax, [ebp - 0x374]
push eax
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x378]
push eax
push esi
call fcn.00487310
movdqu xmm0, xmmword [str.XV_visual_schnauzer]
mov eax, 8
add esp, 0x10
mov word [ebp - 0x352], ax
mov eax, dword [0x5d97f0]
movdqu xmmword [ebp - 0x286], xmm0
mov dword [ebp - 0x276], eax
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x486d8a
lea edx, [ebp - 0x286]
sub edx, ecx
lea ebx, [ebx]
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x486d80
lea eax, [ebp - 0x374]
push eax
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x378]
push eax
push esi
call fcn.00487310
movzx eax, ax
add esp, 0x10
test ax, ax
jne 0x4871e9
lea eax, [ebp - 0x374]
push eax
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x388]
push eax
push esi
call fcn.00487310
movzx eax, ax
add esp, 0x10
test ax, ax
jne 0x4871e9
mov cx, word [ebp - 0x352]
push edi
mov edi, 0xff
mov dword [ebp - 0x390], edi
cmp cx, 1
je 0x486e2e
lea eax, [ebp - 0x374]
push eax
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x390]
push eax
push esi
call fcn.00487310
movzx eax, ax
add esp, 0x10
test ax, ax
jne 0x4871e8
mov cx, word [ebp - 0x352]
mov edi, dword [ebp - 0x390]
mov edx, dword [ebp - 0x378]
push ebx
lea eax, [edx - 1]
cmp eax, 0x7cfe
ja 0x4871a8
mov ebx, dword [ebp - 0x388]
lea eax, [ebx - 1]
cmp eax, 0x7cfe
ja 0x4871a8
test edi, edi
jle 0x4871a8
mov eax, 1
mov dword [ebp - 0x35c], edx
mov word [ebp - 0x354], ax
mov dword [ebp - 0x358], ebx
cmp cx, ax
jne 0x486e84
lea ebx, [edx + 7]
shr ebx, 3
jmp 0x486e97
xor ebx, ebx
cmp cx, 0x18
sete bl
lea ebx, [ebx*2 + 1]
imul ebx, edx
mov ax, word [ebp + 0x14]
mov dword [ebp - 0x34c], ebx
test ax, ax
jle 0x486eb3
cwde
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x348], eax
cmp word [ebp - 0x380], 0
je 0x486ed5
cmp cx, 1
jne 0x486ed5
mov ebx, edx
mov dword [ebp - 0x36c], 2
mov dword [ebp - 0x34c], ebx
cmp edi, 0xff
jle 0x486f3d
mov eax, dword [ebp - 0x388]
mov dword [ebp - 0x33c], eax
lea eax, [edi + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0x340], edx
mov dword [ebp - 0x330], 1
call fcn.00594730
movsd qword [ebp - 0x38c], xmm0
movsd xmm0, qword [0x5c3640]
call fcn.00594730
movsd xmm1, qword [ebp - 0x38c]
divsd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [ebp - 0x334], eax
lea eax, [ebx + ebx]
mov dword [ebp - 0x338], eax
cmp dword [ebp - 0x374], 0
mov ebx, dword [ebp - 0x37c]
je 0x486f5e
push 0xffffffffffffffff
lea eax, [ebp - 0x204]
push eax
push ebx
call fcn.004522a0
add esp, 0xc
lea eax, [ebp - 0x36c]
push eax
push ebx
call fcn.00456000
movzx ebx, ax
add esp, 8
test bx, bx
jne 0x487194
cmp dword [ebp - 0x358], 0
mov dword [ebp - 0x388], 0
jle 0x487152
cmp word [ebp - 0x380], 0
je 0x487030
xor esi, esi
cmp dword [ebp - 0x34c], esi
jle 0x487110
lea ecx, [ecx]
lea eax, [ebp - 0x374]
push eax
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x378]
push eax
push dword [ebp - 0x370]
call fcn.00487310
movzx ebx, ax
add esp, 0x10
test bx, bx
jne 0x487152
cmp edi, 0xffff
jne 0x486ffb
mov eax, dword [ebp - 0x360]
mov ecx, dword [ebp - 0x378]
shr ecx, 8
mov byte [eax + esi], cl
jmp 0x487022
mov ecx, dword [ebp - 0x360]
cmp edi, 0xff
je 0x487019
imul eax, dword [ebp - 0x378], 0xff
xor edx, edx
div edi
jmp 0x48701f
mov al, byte [ebp - 0x378]
mov byte [ecx + esi], al
inc esi
cmp esi, dword [ebp - 0x34c]
jl 0x486fb0
jmp 0x487110
cmp edi, 0xffff
jne 0x48707c
xor esi, esi
cmp dword [ebp - 0x34c], esi
jle 0x487110
mov edi, dword [ebp - 0x370]
lea esp, [esp]
push edi
call fcn.0045d240
movzx ecx, ax
add esp, 4
mov eax, dword [ebp - 0x360]
shr ecx, 8
mov byte [eax + esi], cl
inc esi
cmp esi, dword [ebp - 0x34c]
jl 0x487050
mov edi, dword [ebp - 0x390]
jmp 0x487110
cmp edi, 0xff
jle 0x4870c1
xor esi, esi
cmp dword [ebp - 0x34c], esi
jle 0x487110
push dword [ebp - 0x370]
call fcn.0045d240
movzx eax, ax
xor edx, edx
imul eax, eax, 0xff
add esp, 4
mov ecx, dword [ebp - 0x360]
div edi
mov byte [ecx + esi], al
inc esi
cmp esi, dword [ebp - 0x34c]
jl 0x487092
jmp 0x487110
push dword [esi]
push 1
push dword [ebp - 0x34c]
push dword [ebp - 0x360]
call fcn.00595b79
add esp, 0x10
test eax, eax
je 0x48714d
cmp edi, 0xff
je 0x487116
xor esi, esi
cmp dword [ebp - 0x34c], esi
jle 0x487110
nop
mov ecx, dword [ebp - 0x360]
xor edx, edx
movzx eax, byte [ecx + esi]
imul eax, eax, 0xff
div edi
mov byte [ecx + esi], al
inc esi
cmp esi, dword [ebp - 0x34c]
jl 0x4870f0
mov esi, dword [ebp - 0x370]
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp - 0x37c]
call fcn.004585b0
movzx ebx, ax
add esp, 0x10
test bx, bx
jne 0x487152
mov eax, dword [ebp - 0x388]
inc eax
mov dword [ebp - 0x388], eax
cmp eax, dword [ebp - 0x358]
jl 0x486f91
jmp 0x487152
mov ebx, 4
cmp word [ebp - 0x352], 1
push 0
push 0
jne 0x487184
push 1
push dword [ebp - 0x37c]
call fcn.00453f80
add esp, 0x10
mov ax, bx
pop ebx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
push 0
push dword [ebp - 0x37c]
call fcn.00453f80
add esp, 0x10
mov ax, bx
pop ebx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
movdqu xmm0, xmmword [str.Portable_Bitmap_:_Bad_pictures_size__]
mov ecx, dword [ebp - 0x37c]
pop ebx
movdqu xmmword [ecx + 0x44], xmm0
movdqu xmm0, xmmword [0x5d9804]
movdqu xmmword [ecx + 0x54], xmm0
mov eax, dword [0x5d9814]
mov dword [ecx + 0x64], eax
mov ax, word [0x5d9818]
mov word [ecx + 0x68], ax
mov al, byte [0x5d981a]
mov byte [ecx + 0x6a], al
mov eax, 9
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.005920c1
mov esp, ebp
pop ebp
ret