Function at 0x4f9b3a
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov byte [0xa7b5f0], 0
mov eax, dword [0x6deb4c]
test eax, eax
je 0x4f9b5a
mov byte [0xa7b5f0], 1
mov eax, dword [0x6fee34]
cmp eax, 1
jne 0x4f9b7f
mov dword [0x6fee34], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x6deb4c]
test eax, eax
jne 0x4f9ba0
mov eax, dword [0x6e4684]
test eax, eax
je 0x4f9ba0
mov dword [0xa7ab40], 1
jmp 0x4fbabf
mov eax, dword [0x6fee34]
test eax, eax
jne 0x4fba7b
mov dword [0xa7b5f4], 0xffffffff
mov eax, dword [0x5820a0]
mov edx, dword [0x5820a4]
mov dword [0xa7b5f8], eax
mov dword [0xa7b5fc], edx
mov dword [0xa7b600], 0
jmp 0x4f9c4c
mov eax, dword [0xa7b600]
shl eax, 5
add eax, 0x6e4520
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa7b5f8]
mov edx, dword [0xa7b5fc]
cmp ebx, edx
jg 0x4f9c3f
cmp ebx, edx
jl 0x4f9c03
cmp ecx, eax
jae 0x4f9c3f
mov eax, dword [0xa7b600]
shl eax, 5
add eax, 0x6e4520
mov eax, dword [eax]
cmp eax, 3
jne 0x4f9c3f
mov eax, dword [0xa7b600]
shl eax, 5
add eax, 0x6e4520
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa7b5f8], eax
mov dword [0xa7b5fc], edx
mov eax, dword [0xa7b600]
mov dword [0xa7b5f4], eax
mov eax, dword [0xa7b600]
add eax, 1
mov dword [0xa7b600], eax
mov eax, dword [0xa7b600]
cmp eax, 2
setle al
test al, al
jne 0x4f9bd9
mov dword [0xa7b600], 0
jmp 0x4f9c96
mov eax, dword [0xa7b600]
shl eax, 5
add eax, 0x6e4520
mov eax, dword [eax]
cmp eax, 1
jne 0x4f9c89
mov eax, dword [0xa7b600]
mov dword [0xa7b5f4], eax
mov eax, dword [0xa7b600]
add eax, 1
mov dword [0xa7b600], eax
mov eax, dword [0xa7b600]
cmp eax, 2
setle al
test al, al
jne 0x4f9c6b
mov eax, dword [0xa7b5f4]
cmp eax, 0xffffffff
jne 0x4f9cc0
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.004a0343
jmp 0x4fbabf
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4520
mov dword [eax], 2
mov ecx, dword [0xa7b5f4]
mov eax, dword [0x5820a0]
mov edx, dword [0x5820a4]
shl ecx, 5
add ecx, 0x6e4520
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add eax, 1
adc edx, 0
mov dword [0x5820a0], eax
mov dword [0x5820a4], edx
mov eax, dword [0x6deb4c]
test eax, eax
je 0x4f9d55
mov dword [esp + 8], 1
fld qword [0x5b22c8]
fstp qword [esp]
call fcn.004c1aca
fstp qword [0xa7b608]
fld qword [0xa7b610]
fld qword [0xa7b608]
fsubp st(1)
fabs
fld qword [0x5b2450]
fucompi st(1)
fstp st(0)
ja 0x4fba1a
fld qword [0xa7b608]
fstp qword [0xa7b610]
mov eax, dword [0x6f5074]
test eax, eax
je 0x4fba1d
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa7b618], eax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa7b61c], eax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4f9de4
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x6e4694]
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa7b618], eax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x6e4690]
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa7b61c], eax
mov eax, dword [0xa7b618]
cmp eax, 0x200
jg 0x4f9e14
mov eax, dword [0xa7b61c]
cmp eax, 0x180
jg 0x4f9e14
mov eax, dword [0xa7b618]
add eax, eax
mov dword [0xa7b618], eax
mov eax, dword [0xa7b61c]
add eax, eax
mov dword [0xa7b61c], eax
mov dword [0xa7b620], 0xffffffff
mov dword [0xa7b624], 0xffffffff
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa7b618], eax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa7b61c], eax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4f9eaa
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x6e4694]
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa7b618], eax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x6e4690]
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa7b61c], eax
mov eax, dword [0xa7b618]
mov dword [0x6f5094], eax
mov eax, dword [0xa7b61c]
mov dword [0x6f5098], eax
mov dword [0xa7b628], 0
mov dword [0x6f509c], 0
mov eax, dword [0x6f5078]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4fb056
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x30]
mov dword [0xa7b62c], eax
mov eax, dword [0x6e4694]
mov edx, dword [0xa7b62c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa7b630], eax
mov eax, dword [0x6e4690]
mov edx, dword [0xa7b62c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa7b634], eax
mov eax, dword [0x6fee20]
mov dword [0xa7b638], eax
mov dword [0xa7b63c], 0
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
add eax, eax
mov dword [0xa7b600], eax
mov eax, dword [0xa7b600]
mov edx, eax
mov eax, dword [0x582560]
cmp edx, eax
je 0x4f9fa0
mov eax, dword [0x6fee24]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa7b600]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x6fee24], eax
mov eax, dword [0xa7b600]
mov dword [0x582560], eax
mov dword [0xa7b638], 0
mov eax, dword [0x582854]
test eax, eax
jne 0x4f9fb7
mov eax, dword [0xa7b638]
cmp eax, 1
je 0x4fba20
mov eax, dword [0xa7b638]
test eax, eax
jne 0x4f9fe2
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa7aba0
call sub.msvcrt.dll_memcpy
jmp 0x4fa030
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa7aba0
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4fa030
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa7aba0
call sub.msvcrt.dll_memcpy
mov dword [0xa7b638], 0
mov eax, dword [0xa7b638]
test eax, eax
je 0x4fa06a
mov ecx, dword [0x582560]
mov eax, dword [0x6f5074]
mov edx, dword [eax + 0x40]
mov eax, dword [0x6fee24]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4fa06a
mov dword [0xa7b63c], 1
mov eax, dword [0x6fed0c]
and eax, 8
test eax, eax
je 0x4fa082
mov dword [0xa7b640], 1
jmp 0x4fa08c
mov dword [0xa7b640], 0
mov eax, dword [0x6fed0c]
and eax, 8
test eax, eax
je 0x4fa0a4
mov dword [0xa7b644], 1
jmp 0x4fa0ae
mov dword [0xa7b644], 0
mov eax, dword [0x6deb4c]
test eax, eax
je 0x4fa17a
mov dword [esp + 8], 1
fld qword [0x5b22c8]
fstp qword [esp]
call fcn.004c1aca
fld qword [0x5b2250]
fdivp st(1)
fstp qword [0xa7b648]
fld qword [0xa7b648]
fnstcw word [ebp - 0x2a]
movzx eax, word [ebp - 0x2a]
mov ah, 0xc
mov word [ebp - 0x2c], ax
fldcw word [ebp - 0x2c]
fistp qword [ebp - 0x38]
fldcw word [ebp - 0x2a]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0xa7b650], eax
mov dword [0xa7b654], edx
mov eax, dword [0xa7b650]
mov edx, dword [0xa7b654]
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x40], ecx
mov ebx, edx
and ebx, 0
mov dword [ebp - 0x3c], ebx
mov eax, dword [ebp - 0x3c]
or eax, dword [ebp - 0x40]
test eax, eax
je 0x4fa13d
mov dword [0xa7b640], 1
jmp 0x4fa147
mov dword [0xa7b640], 0
mov eax, dword [0xa7b650]
mov edx, dword [0xa7b654]
mov esi, eax
and esi, 1
mov edi, edx
and edi, 0
mov eax, edi
or eax, esi
test eax, eax
je 0x4fa170
mov dword [0xa7b644], 1
jmp 0x4fa17a
mov dword [0xa7b644], 0
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x38]
cwde
sub eax, 1
mov dword [0xa7b658], eax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x3a]
cwde
sub eax, 1
mov dword [0xa7b65c], eax
mov eax, dword [0x6f5074]
movzx eax, byte [eax + 0x51]
cmp al, 2
jne 0x4fa1da
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa7b65c]
cmp edx, eax
jle 0x4fa1da
mov eax, dword [0xa7b65c]
add eax, 1
mov dword [0xa7b65c], eax
mov dword [0xa7b658], 0
mov eax, dword [0xa7b638]
test eax, eax
je 0x4fa23d
mov edx, dword [0xa7b644]
mov eax, dword [0xa7b660]
cmp edx, eax
je 0x4fa1fc
mov dword [0xa7b63c], 1
mov edx, dword [0xa7b640]
mov eax, dword [0xa7b664]
cmp edx, eax
je 0x4fa215
mov dword [0xa7b63c], 1
mov edx, dword [0xa7b658]
mov eax, dword [0x582874]
cmp edx, eax
jne 0x4fa233
mov edx, dword [0xa7b65c]
mov eax, dword [0x582878]
cmp edx, eax
je 0x4fa23d
mov dword [0xa7b63c], 1
mov eax, dword [0xa7b638]
test eax, eax
jne 0x4fa250
mov dword [0xa7b63c], 1
mov eax, dword [0xa7b63c]
test eax, eax
je 0x4fba23
mov edx, dword [0x6f5094]
mov eax, dword [0x6f5098]
imul eax, edx
shl eax, 2
mov dword [0xa7b668], eax
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov edx, dword [eax + 0xc]
mov eax, dword [0xa7b668]
cmp edx, eax
jge 0x4fa2da
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa7b5f4]
mov eax, dword [0xa7b668]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6e4530
mov dword [edx], eax
mov edx, dword [0xa7b5f4]
mov eax, dword [0xa7b668]
shl edx, 5
add edx, 0x6e4530
mov dword [edx + 0xc], eax
mov edx, dword [0xa7b5f4]
mov eax, dword [0x6f5094]
shl edx, 5
add edx, 0x6e4530
mov dword [edx + 4], eax
mov edx, dword [0xa7b5f4]
mov eax, dword [0x6f5098]
shl edx, 5
add edx, 0x6e4530
mov dword [edx + 8], eax
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax]
mov dword [0x6f5078], eax
mov eax, dword [0xa7b638]
test eax, eax
je 0x4fa468
mov dword [0xa7b670], 0
mov dword [0xa7b674], 0
mov dword [0xa7b678], 0xffffffff
mov dword [0xa7b67c], 0
jmp 0x4fa3dd
mov eax, dword [0xa7b67c]
shl eax, 5
add eax, 0x6e4520
mov eax, dword [eax]
cmp eax, 4
je 0x4fa37e
mov eax, dword [0xa7b67c]
shl eax, 5
add eax, 0x6e4520
mov eax, dword [eax]
cmp eax, 3
jne 0x4fa3d0
mov eax, dword [0xa7b67c]
shl eax, 5
add eax, 0x6e4520
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa7b670]
mov edx, dword [0xa7b674]
cmp ebx, edx
jl 0x4fa3d0
cmp ebx, edx
jg 0x4fa3a8
cmp ecx, eax
jbe 0x4fa3d0
mov eax, dword [0xa7b67c]
shl eax, 5
add eax, 0x6e4520
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa7b670], eax
mov dword [0xa7b674], edx
mov eax, dword [0xa7b67c]
mov dword [0xa7b678], eax
mov eax, dword [0xa7b67c]
add eax, 1
mov dword [0xa7b67c], eax
mov eax, dword [0xa7b67c]
cmp eax, 2
setle al
test al, al
jne 0x4fa356
mov eax, dword [0xa7b678]
cmp eax, 0xffffffff
je 0x4fa452
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov edx, dword [eax + 4]
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa7b678]
shl eax, 5
add eax, 0x6e4530
mov edx, dword [eax]
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4fa468
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.004a0343
mov dword [0xa7b638], 0
mov dword [0xa7b680], 0
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x40]
mov dword [0xa7b684], eax
mov eax, dword [0x6fee24]
mov dword [0xa7b688], eax
movzx eax, byte [0xa7b5f0]
test al, al
je 0x4fa499
call fcn.004f9abe
mov dword [0xa7b68c], 0
mov dword [0xa7b61c], 0
jmp 0x4fafdc
mov dword [0xa7b690], 0
mov dword [0xa7b618], 0
jmp 0x4faf90
mov eax, dword [0xa7b684]
movzx eax, byte [eax]
mov byte [0xa7b694], al
mov eax, dword [0xa7b684]
add eax, 1
mov dword [0xa7b684], eax
mov eax, dword [0xa7b684]
movzx eax, byte [eax]
mov byte [0xa7b695], al
mov eax, dword [0xa7b684]
add eax, 1
mov dword [0xa7b684], eax
mov eax, dword [0xa7b688]
movzx eax, byte [eax]
mov byte [0xa7b696], al
mov eax, dword [0xa7b688]
add eax, 1
mov dword [0xa7b688], eax
mov eax, dword [0xa7b688]
movzx eax, byte [eax]
mov byte [0xa7b697], al
mov eax, dword [0xa7b688]
add eax, 1
mov dword [0xa7b688], eax
mov eax, dword [0xa7b638]
test eax, eax
je 0x4fa601
movzx edx, byte [0xa7b694]
movzx eax, byte [0xa7b696]
cmp dl, al
jne 0x4fa601
movzx edx, byte [0xa7b695]
movzx eax, byte [0xa7b697]
cmp dl, al
jne 0x4fa601
movzx eax, byte [0xa7b695]
test al, al
jns 0x4fa586
mov edx, dword [0xa7b644]
mov eax, dword [0xa7b660]
cmp edx, eax
jne 0x4fa5fd
mov edx, dword [0xa7b618]
mov eax, dword [0xa7b658]
cmp edx, eax
jne 0x4fa5b3
mov edx, dword [0xa7b61c]
mov eax, dword [0xa7b65c]
cmp edx, eax
jne 0x4fa5b3
mov edx, dword [0xa7b640]
mov eax, dword [0xa7b664]
cmp edx, eax
jne 0x4fa600
mov edx, dword [0xa7b618]
mov eax, dword [0x582874]
cmp edx, eax
jne 0x4faf5e
mov edx, dword [0xa7b61c]
mov eax, dword [0x582878]
cmp edx, eax
jne 0x4faf5e
mov edx, dword [0xa7b658]
mov eax, dword [0x582874]
cmp edx, eax
jne 0x4fa601
mov edx, dword [0xa7b65c]
mov eax, dword [0x582878]
cmp edx, eax
je 0x4faf5e
jmp 0x4fa601
nop
jmp 0x4fa601
nop
mov eax, dword [0xa7b688]
sub eax, 2
mov dword [0xa7b688], eax
mov eax, dword [0xa7b688]
movzx edx, byte [0xa7b694]
mov byte [eax], dl
mov eax, dword [0xa7b688]
add eax, 1
mov dword [0xa7b688], eax
mov eax, dword [0xa7b688]
movzx edx, byte [0xa7b695]
mov byte [eax], dl
mov eax, dword [0xa7b688]
add eax, 1
mov dword [0xa7b688], eax
mov dword [0xa7b698], 0
mov eax, dword [0xa7b62c]
cmp eax, 0x1f
jle 0x4fa71a
movzx eax, byte [0xa7b694]
movzx eax, al
movzx eax, word [eax + eax + 0x5820c0]
movzx eax, ax
mov dword [0xa7b69c], eax
mov dword [0xa7b6a0], 1
mov eax, dword [0xa7b6a4]
test eax, eax
je 0x4fa696
mov eax, dword [0xa7b6a4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [0xa7b6a0]
mov eax, dword [0x6e468c]
mov ecx, dword [0xa7b62c]
shl ecx, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x20], 0xa7b6b8
mov dword [esp + 0x1c], 0xa7b6b4
mov dword [esp + 0x18], 0xa7b6b0
mov dword [esp + 0x14], 0xa7b6ac
mov dword [esp + 0x10], 0xa7b6a8
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa7b69c
mov dword [esp], eax
call fcn.0049f891
mov dword [0xa7b6bc], eax
mov eax, dword [0xa7b6a8]
mov dword [0xa7b6a4], eax
mov eax, dword [0xa7b6a8]
mov dword [0xa7b6c0], eax
mov dword [0xa7b6c4], 0
jmp 0x4fa80e
mov dword [0xa7b6c4], 0
mov eax, dword [0xa7b62c]
cmp eax, 8
jne 0x4fa745
movzx eax, byte [0xa7b694]
movzx eax, al
shl eax, 6
add eax, 0xa6d640
mov dword [0xa7b6c0], eax
mov eax, dword [0xa7b62c]
cmp eax, 0xe
jne 0x4fa769
movzx eax, byte [0xa7b694]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa71640
mov dword [0xa7b6c0], eax
mov eax, dword [0xa7b62c]
cmp eax, 0x10
jne 0x4fa78a
movzx eax, byte [0xa7b694]
movzx eax, al
shl eax, 7
add eax, 0xa71640
mov dword [0xa7b6c0], eax
mov eax, dword [0xa7b62c]
cmp eax, 9
jne 0x4fa7b5
movzx eax, byte [0xa7b694]
movzx eax, al
shl eax, 6
add eax, 0xa6d640
mov dword [0xa7b6c0], eax
mov dword [0xa7b698], 1
mov eax, dword [0xa7b62c]
cmp eax, 0xf
jne 0x4fa7e3
movzx eax, byte [0xa7b694]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa71640
mov dword [0xa7b6c0], eax
mov dword [0xa7b698], 1
mov eax, dword [0xa7b62c]
cmp eax, 0x11
jne 0x4fa80e
movzx eax, byte [0xa7b694]
movzx eax, al
shl eax, 7
add eax, 0xa71640
mov dword [0xa7b6c0], eax
mov dword [0xa7b698], 1
movzx eax, byte [0xa7b695]
and eax, 0xf
mov byte [0xa7b6c8], al
mov eax, dword [0x582650]
test eax, eax
je 0x4fa84f
movzx eax, byte [0xa7b695]
movzx eax, al
sar eax, 4
and eax, 7
mov byte [0xa7b6c9], al
movzx eax, byte [0xa7b695]
movzx eax, al
sar eax, 7
mov byte [0xa7b6ca], al
jmp 0x4fa861
movzx eax, byte [0xa7b695]
movzx eax, al
sar eax, 4
mov byte [0xa7b6c9], al
movzx eax, byte [0xa7b6ca]
test al, al
je 0x4fa88a
mov eax, dword [0xa7b644]
test eax, eax
je 0x4fa88a
mov eax, dword [0x582650]
test eax, eax
je 0x4fa88a
movzx eax, byte [0xa7b6c9]
mov byte [0xa7b6c8], al
movzx eax, byte [0xa7b6c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa7aba0]
mov dword [0xa7b678], eax
movzx eax, byte [0xa7b6c9]
movzx eax, al
mov eax, dword [eax*4 + 0xa7aba0]
mov dword [0xa7b67c], eax
mov eax, dword [0x6f5078]
mov ecx, dword [0xa7b68c]
mov edx, dword [0x6f5094]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa7b680]
add ecx, edx
mov edx, dword [0xa7b690]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa7b6cc], eax
mov edx, dword [0x6f5094]
mov ecx, dword [0x6e4694]
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov dword [0xa7b628], eax
mov dword [0xa7b6d0], 0
jmp 0x4fa9eb
mov dword [0xa7b6d4], 0
jmp 0x4fa99f
mov eax, dword [0xa7b6c0]
movzx eax, byte [eax]
test al, al
je 0x4fa942
mov eax, dword [0xa7b6cc]
mov edx, dword [0xa7b678]
mov dword [eax], edx
jmp 0x4fa94f
mov eax, dword [0xa7b6cc]
mov edx, dword [0xa7b67c]
mov dword [eax], edx
mov eax, dword [0xa7b698]
test eax, eax
je 0x4fa978
mov edx, dword [0xa7b6d4]
mov eax, dword [0xa7b698]
and eax, edx
test eax, eax
je 0x4fa985
mov eax, dword [0xa7b6c0]
add eax, 1
mov dword [0xa7b6c0], eax
jmp 0x4fa985
mov eax, dword [0xa7b6c0]
add eax, 1
mov dword [0xa7b6c0], eax
mov eax, dword [0xa7b6cc]
add eax, 4
mov dword [0xa7b6cc], eax
mov eax, dword [0xa7b6d4]
add eax, 1
mov dword [0xa7b6d4], eax
mov edx, dword [0xa7b6d4]
mov eax, dword [0xa7b630]
cmp edx, eax
setl al
test al, al
jne 0x4fa927
mov eax, dword [0xa7b6cc]
mov edx, dword [0xa7b628]
shl edx, 2
add eax, edx
mov dword [0xa7b6cc], eax
mov edx, dword [0xa7b6c0]
mov eax, dword [0xa7b6c4]
add eax, edx
mov dword [0xa7b6c0], eax
mov eax, dword [0xa7b6d0]
add eax, 1
mov dword [0xa7b6d0], eax
mov edx, dword [0xa7b6d0]
mov eax, dword [0xa7b634]
cmp edx, eax
setl al
test al, al
jne 0x4fa91b
mov eax, dword [0x6f5074]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x4faf62
mov eax, dword [0xa7b640]
test eax, eax
je 0x4faf62
mov edx, dword [0xa7b658]
mov eax, dword [0xa7b618]
cmp edx, eax
jne 0x4faf62
mov edx, dword [0xa7b65c]
mov eax, dword [0xa7b61c]
cmp edx, eax
jne 0x4faf62
mov eax, dword [0x6f5074]
movzx eax, byte [eax + 0x3d]
movzx eax, al
mov dword [0xa7b6d8], eax
mov eax, dword [0x6f5074]
movzx eax, byte [eax + 0x3e]
movzx eax, al
mov dword [0xa7b6dc], eax
mov byte [0xa7b6e0], 0
mov byte [0xa7b6e1], 0
mov byte [0xa7b6e2], 0
mov byte [0xa7b6e3], 0
mov eax, dword [0xa7b6dc]
test eax, eax
jne 0x4faaa7
mov eax, dword [0xa7b6d8]
test eax, eax
jne 0x4faf61
mov byte [0xa7b6e2], 1
jmp 0x4fac05
mov edx, dword [0xa7b6dc]
mov eax, dword [0xa7b6d8]
cmp edx, eax
jge 0x4faacc
mov eax, dword [0xa7b6dc]
mov byte [0xa7b6e3], al
mov byte [0xa7b6e2], 0xff
jmp 0x4fac05
mov edx, dword [0xa7b6d8]
mov eax, dword [0xa7b6dc]
cmp edx, eax
jne 0x4fab0e
mov eax, dword [0xa7b6d8]
cmp eax, 3
jg 0x4faafb
mov eax, dword [0xa7b6d8]
mov byte [0xa7b6e3], al
mov byte [0xa7b6e2], 1
jmp 0x4fac05
mov byte [0xa7b6e0], 1
mov byte [0xa7b6e2], 1
jmp 0x4fac05
mov eax, dword [0xa7b6d8]
cmp eax, 2
jle 0x4fab76
mov edx, dword [0xa7b6dc]
mov eax, dword [0xa7b6d8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x4fab41
mov byte [0xa7b6e0], 1
mov byte [0xa7b6e2], 2
jmp 0x4fac05
mov edx, dword [0xa7b6dc]
mov eax, dword [0xa7b6d8]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x4fab6a
mov byte [0xa7b6e0], 1
mov byte [0xa7b6e2], 3
jmp 0x4fac05
mov byte [0xa7b6e1], 1
jmp 0x4fac05
mov eax, dword [0xa7b6d8]
cmp eax, 1
jg 0x4fabc3
mov eax, dword [0xa7b6dc]
cmp eax, 3
jg 0x4fabb0
mov eax, dword [0xa7b6d8]
mov byte [0xa7b6e3], al
mov eax, dword [0xa7b6dc]
mov edx, eax
mov eax, dword [0xa7b6d8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
add eax, 1
mov byte [0xa7b6e2], al
jmp 0x4fac05
mov eax, dword [0xa7b6d8]
mov byte [0xa7b6e3], al
mov byte [0xa7b6e2], 0xff
jmp 0x4fac05
mov eax, dword [0xa7b6dc]
cmp eax, 3
jne 0x4fabdd
mov byte [0xa7b6e3], 2
mov byte [0xa7b6e2], 2
jmp 0x4fac05
mov eax, dword [0xa7b6dc]
cmp eax, 4
jne 0x4fabf7
mov byte [0xa7b6e0], 1
mov byte [0xa7b6e2], 3
jmp 0x4fac05
mov byte [0xa7b6e3], 2
mov byte [0xa7b6e2], 0xff
mov edx, dword [0x6e4694]
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa7b6e4], eax
mov edx, dword [0x6e4690]
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa7b6e8], eax
movzx eax, byte [0xa7b6e1]
test al, al
je 0x4fad3c
mov eax, dword [0xa7b6e8]
sub eax, 1
mov dword [0xa7b6d0], eax
mov eax, dword [0xa7b6e8]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov byte [0xa7b6e2], al
movzx eax, byte [0xa7b695]
and eax, 0xf
mov byte [0xa7b6c8], al
movzx eax, byte [0xa7b6c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa7aba0]
mov dword [0xa7b678], eax
mov eax, dword [0x6f5078]
mov ecx, dword [0xa7b68c]
mov edx, dword [0xa7b6d0]
add ecx, edx
mov edx, dword [0x6f5094]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa7b680]
add ecx, edx
mov edx, dword [0xa7b690]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa7b6cc], eax
mov dword [0xa7b6d4], 0
jmp 0x4facf8
mov eax, dword [0xa7b6cc]
mov edx, dword [0xa7b678]
mov dword [eax], edx
mov eax, dword [0xa7b6cc]
add eax, 4
mov dword [0xa7b6cc], eax
mov eax, dword [0xa7b6d4]
add eax, 1
mov dword [0xa7b6d4], eax
mov edx, dword [0xa7b6d4]
mov eax, dword [0xa7b6e4]
cmp edx, eax
setl al
test al, al
jne 0x4facd1
mov eax, dword [0xa7b6d0]
sub eax, 1
mov dword [0xa7b6d0], eax
movzx eax, byte [0xa7b6e2]
sub eax, 1
mov byte [0xa7b6e2], al
movzx eax, byte [0xa7b6e2]
test al, al
je 0x4faf62
jmp 0x4fac8d
movzx eax, byte [0xa7b6e0]
test al, al
je 0x4fae40
mov eax, dword [0xa7b6e8]
sub eax, 1
mov dword [0xa7b6d0], eax
mov eax, dword [0xa7b6d0]
cmp eax, 0xf
jne 0x4fad6c
mov dword [0xa7b6d0], 0xe
movzx eax, byte [0xa7b695]
and eax, 0xf
mov byte [0xa7b6c8], al
movzx eax, byte [0xa7b6c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa7aba0]
mov dword [0xa7b678], eax
mov eax, dword [0x6f5078]
mov ecx, dword [0xa7b68c]
mov edx, dword [0xa7b6d0]
add ecx, edx
mov edx, dword [0x6f5094]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa7b680]
add ecx, edx
mov edx, dword [0xa7b690]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa7b6cc], eax
mov dword [0xa7b6d4], 0
jmp 0x4fadfc
mov eax, dword [0xa7b6cc]
mov edx, dword [0xa7b678]
mov dword [eax], edx
mov eax, dword [0xa7b6cc]
add eax, 4
mov dword [0xa7b6cc], eax
mov eax, dword [0xa7b6d4]
add eax, 1
mov dword [0xa7b6d4], eax
mov edx, dword [0xa7b6d4]
mov eax, dword [0xa7b6e4]
cmp edx, eax
setl al
test al, al
jne 0x4fadd5
mov eax, dword [0xa7b6d0]
sub eax, 1
mov dword [0xa7b6d0], eax
movzx eax, byte [0xa7b6e2]
sub eax, 1
mov byte [0xa7b6e2], al
movzx eax, byte [0xa7b6e2]
test al, al
je 0x4faf62
jmp 0x4fad91
movzx eax, byte [0xa7b6e3]
movzx edx, al
mov eax, dword [0xa7b6e8]
cmp edx, eax
jge 0x4faf62
movzx eax, byte [0xa7b6e3]
movzx eax, al
mov dword [0xa7b6d0], eax
movzx eax, byte [0xa7b695]
and eax, 0xf
mov byte [0xa7b6c8], al
movzx eax, byte [0xa7b6c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa7aba0]
mov dword [0xa7b678], eax
movzx eax, byte [0xa7b6e2]
cmp al, 0xff
jne 0x4faeb2
mov eax, dword [0xa7b6e8]
mov edx, eax
movzx eax, byte [0xa7b6e3]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov byte [0xa7b6e2], al
jmp 0x4faeb2
nop
mov eax, dword [0x6f5078]
mov ecx, dword [0xa7b68c]
mov edx, dword [0xa7b6d0]
add ecx, edx
mov edx, dword [0x6f5094]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa7b680]
add ecx, edx
mov edx, dword [0xa7b690]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa7b6cc], eax
mov dword [0xa7b6d4], 0
jmp 0x4faf1d
mov eax, dword [0xa7b6cc]
mov edx, dword [0xa7b678]
mov dword [eax], edx
mov eax, dword [0xa7b6cc]
add eax, 4
mov dword [0xa7b6cc], eax
mov eax, dword [0xa7b6d4]
add eax, 1
mov dword [0xa7b6d4], eax
mov edx, dword [0xa7b6d4]
mov eax, dword [0xa7b6e4]
cmp edx, eax
setl al
test al, al
jne 0x4faef6
mov eax, dword [0xa7b6d0]
add eax, 1
mov dword [0xa7b6d0], eax
movzx eax, byte [0xa7b6e2]
sub eax, 1
mov byte [0xa7b6e2], al
movzx eax, byte [0xa7b6e2]
test al, al
jne 0x4faeb1
jmp 0x4faf62
nop
jmp 0x4faf62
nop
mov edx, dword [0x6e4694]
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa7b690]
add eax, edx
mov dword [0xa7b690], eax
mov eax, dword [0xa7b618]
add eax, 1
mov dword [0xa7b618], eax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0xa7b618]
cmp edx, eax
setg al
test al, al
jne 0x4fa4cb
mov edx, dword [0x6e4690]
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa7b68c]
add eax, edx
mov dword [0xa7b68c], eax
mov eax, dword [0xa7b61c]
add eax, 1
mov dword [0xa7b61c], eax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov eax, dword [0xa7b61c]
cmp edx, eax
setg al
test al, al
jne 0x4fa4b2
mov eax, dword [0xa7b644]
mov dword [0xa7b660], eax
mov eax, dword [0xa7b640]
mov dword [0xa7b664], eax
mov eax, dword [0xa7b658]
mov dword [0x582874], eax
mov eax, dword [0xa7b65c]
mov dword [0x582878], eax
mov dword [0x6fee20], 1
movzx eax, byte [0xa7b5f0]
test al, al
je 0x4fb03c
call fcn.004f9abe
mov eax, dword [0xa7b5f4]
mov edx, eax
sar edx, 0x1f
mov dword [0xa7b6f0], eax
mov dword [0xa7b6f4], edx
jmp 0x4fb831
mov eax, dword [0x6f5074]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x4fb4b0
movzx eax, byte [0xa7b5f0]
test al, al
jne 0x4fb207
mov dword [0xa7b6f8], 0
mov dword [0xa7b6fc], 0
mov dword [0xa7b678], 0xffffffff
mov dword [0xa7b67c], 0
jmp 0x4fb12a
mov eax, dword [0xa7b67c]
shl eax, 5
add eax, 0x6e4520
mov eax, dword [eax]
cmp eax, 4
je 0x4fb0cb
mov eax, dword [0xa7b67c]
shl eax, 5
add eax, 0x6e4520
mov eax, dword [eax]
cmp eax, 3
jne 0x4fb11d
mov eax, dword [0xa7b67c]
shl eax, 5
add eax, 0x6e4520
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa7b6f8]
mov edx, dword [0xa7b6fc]
cmp ebx, edx
jl 0x4fb11d
cmp ebx, edx
jg 0x4fb0f5
cmp ecx, eax
jbe 0x4fb11d
mov eax, dword [0xa7b67c]
shl eax, 5
add eax, 0x6e4520
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa7b6f8], eax
mov dword [0xa7b6fc], edx
mov eax, dword [0xa7b67c]
mov dword [0xa7b678], eax
mov eax, dword [0xa7b67c]
add eax, 1
mov dword [0xa7b67c], eax
mov eax, dword [0xa7b67c]
cmp eax, 2
setle al
test al, al
jne 0x4fb0a3
mov eax, dword [0x6e449c]
test eax, eax
jne 0x4fb2db
mov eax, dword [0xa7b678]
cmp eax, 0xffffffff
je 0x4fb2e2
mov eax, dword [0x6fee20]
test eax, eax
je 0x4fb2de
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa7b600], eax
mov eax, dword [0xa7b678]
shl eax, 5
add eax, 0x6e4530
mov edx, dword [eax + 4]
mov eax, dword [0xa7b678]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax + 8]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [0xa7b600]
cmp edx, eax
jne 0x4fb2e1
mov eax, dword [0x582854]
test eax, eax
je 0x4fba26
mov eax, dword [0xa7b600]
mov ecx, eax
mov eax, dword [0x6f5074]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa7b678]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4fba29
jmp 0x4fb2e2
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa7b600], eax
mov edx, dword [0xa7b600]
mov eax, dword [0x58286c]
cmp edx, eax
je 0x4fb264
mov eax, dword [0xa7ab94]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa7b600]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa7ab94], eax
mov eax, dword [0xa7b600]
mov dword [0x58286c], eax
jmp 0x4fb2b5
mov eax, dword [0x6e449c]
test eax, eax
jne 0x4fb2b1
mov eax, dword [0x582854]
test eax, eax
je 0x4fba2c
mov eax, dword [0xa7b600]
mov ecx, eax
mov eax, dword [0x6f5074]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa7ab94]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4fb2b4
mov eax, dword [0x6fee20]
test eax, eax
jne 0x4fba2f
jmp 0x4fb2b5
nop
jmp 0x4fb2b5
nop
mov eax, dword [0xa7b600]
mov ecx, eax
mov eax, dword [0x6f5074]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa7ab94]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4fb2e2
nop
jmp 0x4fb2e2
nop
jmp 0x4fb2e2
nop
mov edx, dword [0x6f5094]
mov eax, dword [0x6f5098]
imul eax, edx
shl eax, 2
mov dword [0xa7b700], eax
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov edx, dword [eax + 0xc]
mov eax, dword [0xa7b700]
cmp edx, eax
jge 0x4fb35f
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa7b5f4]
mov eax, dword [0xa7b700]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6e4530
mov dword [edx], eax
mov edx, dword [0xa7b5f4]
mov eax, dword [0xa7b700]
shl edx, 5
add edx, 0x6e4530
mov dword [edx + 0xc], eax
mov edx, dword [0xa7b5f4]
mov eax, dword [0x6f5094]
shl edx, 5
add edx, 0x6e4530
mov dword [edx + 4], eax
mov edx, dword [0xa7b5f4]
mov eax, dword [0x6f5098]
shl edx, 5
add edx, 0x6e4530
mov dword [edx + 8], eax
movzx eax, byte [0xa7b5f0]
test al, al
jne 0x4fb3ec
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov edx, dword [eax + 4]
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0x6f5074]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4fb82d
mov eax, dword [0xa7ab94]
mov dword [0xa7b704], eax
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax]
mov dword [0xa7b708], eax
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov edx, dword [eax + 4]
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax + 8]
imul eax, edx
mov dword [0xa7b70c], eax
mov eax, dword [0xa7b70c]
test eax, eax
jle 0x4fb82d
jmp 0x4fb495
mov eax, dword [0xa7b704]
mov edx, dword [eax]
mov dword [0xa7b710], edx
add eax, 4
mov dword [0xa7b704], eax
mov eax, dword [0xa7b708]
mov edx, dword [0xa7b710]
mov ecx, edx
and ecx, 0xff00ff00
mov edx, dword [0xa7b710]
and edx, 0xff0000
shr edx, 0x10
or ecx, edx
mov edx, dword [0xa7b710]
and edx, 0xff
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
add eax, 4
mov dword [0xa7b708], eax
mov eax, dword [0xa7b70c]
test eax, eax
setne dl
sub eax, 1
mov dword [0xa7b70c], eax
test dl, dl
jne 0x4fb441
jmp 0x4fb82d
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x4fb551
call fcn.0049f8bf
and eax, 0x200
mov dword [0xa7b678], eax
mov eax, dword [0xa7b678]
test eax, eax
je 0x4fb4e5
mov dword [0xa7b678], 1
mov dword [0xa7b600], 0
jmp 0x4fb542
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x48]
mov edx, dword [0xa7b600]
shl edx, 2
lea ecx, [eax + edx]
mov edx, dword [0xa7b678]
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x48]
mov ebx, dword [0xa7b600]
add ebx, 4
shl ebx, 2
add eax, ebx
mov ebx, dword [eax]
mov eax, edx
shl eax, 3
add eax, edx
add eax, ebx
mov eax, dword [eax*4 + 0xa6d5e0]
mov dword [ecx], eax
mov eax, dword [0xa7b600]
add eax, 1
mov dword [0xa7b600], eax
mov eax, dword [0xa7b600]
cmp eax, 3
setle al
test al, al
jne 0x4fb4f1
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
mov dword [0xa7b600], eax
mov eax, dword [0x6f5074]
movzx eax, byte [eax + 0x19]
movzx eax, al
mov edx, 1
mov ebx, edx
mov ecx, eax
shl ebx, cl
mov eax, ebx
mov dword [0xa7b678], eax
mov edx, dword [0xa7b600]
mov eax, dword [0x58286c]
cmp edx, eax
je 0x4fb5c9
mov eax, dword [0xa7ab94]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa7b600]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa7ab94], eax
mov eax, dword [0xa7b600]
mov dword [0x58286c], eax
jmp 0x4fb647
mov eax, dword [0x6e449c]
test eax, eax
jne 0x4fb640
mov eax, dword [0x582854]
test eax, eax
je 0x4fba32
mov eax, dword [0xa7b600]
mov ecx, eax
mov eax, dword [0x6f5074]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa7ab94]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4fb643
mov eax, dword [0xa7b678]
shl eax, 2
mov edx, eax
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa7aba0
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4fb646
mov eax, dword [0x6fee20]
test eax, eax
jne 0x4fba35
jmp 0x4fb647
nop
jmp 0x4fb647
nop
jmp 0x4fb647
nop
mov edx, dword [0x6f5094]
mov eax, dword [0x6f5098]
imul eax, edx
shl eax, 2
mov dword [0xa7b714], eax
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov edx, dword [eax + 0xc]
mov eax, dword [0xa7b714]
cmp edx, eax
jge 0x4fb6c4
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa7b5f4]
mov eax, dword [0xa7b714]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6e4530
mov dword [edx], eax
mov edx, dword [0xa7b5f4]
mov eax, dword [0xa7b714]
shl edx, 5
add edx, 0x6e4530
mov dword [edx + 0xc], eax
mov edx, dword [0xa7b5f4]
mov eax, dword [0x6f5094]
shl edx, 5
add edx, 0x6e4530
mov dword [edx + 4], eax
mov edx, dword [0xa7b5f4]
mov eax, dword [0x6f5098]
shl edx, 5
add edx, 0x6e4530
mov dword [edx + 8], eax
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax]
mov dword [0x6f5078], eax
mov eax, dword [0xa7b600]
mov ecx, eax
mov eax, dword [0x6f5074]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa7ab94]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa7b678]
shl eax, 2
mov edx, eax
mov eax, dword [0x6f5074]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa7aba0
call sub.msvcrt.dll_memcpy
movzx eax, byte [0xa7b5f0]
test al, al
je 0x4fb760
call fcn.004f9abe
mov eax, dword [0xa7ab94]
mov dword [0xa7b718], eax
mov eax, dword [0x6f5078]
mov dword [0xa7b71c], eax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa7b690], eax
mov eax, dword [0x6f5074]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa7b68c], eax
mov dword [0xa7b61c], 0
jmp 0x4fb807
mov dword [0xa7b618], 0
jmp 0x4fb7e6
mov edx, dword [0xa7b71c]
mov eax, dword [0xa7b718]
movzx ecx, byte [eax]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0xa7aba0]
mov dword [edx], ecx
add edx, 4
mov dword [0xa7b71c], edx
add eax, 1
mov dword [0xa7b718], eax
mov eax, dword [0xa7b618]
add eax, 1
mov dword [0xa7b618], eax
mov edx, dword [0xa7b618]
mov eax, dword [0xa7b690]
cmp edx, eax
setl al
test al, al
jne 0x4fb7ae
mov eax, dword [0xa7b61c]
add eax, 1
mov dword [0xa7b61c], eax
mov edx, dword [0xa7b61c]
mov eax, dword [0xa7b68c]
cmp edx, eax
setl al
test al, al
jne 0x4fb7a2
movzx eax, byte [0xa7b5f0]
test al, al
je 0x4fb830
call fcn.004f9abe
jmp 0x4fb830
nop
jmp 0x4fb831
nop
mov dword [0x6e449c], 0
mov dword [0x6fee20], 1
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4520
mov dword [eax], 3
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4520
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x6e4588], eax
mov dword [0x6e458c], edx
mov eax, dword [0x6deb4c]
test eax, eax
je 0x4fba36
mov eax, dword [0x6e4600]
test eax, eax
je 0x4fba36
mov eax, dword [0xa7b720]
test eax, eax
jne 0x4fb8df
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x80000000
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x40000000
mov dword [esp], str.output_image.raw
mov eax, dword [sym.imp.KERNEL32.dll_CreateFileA]
call eax
sub esp, 0x1c
mov dword [0xa7b720], eax
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax + 4]
mov dword [0xa7b724], eax
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov eax, dword [eax + 8]
mov dword [0xa7b728], eax
mov eax, dword [0xa7b72c]
add eax, 1
mov dword [0xa7b72c], eax
mov eax, dword [0xa7b72c]
mov dword [0xa7b730], eax
mov eax, dword [0xa7b724]
mov dword [0xa7b734], eax
mov eax, dword [0xa7b728]
mov dword [0xa7b738], eax
mov eax, dword [0xa7b720]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetFilePointer]
call eax
sub esp, 0x10
mov edx, dword [0xa7b724]
mov eax, dword [0xa7b728]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4530
mov edx, dword [eax]
mov eax, dword [0xa7b720]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
mov eax, dword [0xa7b720]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call eax
sub esp, 4
mov eax, dword [0xa7b720]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetFilePointer]
call eax
sub esp, 0x10
mov eax, dword [0xa7b720]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0xa7b730
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x4fba36
nop
jmp 0x4fba36
nop
jmp 0x4fba36
nop
jmp 0x4fba36
nop
jmp 0x4fba36
nop
jmp 0x4fba36
nop
jmp 0x4fba36
nop
jmp 0x4fba36
nop
jmp 0x4fba36
nop
jmp 0x4fba36
nop
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4520
mov eax, dword [eax]
cmp eax, 2
jne 0x4fba7b
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4520
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x6e4588], eax
mov dword [0x6e458c], edx
mov eax, dword [0xa7b5f4]
shl eax, 5
add eax, 0x6e4520
mov dword [eax], 1
mov eax, dword [0x6fee34]
cmp eax, 1
jne 0x4fbaa0
mov dword [0x6fee34], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x5822d8]
cmp eax, 0xffffffff
jne 0x4fbab4
mov dword [0x5822d8], 0
mov dword [0xa7ab40], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret