Function at 0x46cfb0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x28
mov eax, dword [esp + 0x2c]
push ebx
push edi
mov ebx, ecx
push 0x4b1b94
push eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], 1
call fcn.0047cd1e
mov edi, eax
add esp, 8
mov dword [esp + 0x2c], edi
test edi, edi
jne 0x46cfe7
pop edi
pop ebx
add esp, 0x28
ret 4
push esi
push edi
call fcn.00465662
push 0
push 1
push edi
mov esi, eax
call fcn.004795c7
push edi
push 1
lea ecx, [esp + 0x26]
push 1
push ecx
call fcn.004787ff
push edi
push 1
lea edx, [esp + 0x37]
push 1
push edx
call fcn.004787ff
push 0
push 0xc
push edi
call fcn.004795c7
push edi
push 1
lea eax, [esp + 0x58]
push 2
push eax
call fcn.004787ff
add esp, 0x4c
push edi
push 1
lea ecx, [esp + 0x18]
push 2
push ecx
call fcn.004787ff
push edi
push 1
lea edx, [esp + 0x25]
push 1
push edx
call fcn.004787ff
movsx eax, word [esp + 0x30]
movsx ecx, word [esp + 0x34]
add esp, 0x20
push eax
push ecx
mov ecx, ebx
call fcn.00467c90
test eax, eax
jne 0x46d089
push 0x4a9a6c
push 0x4b4a30
call fcn.00465616
add esp, 8
pop esi
pop edi
xor eax, eax
pop ebx
add esp, 0x28
ret 4
cmp byte [esp + 0xe], 1
jb 0x46d0ad
push 0x4a9a50
push 0x4b4a30
call fcn.00465616
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.004795c7
sub esi, 0x12
push esi
call fcn.00476b22
push edi
push 1
mov ebp, eax
push esi
push ebp
mov dword [esp + 0x50], ebp
call fcn.004787ff
mov al, byte [esp + 0x33]
add esp, 0x20
mov esi, ebp
cmp al, 1
je 0x46d4f5
cmp al, 2
je 0x46d4f5
cmp al, 9
je 0x46d111
cmp al, 0xa
je 0x46d111
push 0x4a9a30
push 0x4b4a30
call fcn.00465616
add esp, 8
mov dword [esp + 0x28], 0
jmp 0x46d6ed
lea edx, [esp + 0x24]
push edx
mov ecx, ebx
call fcn.00467390
mov ebp, eax
movsx eax, word [ebx + 0x10]
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 0x46d269
mov dword [esp + 0x2c], 0
test eax, eax
jle 0x46d6e4
nop
mov eax, dword [esp + 0x1c]
xor edx, edx
xor ebp, ebp
cmp dx, word [eax + 0xe]
jge 0x46d23a
mov al, byte [esi]
movzx edx, al
and edx, 0x7f
inc esi
inc edx
test al, al
jns 0x46d1d6
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 [0x4c02cc], 0
movzx edi, bl
je 0x46d1a1
and edi, 0xfffffffc
or eax, edi
add eax, eax
jmp 0x46d1a6
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 0x46d1be
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 0x46d1d2
rep stosd dword es:[edi], eax
add ebp, edx
jmp 0x46d22a
test edx, edx
je 0x46d22a
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 [0x4c02cc], 0
movzx ebx, bl
je 0x46d216
and ebx, 0xfffffffc
or eax, ebx
add eax, eax
jmp 0x46d21b
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 0x46d1e0
mov edx, dword [esp + 0x1c]
movsx eax, word [edx + 0xe]
cmp ebp, eax
jl 0x46d162
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 + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x46d150
jmp 0x46d6e4
cmp cl, 0x18
jne 0x46d397
mov dword [esp + 0x2c], 0
test eax, eax
jle 0x46d6e4
mov eax, dword [esp + 0x1c]
xor edx, edx
xor ebp, ebp
cmp dx, word [eax + 0xe]
jge 0x46d368
mov al, byte [esi]
movzx edx, al
and edx, 0x7f
inc esi
inc edx
test al, al
jns 0x46d306
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 [0x4c02cc], 0
movzx edi, bl
je 0x46d2d1
and edi, 0xfffffffc
or eax, edi
add eax, eax
jmp 0x46d2d6
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 0x46d2ee
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 0x46d302
rep stosd dword es:[edi], eax
add ebp, edx
jmp 0x46d358
test edx, edx
je 0x46d358
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 [0x4c02cc], 0
movzx ebx, bl
je 0x46d344
and ebx, 0xfffffffc
or eax, ebx
add eax, eax
jmp 0x46d349
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 0x46d310
mov edx, dword [esp + 0x1c]
movsx eax, word [edx + 0xe]
cmp ebp, eax
jl 0x46d294
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 + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x46d282
jmp 0x46d6e4
cmp cl, 0x10
jne 0x46d6dc
mov dword [esp + 0x2c], 0
test eax, eax
jle 0x46d6e4
mov eax, dword [esp + 0x1c]
xor edx, edx
xor ebx, ebx
cmp dx, word [eax + 0xe]
jge 0x46d4cd
mov al, byte [esi]
movzx edi, al
and edi, 0x7f
inc esi
inc edi
test al, al
jns 0x46d449
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 [0x4c02cc], 0
movzx edx, dl
je 0x46d428
and edx, 0xfffffffc
or eax, edx
add eax, eax
jmp 0x46d42d
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.00467150
add esp, 0xc
add ebx, edi
jmp 0x46d4bd
test edi, edi
je 0x46d4bd
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 [0x4c02cc], 0
movzx edx, dl
je 0x46d4a8
and edx, 0xfffffffc
or eax, edx
add eax, eax
jmp 0x46d4ad
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 0x46d451
mov edx, dword [esp + 0x1c]
movsx eax, word [edx + 0xe]
cmp ebx, eax
jl 0x46d3c2
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 + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x46d3b0
jmp 0x46d6e4
lea edx, [esp + 0x24]
push edx
mov ecx, ebx
call fcn.00467390
movsx ecx, word [ebx + 0x10]
lea edx, [ecx + ecx - 2]
imul edx, dword [esp + 0x24]
add eax, edx
mov dl, byte [esp + 0x11]
cmp dl, 0x20
jne 0x46d59e
xor ebp, ebp
test ecx, ecx
jle 0x46d6e4
mov ecx, ebx
movsx ecx, word [ecx + 0xe]
lea ecx, [ecx]
xor edi, edi
test ecx, ecx
jle 0x46d583
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 [0x4c02cc], 0
movzx ebx, bl
je 0x46d567
and ebx, 0xfffffffc
or ecx, ebx
add ecx, ecx
jmp 0x46d56c
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 + 0xe]
inc edi
cmp edi, ecx
jl 0x46d536
mov edx, dword [esp + 0x24]
neg edx
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x1c]
movsx edx, word [edx + 0x10]
inc ebp
cmp ebp, edx
jl 0x46d530
jmp 0x46d6e4
cmp dl, 0x18
jne 0x46d626
xor ebp, ebp
test ecx, ecx
jle 0x46d6e4
mov ecx, ebx
movsx ecx, word [ecx + 0xe]
xor edi, edi
test ecx, ecx
jle 0x46d60b
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 [0x4c02cc], 0
movzx ebx, bl
je 0x46d5ef
and ebx, 0xfffffffc
or ecx, ebx
add ecx, ecx
jmp 0x46d5f4
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 + 0xe]
inc edi
cmp edi, ecx
jl 0x46d5c0
mov edx, dword [esp + 0x24]
neg edx
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x1c]
movsx edx, word [edx + 0x10]
inc ebp
cmp ebp, edx
jl 0x46d5b7
jmp 0x46d6e4
cmp dl, 0x10
jne 0x46d6dc
xor ebp, ebp
test ecx, ecx
jle 0x46d6e4
mov ecx, ebx
movsx ecx, word [ecx + 0xe]
nop
xor edi, edi
test ecx, ecx
jle 0x46d6c0
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 [0x4c02cc], 0
movzx ebx, bl
je 0x46d6a4
and ebx, 0xfffffffc
or ecx, ebx
add ecx, ecx
jmp 0x46d6a9
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 + 0xe]
inc edi
cmp edi, ecx
jl 0x46d650
mov edx, dword [esp + 0x24]
neg edx
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x1c]
movsx edx, word [edx + 0x10]
inc ebp
cmp ebp, edx
jl 0x46d640
jmp 0x46d6e4
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x1c]
call fcn.004673c0
mov eax, dword [esp + 0x30]
push eax
call fcn.00476a7f
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0047766d
mov eax, dword [esp + 0x30]
add esp, 8
pop ebp
pop esi
pop edi
pop ebx
add esp, 0x28
ret 4