Function at 0x4819b0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x28
mov eax, dword [esp + 0x2c]
push ebx
push edi
mov ebx, ecx
push 0x4dc164
push eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], 1
call fcn.00493dde
mov edi, eax
add esp, 8
mov dword [esp + 0x2c], edi
test edi, edi
jne 0x4819e7
pop edi
pop ebx
add esp, 0x28
ret 4
push esi
push edi
call fcn.00476fe4
push 0
push 1
push edi
mov esi, eax
call fcn.0048fcf7
push edi
push 1
lea ecx, [esp + 0x26]
push 1
push ecx
call fcn.0048ecff
push edi
push 1
lea edx, [esp + 0x37]
push 1
push edx
call fcn.0048ecff
push 0
push 0xc
push edi
call fcn.0048fcf7
push edi
push 1
lea eax, [esp + 0x58]
push 2
push eax
call fcn.0048ecff
add esp, 0x4c
push edi
push 1
lea ecx, [esp + 0x18]
push 2
push ecx
call fcn.0048ecff
push edi
push 1
lea edx, [esp + 0x25]
push 1
push edx
call fcn.0048ecff
movsx eax, word [esp + 0x30]
movsx ecx, word [esp + 0x34]
add esp, 0x20
push eax
push ecx
mov ecx, ebx
call fcn.0047b060
test eax, eax
jne 0x481a89
push 0x4ceb94
push 0x4dc7f8
call fcn.00476f98
add esp, 8
pop esi
pop edi
xor eax, eax
pop ebx
add esp, 0x28
ret 4
cmp byte [esp + 0xe], 1
jb 0x481aad
push 0x4ceb78
push 0x4dc7f8
call fcn.00476f98
add esp, 8
pop esi
pop edi
xor eax, eax
pop ebx
add esp, 0x28
ret 4
push ebp
push 0
push 0x12
push edi
call fcn.0048fcf7
sub esi, 0x12
push esi
call fcn.0048d59d
push edi
push 1
mov ebp, eax
push esi
push ebp
mov dword [esp + 0x50], ebp
call fcn.0048ecff
mov al, byte [esp + 0x33]
add esp, 0x20
mov esi, ebp
cmp al, 1
je 0x481ef5
cmp al, 2
je 0x481ef5
cmp al, 9
je 0x481b11
cmp al, 0xa
je 0x481b11
push 0x4ceb58
push 0x4dc7f8
call fcn.00476f98
add esp, 8
mov dword [esp + 0x28], 0
jmp 0x4820ed
lea edx, [esp + 0x24]
push edx
mov ecx, ebx
call fcn.0047a6f0
mov ebp, eax
movsx eax, word [ebx + 0x20]
lea ecx, [eax + eax - 2]
imul ecx, dword [esp + 0x24]
add ebp, ecx
mov cl, byte [esp + 0x11]
mov dword [esp + 0x20], ebp
cmp cl, 0x20
jne 0x481c69
mov dword [esp + 0x2c], 0
test eax, eax
jle 0x4820e4
nop
mov eax, dword [esp + 0x1c]
xor edx, edx
xor ebp, ebp
cmp dx, word [eax + 0x1e]
jge 0x481c3a
mov al, byte [esi]
movzx edx, al
and edx, 0x7f
inc esi
inc edx
test al, al
jns 0x481bd6
mov cl, byte [esi]
mov bl, byte [esi + 1]
inc esi
mov al, byte [esi + 1]
inc esi
movzx eax, al
movzx ecx, cl
and eax, 0xfffffff8
add esi, 2
shr ecx, 3
shl eax, 5
cmp byte [0x4efb84], 0
movzx edi, bl
je 0x481ba1
and edi, 0xfffffffc
or eax, edi
add eax, eax
jmp 0x481ba6
and edi, 0xfffffff8
or eax, edi
add eax, eax
add eax, eax
or eax, ecx
mov ecx, dword [esp + 0x20]
lea edi, [ecx + ebp*2]
test dl, 1
je 0x481bbe
mov word [edi], ax
add edi, 2
movzx ecx, ax
mov eax, ecx
shl eax, 0x10
or eax, ecx
mov ecx, edx
sar ecx, 1
test ecx, ecx
jle 0x481bd2
rep stosd dword es:[edi], eax
add ebp, edx
jmp 0x481c2a
test edx, edx
je 0x481c2a
mov edi, dword [esp + 0x20]
mov edi, edi
mov cl, byte [esi]
mov bl, byte [esi + 1]
inc esi
mov al, byte [esi + 1]
inc esi
mov byte [esp + 0x3c], al
movzx eax, al
movzx ecx, cl
and eax, 0xfffffff8
dec edx
add esi, 2
shr ecx, 3
shl eax, 5
cmp byte [0x4efb84], 0
movzx ebx, bl
je 0x481c16
and ebx, 0xfffffffc
or eax, ebx
add eax, eax
jmp 0x481c1b
and ebx, 0xfffffff8
or eax, ebx
add eax, eax
add eax, eax
or eax, ecx
mov word [edi + ebp*2], ax
inc ebp
test edx, edx
jne 0x481be0
mov edx, dword [esp + 0x1c]
movsx eax, word [edx + 0x1e]
cmp ebp, eax
jl 0x481b62
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
neg ecx
lea ecx, [edx + ecx*2]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
movsx ecx, word [edx + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x481b50
jmp 0x4820e4
cmp cl, 0x18
jne 0x481d97
mov dword [esp + 0x2c], 0
test eax, eax
jle 0x4820e4
mov eax, dword [esp + 0x1c]
xor edx, edx
xor ebp, ebp
cmp dx, word [eax + 0x1e]
jge 0x481d68
mov al, byte [esi]
movzx edx, al
and edx, 0x7f
inc esi
inc edx
test al, al
jns 0x481d06
mov cl, byte [esi]
mov bl, byte [esi + 1]
inc esi
mov al, byte [esi + 1]
inc esi
movzx eax, al
movzx ecx, cl
and eax, 0xfffffff8
inc esi
shr ecx, 3
shl eax, 5
cmp byte [0x4efb84], 0
movzx edi, bl
je 0x481cd1
and edi, 0xfffffffc
or eax, edi
add eax, eax
jmp 0x481cd6
and edi, 0xfffffff8
or eax, edi
add eax, eax
add eax, eax
or eax, ecx
mov ecx, dword [esp + 0x20]
lea edi, [ecx + ebp*2]
test dl, 1
je 0x481cee
mov word [edi], ax
add edi, 2
movzx ecx, ax
mov eax, ecx
shl eax, 0x10
or eax, ecx
mov ecx, edx
sar ecx, 1
test ecx, ecx
jle 0x481d02
rep stosd dword es:[edi], eax
add ebp, edx
jmp 0x481d58
test edx, edx
je 0x481d58
mov edi, dword [esp + 0x20]
mov edi, edi
mov cl, byte [esi]
mov bl, byte [esi + 1]
inc esi
mov al, byte [esi + 1]
inc esi
mov byte [esp + 0x3c], al
movzx eax, al
movzx ecx, cl
and eax, 0xfffffff8
dec edx
inc esi
shr ecx, 3
shl eax, 5
cmp byte [0x4efb84], 0
movzx ebx, bl
je 0x481d44
and ebx, 0xfffffffc
or eax, ebx
add eax, eax
jmp 0x481d49
and ebx, 0xfffffff8
or eax, ebx
add eax, eax
add eax, eax
or eax, ecx
mov word [edi + ebp*2], ax
inc ebp
test edx, edx
jne 0x481d10
mov edx, dword [esp + 0x1c]
movsx eax, word [edx + 0x1e]
cmp ebp, eax
jl 0x481c94
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
neg ecx
lea ecx, [edx + ecx*2]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
movsx ecx, word [edx + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x481c82
jmp 0x4820e4
cmp cl, 0x10
jne 0x4820dc
mov dword [esp + 0x2c], 0
test eax, eax
jle 0x4820e4
mov eax, dword [esp + 0x1c]
xor edx, edx
xor ebx, ebx
cmp dx, word [eax + 0x1e]
jge 0x481ecd
mov al, byte [esi]
movzx edi, al
and edi, 0x7f
inc esi
inc edi
test al, al
jns 0x481e49
movzx ecx, word [esi]
mov dword [esp + 0x3c], ecx
shr word [esp + 0x3c], 5
mov eax, dword [esp + 0x3c]
mov dl, byte [esp + 0x3c]
shr eax, 5
and cl, 0x1f
add al, al
add cl, cl
add al, al
add cl, cl
add al, al
add cl, cl
add dl, dl
movzx eax, al
add dl, dl
movzx ecx, cl
and eax, 0xfffffff8
add dl, dl
add esi, 2
shr ecx, 3
shl eax, 5
cmp byte [0x4efb84], 0
movzx edx, dl
je 0x481e28
and edx, 0xfffffffc
or eax, edx
add eax, eax
jmp 0x481e2d
and edx, 0xfffffff8
or eax, edx
add eax, eax
add eax, eax
or eax, ecx
push edi
push eax
lea edx, [ebp + ebx*2]
push edx
call fcn.0047a4b0
add esp, 0xc
add ebx, edi
jmp 0x481ebd
test edi, edi
je 0x481ebd
movzx eax, word [esi]
mov dword [esp + 0x3c], eax
shr word [esp + 0x3c], 5
mov dl, byte [esp + 0x3c]
mov cl, al
mov eax, dword [esp + 0x3c]
shr eax, 5
and cl, 0x1f
add al, al
add cl, cl
add al, al
add cl, cl
add al, al
add cl, cl
add dl, dl
movzx eax, al
add dl, dl
movzx ecx, cl
and eax, 0xfffffff8
add dl, dl
dec edi
add esi, 2
shr ecx, 3
shl eax, 5
cmp byte [0x4efb84], 0
movzx edx, dl
je 0x481ea8
and edx, 0xfffffffc
or eax, edx
add eax, eax
jmp 0x481ead
and edx, 0xfffffff8
or eax, edx
add eax, eax
add eax, eax
or eax, ecx
mov word [ebp + ebx*2], ax
inc ebx
test edi, edi
jne 0x481e51
mov edx, dword [esp + 0x1c]
movsx eax, word [edx + 0x1e]
cmp ebx, eax
jl 0x481dc2
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
neg ecx
lea ebp, [ebp + ecx*2]
movsx ecx, word [edx + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x481db0
jmp 0x4820e4
lea edx, [esp + 0x24]
push edx
mov ecx, ebx
call fcn.0047a6f0
movsx ecx, word [ebx + 0x20]
lea edx, [ecx + ecx - 2]
imul edx, dword [esp + 0x24]
add eax, edx
mov dl, byte [esp + 0x11]
cmp dl, 0x20
jne 0x481f9e
xor ebp, ebp
test ecx, ecx
jle 0x4820e4
mov ecx, ebx
movsx ecx, word [ecx + 0x1e]
lea ecx, [ecx]
xor edi, edi
test ecx, ecx
jle 0x481f83
mov dl, byte [esi]
mov bl, byte [esi + 1]
inc esi
mov cl, byte [esi + 1]
inc esi
movzx ecx, cl
movzx edx, dl
and ecx, 0xfffffff8
add esi, 2
shr edx, 3
shl ecx, 5
cmp byte [0x4efb84], 0
movzx ebx, bl
je 0x481f67
and ebx, 0xfffffffc
or ecx, ebx
add ecx, ecx
jmp 0x481f6c
and ebx, 0xfffffff8
or ecx, ebx
add ecx, ecx
add ecx, ecx
or ecx, edx
mov word [eax + edi*2], cx
mov ecx, dword [esp + 0x1c]
movsx ecx, word [ecx + 0x1e]
inc edi
cmp edi, ecx
jl 0x481f36
mov edx, dword [esp + 0x24]
neg edx
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x1c]
movsx edx, word [edx + 0x20]
inc ebp
cmp ebp, edx
jl 0x481f30
jmp 0x4820e4
cmp dl, 0x18
jne 0x482026
xor ebp, ebp
test ecx, ecx
jle 0x4820e4
mov ecx, ebx
movsx ecx, word [ecx + 0x1e]
xor edi, edi
test ecx, ecx
jle 0x48200b
lea ecx, [ecx]
mov dl, byte [esi]
mov bl, byte [esi + 1]
inc esi
mov cl, byte [esi + 1]
inc esi
movzx ecx, cl
movzx edx, dl
and ecx, 0xfffffff8
inc esi
shr edx, 3
shl ecx, 5
cmp byte [0x4efb84], 0
movzx ebx, bl
je 0x481fef
and ebx, 0xfffffffc
or ecx, ebx
add ecx, ecx
jmp 0x481ff4
and ebx, 0xfffffff8
or ecx, ebx
add ecx, ecx
add ecx, ecx
or ecx, edx
mov word [eax + edi*2], cx
mov ecx, dword [esp + 0x1c]
movsx ecx, word [ecx + 0x1e]
inc edi
cmp edi, ecx
jl 0x481fc0
mov edx, dword [esp + 0x24]
neg edx
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x1c]
movsx edx, word [edx + 0x20]
inc ebp
cmp ebp, edx
jl 0x481fb7
jmp 0x4820e4
cmp dl, 0x10
jne 0x4820dc
xor ebp, ebp
test ecx, ecx
jle 0x4820e4
mov ecx, ebx
movsx ecx, word [ecx + 0x1e]
nop
xor edi, edi
test ecx, ecx
jle 0x4820c0
lea ebx, [ebx]
movzx edx, word [esi]
mov dword [esp + 0x3c], edx
shr word [esp + 0x3c], 5
mov ecx, dword [esp + 0x3c]
mov bl, byte [esp + 0x3c]
shr ecx, 5
and dl, 0x1f
add cl, cl
add dl, dl
add cl, cl
add dl, dl
add cl, cl
add dl, dl
add bl, bl
movzx ecx, cl
add bl, bl
movzx edx, dl
and ecx, 0xfffffff8
add bl, bl
add esi, 2
shr edx, 3
shl ecx, 5
cmp byte [0x4efb84], 0
movzx ebx, bl
je 0x4820a4
and ebx, 0xfffffffc
or ecx, ebx
add ecx, ecx
jmp 0x4820a9
and ebx, 0xfffffff8
or ecx, ebx
add ecx, ecx
add ecx, ecx
or ecx, edx
mov word [eax + edi*2], cx
mov ecx, dword [esp + 0x1c]
movsx ecx, word [ecx + 0x1e]
inc edi
cmp edi, ecx
jl 0x482050
mov edx, dword [esp + 0x24]
neg edx
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x1c]
movsx edx, word [edx + 0x20]
inc ebp
cmp ebp, edx
jl 0x482040
jmp 0x4820e4
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x1c]
call fcn.0047a720
mov eax, dword [esp + 0x30]
push eax
call fcn.0048d634
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0048ed93
mov eax, dword [esp + 0x30]
add esp, 8
pop ebp
pop esi
pop edi
pop ebx
add esp, 0x28
ret 4