Function at 0x4fa87e
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov byte [0xa7c5f0], 0
mov eax, dword [0x6dfb4c]
test eax, eax
je 0x4fa89e
mov byte [0xa7c5f0], 1
mov eax, dword [0x6ffe34]
cmp eax, 1
jne 0x4fa8c3
mov dword [0x6ffe34], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x6dfb4c]
test eax, eax
jne 0x4fa8e4
mov eax, dword [0x6e5684]
test eax, eax
je 0x4fa8e4
mov dword [0xa7bb40], 1
jmp 0x4fc803
mov eax, dword [0x6ffe34]
test eax, eax
jne 0x4fc7bf
mov dword [0xa7c5f4], 0xffffffff
mov eax, dword [0x5830a0]
mov edx, dword [0x5830a4]
mov dword [0xa7c5f8], eax
mov dword [0xa7c5fc], edx
mov dword [0xa7c600], 0
jmp 0x4fa990
mov eax, dword [0xa7c600]
shl eax, 5
add eax, 0x6e5520
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa7c5f8]
mov edx, dword [0xa7c5fc]
cmp ebx, edx
jg 0x4fa983
cmp ebx, edx
jl 0x4fa947
cmp ecx, eax
jae 0x4fa983
mov eax, dword [0xa7c600]
shl eax, 5
add eax, 0x6e5520
mov eax, dword [eax]
cmp eax, 3
jne 0x4fa983
mov eax, dword [0xa7c600]
shl eax, 5
add eax, 0x6e5520
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa7c5f8], eax
mov dword [0xa7c5fc], edx
mov eax, dword [0xa7c600]
mov dword [0xa7c5f4], eax
mov eax, dword [0xa7c600]
add eax, 1
mov dword [0xa7c600], eax
mov eax, dword [0xa7c600]
cmp eax, 2
setle al
test al, al
jne 0x4fa91d
mov dword [0xa7c600], 0
jmp 0x4fa9da
mov eax, dword [0xa7c600]
shl eax, 5
add eax, 0x6e5520
mov eax, dword [eax]
cmp eax, 1
jne 0x4fa9cd
mov eax, dword [0xa7c600]
mov dword [0xa7c5f4], eax
mov eax, dword [0xa7c600]
add eax, 1
mov dword [0xa7c600], eax
mov eax, dword [0xa7c600]
cmp eax, 2
setle al
test al, al
jne 0x4fa9af
mov eax, dword [0xa7c5f4]
cmp eax, 0xffffffff
jne 0x4faa04
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.004a1087
jmp 0x4fc803
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5520
mov dword [eax], 2
mov ecx, dword [0xa7c5f4]
mov eax, dword [0x5830a0]
mov edx, dword [0x5830a4]
shl ecx, 5
add ecx, 0x6e5520
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add eax, 1
adc edx, 0
mov dword [0x5830a0], eax
mov dword [0x5830a4], edx
mov eax, dword [0x6dfb4c]
test eax, eax
je 0x4faa99
mov dword [esp + 8], 1
fld qword [0x5b32c8]
fstp qword [esp]
call fcn.004c280e
fstp qword [0xa7c608]
fld qword [0xa7c610]
fld qword [0xa7c608]
fsubp st(1)
fabs
fld qword [0x5b3450]
fucompi st(1)
fstp st(0)
ja 0x4fc75e
fld qword [0xa7c608]
fstp qword [0xa7c610]
mov eax, dword [0x6f6074]
test eax, eax
je 0x4fc761
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa7c618], eax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa7c61c], eax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4fab28
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x6e5694]
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa7c618], eax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x6e5690]
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa7c61c], eax
mov eax, dword [0xa7c618]
cmp eax, 0x200
jg 0x4fab58
mov eax, dword [0xa7c61c]
cmp eax, 0x180
jg 0x4fab58
mov eax, dword [0xa7c618]
add eax, eax
mov dword [0xa7c618], eax
mov eax, dword [0xa7c61c]
add eax, eax
mov dword [0xa7c61c], eax
mov dword [0xa7c620], 0xffffffff
mov dword [0xa7c624], 0xffffffff
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa7c618], eax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa7c61c], eax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4fabee
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x6e5694]
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa7c618], eax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x6e5690]
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa7c61c], eax
mov eax, dword [0xa7c618]
mov dword [0x6f6094], eax
mov eax, dword [0xa7c61c]
mov dword [0x6f6098], eax
mov dword [0xa7c628], 0
mov dword [0x6f609c], 0
mov eax, dword [0x6f6078]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4fbd9a
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x30]
mov dword [0xa7c62c], eax
mov eax, dword [0x6e5694]
mov edx, dword [0xa7c62c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa7c630], eax
mov eax, dword [0x6e5690]
mov edx, dword [0xa7c62c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa7c634], eax
mov eax, dword [0x6ffe20]
mov dword [0xa7c638], eax
mov dword [0xa7c63c], 0
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
add eax, eax
mov dword [0xa7c600], eax
mov eax, dword [0xa7c600]
mov edx, eax
mov eax, dword [0x583560]
cmp edx, eax
je 0x4face4
mov eax, dword [0x6ffe24]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa7c600]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x6ffe24], eax
mov eax, dword [0xa7c600]
mov dword [0x583560], eax
mov dword [0xa7c638], 0
mov eax, dword [0x583854]
test eax, eax
jne 0x4facfb
mov eax, dword [0xa7c638]
cmp eax, 1
je 0x4fc764
mov eax, dword [0xa7c638]
test eax, eax
jne 0x4fad26
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa7bba0
call sub.msvcrt.dll_memcpy
jmp 0x4fad74
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa7bba0
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4fad74
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa7bba0
call sub.msvcrt.dll_memcpy
mov dword [0xa7c638], 0
mov eax, dword [0xa7c638]
test eax, eax
je 0x4fadae
mov ecx, dword [0x583560]
mov eax, dword [0x6f6074]
mov edx, dword [eax + 0x40]
mov eax, dword [0x6ffe24]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4fadae
mov dword [0xa7c63c], 1
mov eax, dword [0x6ffd0c]
and eax, 8
test eax, eax
je 0x4fadc6
mov dword [0xa7c640], 1
jmp 0x4fadd0
mov dword [0xa7c640], 0
mov eax, dword [0x6ffd0c]
and eax, 8
test eax, eax
je 0x4fade8
mov dword [0xa7c644], 1
jmp 0x4fadf2
mov dword [0xa7c644], 0
mov eax, dword [0x6dfb4c]
test eax, eax
je 0x4faebe
mov dword [esp + 8], 1
fld qword [0x5b32c8]
fstp qword [esp]
call fcn.004c280e
fld qword [0x5b3250]
fdivp st(1)
fstp qword [0xa7c648]
fld qword [0xa7c648]
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 [0xa7c650], eax
mov dword [0xa7c654], edx
mov eax, dword [0xa7c650]
mov edx, dword [0xa7c654]
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 0x4fae81
mov dword [0xa7c640], 1
jmp 0x4fae8b
mov dword [0xa7c640], 0
mov eax, dword [0xa7c650]
mov edx, dword [0xa7c654]
mov esi, eax
and esi, 1
mov edi, edx
and edi, 0
mov eax, edi
or eax, esi
test eax, eax
je 0x4faeb4
mov dword [0xa7c644], 1
jmp 0x4faebe
mov dword [0xa7c644], 0
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x38]
cwde
sub eax, 1
mov dword [0xa7c658], eax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x3a]
cwde
sub eax, 1
mov dword [0xa7c65c], eax
mov eax, dword [0x6f6074]
movzx eax, byte [eax + 0x51]
cmp al, 2
jne 0x4faf1e
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa7c65c]
cmp edx, eax
jle 0x4faf1e
mov eax, dword [0xa7c65c]
add eax, 1
mov dword [0xa7c65c], eax
mov dword [0xa7c658], 0
mov eax, dword [0xa7c638]
test eax, eax
je 0x4faf81
mov edx, dword [0xa7c644]
mov eax, dword [0xa7c660]
cmp edx, eax
je 0x4faf40
mov dword [0xa7c63c], 1
mov edx, dword [0xa7c640]
mov eax, dword [0xa7c664]
cmp edx, eax
je 0x4faf59
mov dword [0xa7c63c], 1
mov edx, dword [0xa7c658]
mov eax, dword [0x583874]
cmp edx, eax
jne 0x4faf77
mov edx, dword [0xa7c65c]
mov eax, dword [0x583878]
cmp edx, eax
je 0x4faf81
mov dword [0xa7c63c], 1
mov eax, dword [0xa7c638]
test eax, eax
jne 0x4faf94
mov dword [0xa7c63c], 1
mov eax, dword [0xa7c63c]
test eax, eax
je 0x4fc767
mov edx, dword [0x6f6094]
mov eax, dword [0x6f6098]
imul eax, edx
shl eax, 2
mov dword [0xa7c668], eax
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov edx, dword [eax + 0xc]
mov eax, dword [0xa7c668]
cmp edx, eax
jge 0x4fb01e
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa7c5f4]
mov eax, dword [0xa7c668]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6e5530
mov dword [edx], eax
mov edx, dword [0xa7c5f4]
mov eax, dword [0xa7c668]
shl edx, 5
add edx, 0x6e5530
mov dword [edx + 0xc], eax
mov edx, dword [0xa7c5f4]
mov eax, dword [0x6f6094]
shl edx, 5
add edx, 0x6e5530
mov dword [edx + 4], eax
mov edx, dword [0xa7c5f4]
mov eax, dword [0x6f6098]
shl edx, 5
add edx, 0x6e5530
mov dword [edx + 8], eax
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax]
mov dword [0x6f6078], eax
mov eax, dword [0xa7c638]
test eax, eax
je 0x4fb1ac
mov dword [0xa7c670], 0
mov dword [0xa7c674], 0
mov dword [0xa7c678], 0xffffffff
mov dword [0xa7c67c], 0
jmp 0x4fb121
mov eax, dword [0xa7c67c]
shl eax, 5
add eax, 0x6e5520
mov eax, dword [eax]
cmp eax, 4
je 0x4fb0c2
mov eax, dword [0xa7c67c]
shl eax, 5
add eax, 0x6e5520
mov eax, dword [eax]
cmp eax, 3
jne 0x4fb114
mov eax, dword [0xa7c67c]
shl eax, 5
add eax, 0x6e5520
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa7c670]
mov edx, dword [0xa7c674]
cmp ebx, edx
jl 0x4fb114
cmp ebx, edx
jg 0x4fb0ec
cmp ecx, eax
jbe 0x4fb114
mov eax, dword [0xa7c67c]
shl eax, 5
add eax, 0x6e5520
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa7c670], eax
mov dword [0xa7c674], edx
mov eax, dword [0xa7c67c]
mov dword [0xa7c678], eax
mov eax, dword [0xa7c67c]
add eax, 1
mov dword [0xa7c67c], eax
mov eax, dword [0xa7c67c]
cmp eax, 2
setle al
test al, al
jne 0x4fb09a
mov eax, dword [0xa7c678]
cmp eax, 0xffffffff
je 0x4fb196
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov edx, dword [eax + 4]
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa7c678]
shl eax, 5
add eax, 0x6e5530
mov edx, dword [eax]
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4fb1ac
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.004a1087
mov dword [0xa7c638], 0
mov dword [0xa7c680], 0
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x40]
mov dword [0xa7c684], eax
mov eax, dword [0x6ffe24]
mov dword [0xa7c688], eax
movzx eax, byte [0xa7c5f0]
test al, al
je 0x4fb1dd
call fcn.004fa802
mov dword [0xa7c68c], 0
mov dword [0xa7c61c], 0
jmp 0x4fbd20
mov dword [0xa7c690], 0
mov dword [0xa7c618], 0
jmp 0x4fbcd4
mov eax, dword [0xa7c684]
movzx eax, byte [eax]
mov byte [0xa7c694], al
mov eax, dword [0xa7c684]
add eax, 1
mov dword [0xa7c684], eax
mov eax, dword [0xa7c684]
movzx eax, byte [eax]
mov byte [0xa7c695], al
mov eax, dword [0xa7c684]
add eax, 1
mov dword [0xa7c684], eax
mov eax, dword [0xa7c688]
movzx eax, byte [eax]
mov byte [0xa7c696], al
mov eax, dword [0xa7c688]
add eax, 1
mov dword [0xa7c688], eax
mov eax, dword [0xa7c688]
movzx eax, byte [eax]
mov byte [0xa7c697], al
mov eax, dword [0xa7c688]
add eax, 1
mov dword [0xa7c688], eax
mov eax, dword [0xa7c638]
test eax, eax
je 0x4fb345
movzx edx, byte [0xa7c694]
movzx eax, byte [0xa7c696]
cmp dl, al
jne 0x4fb345
movzx edx, byte [0xa7c695]
movzx eax, byte [0xa7c697]
cmp dl, al
jne 0x4fb345
movzx eax, byte [0xa7c695]
test al, al
jns 0x4fb2ca
mov edx, dword [0xa7c644]
mov eax, dword [0xa7c660]
cmp edx, eax
jne 0x4fb341
mov edx, dword [0xa7c618]
mov eax, dword [0xa7c658]
cmp edx, eax
jne 0x4fb2f7
mov edx, dword [0xa7c61c]
mov eax, dword [0xa7c65c]
cmp edx, eax
jne 0x4fb2f7
mov edx, dword [0xa7c640]
mov eax, dword [0xa7c664]
cmp edx, eax
jne 0x4fb344
mov edx, dword [0xa7c618]
mov eax, dword [0x583874]
cmp edx, eax
jne 0x4fbca2
mov edx, dword [0xa7c61c]
mov eax, dword [0x583878]
cmp edx, eax
jne 0x4fbca2
mov edx, dword [0xa7c658]
mov eax, dword [0x583874]
cmp edx, eax
jne 0x4fb345
mov edx, dword [0xa7c65c]
mov eax, dword [0x583878]
cmp edx, eax
je 0x4fbca2
jmp 0x4fb345
nop
jmp 0x4fb345
nop
mov eax, dword [0xa7c688]
sub eax, 2
mov dword [0xa7c688], eax
mov eax, dword [0xa7c688]
movzx edx, byte [0xa7c694]
mov byte [eax], dl
mov eax, dword [0xa7c688]
add eax, 1
mov dword [0xa7c688], eax
mov eax, dword [0xa7c688]
movzx edx, byte [0xa7c695]
mov byte [eax], dl
mov eax, dword [0xa7c688]
add eax, 1
mov dword [0xa7c688], eax
mov dword [0xa7c698], 0
mov eax, dword [0xa7c62c]
cmp eax, 0x1f
jle 0x4fb45e
movzx eax, byte [0xa7c694]
movzx eax, al
movzx eax, word [eax + eax + 0x5830c0]
movzx eax, ax
mov dword [0xa7c69c], eax
mov dword [0xa7c6a0], 1
mov eax, dword [0xa7c6a4]
test eax, eax
je 0x4fb3da
mov eax, dword [0xa7c6a4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [0xa7c6a0]
mov eax, dword [0x6e568c]
mov ecx, dword [0xa7c62c]
shl ecx, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x20], 0xa7c6b8
mov dword [esp + 0x1c], 0xa7c6b4
mov dword [esp + 0x18], 0xa7c6b0
mov dword [esp + 0x14], 0xa7c6ac
mov dword [esp + 0x10], 0xa7c6a8
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa7c69c
mov dword [esp], eax
call fcn.004a05d5
mov dword [0xa7c6bc], eax
mov eax, dword [0xa7c6a8]
mov dword [0xa7c6a4], eax
mov eax, dword [0xa7c6a8]
mov dword [0xa7c6c0], eax
mov dword [0xa7c6c4], 0
jmp 0x4fb552
mov dword [0xa7c6c4], 0
mov eax, dword [0xa7c62c]
cmp eax, 8
jne 0x4fb489
movzx eax, byte [0xa7c694]
movzx eax, al
shl eax, 6
add eax, 0xa6e640
mov dword [0xa7c6c0], eax
mov eax, dword [0xa7c62c]
cmp eax, 0xe
jne 0x4fb4ad
movzx eax, byte [0xa7c694]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa72640
mov dword [0xa7c6c0], eax
mov eax, dword [0xa7c62c]
cmp eax, 0x10
jne 0x4fb4ce
movzx eax, byte [0xa7c694]
movzx eax, al
shl eax, 7
add eax, 0xa72640
mov dword [0xa7c6c0], eax
mov eax, dword [0xa7c62c]
cmp eax, 9
jne 0x4fb4f9
movzx eax, byte [0xa7c694]
movzx eax, al
shl eax, 6
add eax, 0xa6e640
mov dword [0xa7c6c0], eax
mov dword [0xa7c698], 1
mov eax, dword [0xa7c62c]
cmp eax, 0xf
jne 0x4fb527
movzx eax, byte [0xa7c694]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa72640
mov dword [0xa7c6c0], eax
mov dword [0xa7c698], 1
mov eax, dword [0xa7c62c]
cmp eax, 0x11
jne 0x4fb552
movzx eax, byte [0xa7c694]
movzx eax, al
shl eax, 7
add eax, 0xa72640
mov dword [0xa7c6c0], eax
mov dword [0xa7c698], 1
movzx eax, byte [0xa7c695]
and eax, 0xf
mov byte [0xa7c6c8], al
mov eax, dword [0x583650]
test eax, eax
je 0x4fb593
movzx eax, byte [0xa7c695]
movzx eax, al
sar eax, 4
and eax, 7
mov byte [0xa7c6c9], al
movzx eax, byte [0xa7c695]
movzx eax, al
sar eax, 7
mov byte [0xa7c6ca], al
jmp 0x4fb5a5
movzx eax, byte [0xa7c695]
movzx eax, al
sar eax, 4
mov byte [0xa7c6c9], al
movzx eax, byte [0xa7c6ca]
test al, al
je 0x4fb5ce
mov eax, dword [0xa7c644]
test eax, eax
je 0x4fb5ce
mov eax, dword [0x583650]
test eax, eax
je 0x4fb5ce
movzx eax, byte [0xa7c6c9]
mov byte [0xa7c6c8], al
movzx eax, byte [0xa7c6c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa7bba0]
mov dword [0xa7c678], eax
movzx eax, byte [0xa7c6c9]
movzx eax, al
mov eax, dword [eax*4 + 0xa7bba0]
mov dword [0xa7c67c], eax
mov eax, dword [0x6f6078]
mov ecx, dword [0xa7c68c]
mov edx, dword [0x6f6094]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa7c680]
add ecx, edx
mov edx, dword [0xa7c690]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa7c6cc], eax
mov edx, dword [0x6f6094]
mov ecx, dword [0x6e5694]
mov eax, dword [0x6f6074]
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 [0xa7c628], eax
mov dword [0xa7c6d0], 0
jmp 0x4fb72f
mov dword [0xa7c6d4], 0
jmp 0x4fb6e3
mov eax, dword [0xa7c6c0]
movzx eax, byte [eax]
test al, al
je 0x4fb686
mov eax, dword [0xa7c6cc]
mov edx, dword [0xa7c678]
mov dword [eax], edx
jmp 0x4fb693
mov eax, dword [0xa7c6cc]
mov edx, dword [0xa7c67c]
mov dword [eax], edx
mov eax, dword [0xa7c698]
test eax, eax
je 0x4fb6bc
mov edx, dword [0xa7c6d4]
mov eax, dword [0xa7c698]
and eax, edx
test eax, eax
je 0x4fb6c9
mov eax, dword [0xa7c6c0]
add eax, 1
mov dword [0xa7c6c0], eax
jmp 0x4fb6c9
mov eax, dword [0xa7c6c0]
add eax, 1
mov dword [0xa7c6c0], eax
mov eax, dword [0xa7c6cc]
add eax, 4
mov dword [0xa7c6cc], eax
mov eax, dword [0xa7c6d4]
add eax, 1
mov dword [0xa7c6d4], eax
mov edx, dword [0xa7c6d4]
mov eax, dword [0xa7c630]
cmp edx, eax
setl al
test al, al
jne 0x4fb66b
mov eax, dword [0xa7c6cc]
mov edx, dword [0xa7c628]
shl edx, 2
add eax, edx
mov dword [0xa7c6cc], eax
mov edx, dword [0xa7c6c0]
mov eax, dword [0xa7c6c4]
add eax, edx
mov dword [0xa7c6c0], eax
mov eax, dword [0xa7c6d0]
add eax, 1
mov dword [0xa7c6d0], eax
mov edx, dword [0xa7c6d0]
mov eax, dword [0xa7c634]
cmp edx, eax
setl al
test al, al
jne 0x4fb65f
mov eax, dword [0x6f6074]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x4fbca6
mov eax, dword [0xa7c640]
test eax, eax
je 0x4fbca6
mov edx, dword [0xa7c658]
mov eax, dword [0xa7c618]
cmp edx, eax
jne 0x4fbca6
mov edx, dword [0xa7c65c]
mov eax, dword [0xa7c61c]
cmp edx, eax
jne 0x4fbca6
mov eax, dword [0x6f6074]
movzx eax, byte [eax + 0x3d]
movzx eax, al
mov dword [0xa7c6d8], eax
mov eax, dword [0x6f6074]
movzx eax, byte [eax + 0x3e]
movzx eax, al
mov dword [0xa7c6dc], eax
mov byte [0xa7c6e0], 0
mov byte [0xa7c6e1], 0
mov byte [0xa7c6e2], 0
mov byte [0xa7c6e3], 0
mov eax, dword [0xa7c6dc]
test eax, eax
jne 0x4fb7eb
mov eax, dword [0xa7c6d8]
test eax, eax
jne 0x4fbca5
mov byte [0xa7c6e2], 1
jmp 0x4fb949
mov edx, dword [0xa7c6dc]
mov eax, dword [0xa7c6d8]
cmp edx, eax
jge 0x4fb810
mov eax, dword [0xa7c6dc]
mov byte [0xa7c6e3], al
mov byte [0xa7c6e2], 0xff
jmp 0x4fb949
mov edx, dword [0xa7c6d8]
mov eax, dword [0xa7c6dc]
cmp edx, eax
jne 0x4fb852
mov eax, dword [0xa7c6d8]
cmp eax, 3
jg 0x4fb83f
mov eax, dword [0xa7c6d8]
mov byte [0xa7c6e3], al
mov byte [0xa7c6e2], 1
jmp 0x4fb949
mov byte [0xa7c6e0], 1
mov byte [0xa7c6e2], 1
jmp 0x4fb949
mov eax, dword [0xa7c6d8]
cmp eax, 2
jle 0x4fb8ba
mov edx, dword [0xa7c6dc]
mov eax, dword [0xa7c6d8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x4fb885
mov byte [0xa7c6e0], 1
mov byte [0xa7c6e2], 2
jmp 0x4fb949
mov edx, dword [0xa7c6dc]
mov eax, dword [0xa7c6d8]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x4fb8ae
mov byte [0xa7c6e0], 1
mov byte [0xa7c6e2], 3
jmp 0x4fb949
mov byte [0xa7c6e1], 1
jmp 0x4fb949
mov eax, dword [0xa7c6d8]
cmp eax, 1
jg 0x4fb907
mov eax, dword [0xa7c6dc]
cmp eax, 3
jg 0x4fb8f4
mov eax, dword [0xa7c6d8]
mov byte [0xa7c6e3], al
mov eax, dword [0xa7c6dc]
mov edx, eax
mov eax, dword [0xa7c6d8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
add eax, 1
mov byte [0xa7c6e2], al
jmp 0x4fb949
mov eax, dword [0xa7c6d8]
mov byte [0xa7c6e3], al
mov byte [0xa7c6e2], 0xff
jmp 0x4fb949
mov eax, dword [0xa7c6dc]
cmp eax, 3
jne 0x4fb921
mov byte [0xa7c6e3], 2
mov byte [0xa7c6e2], 2
jmp 0x4fb949
mov eax, dword [0xa7c6dc]
cmp eax, 4
jne 0x4fb93b
mov byte [0xa7c6e0], 1
mov byte [0xa7c6e2], 3
jmp 0x4fb949
mov byte [0xa7c6e3], 2
mov byte [0xa7c6e2], 0xff
mov edx, dword [0x6e5694]
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa7c6e4], eax
mov edx, dword [0x6e5690]
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa7c6e8], eax
movzx eax, byte [0xa7c6e1]
test al, al
je 0x4fba80
mov eax, dword [0xa7c6e8]
sub eax, 1
mov dword [0xa7c6d0], eax
mov eax, dword [0xa7c6e8]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov byte [0xa7c6e2], al
movzx eax, byte [0xa7c695]
and eax, 0xf
mov byte [0xa7c6c8], al
movzx eax, byte [0xa7c6c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa7bba0]
mov dword [0xa7c678], eax
mov eax, dword [0x6f6078]
mov ecx, dword [0xa7c68c]
mov edx, dword [0xa7c6d0]
add ecx, edx
mov edx, dword [0x6f6094]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa7c680]
add ecx, edx
mov edx, dword [0xa7c690]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa7c6cc], eax
mov dword [0xa7c6d4], 0
jmp 0x4fba3c
mov eax, dword [0xa7c6cc]
mov edx, dword [0xa7c678]
mov dword [eax], edx
mov eax, dword [0xa7c6cc]
add eax, 4
mov dword [0xa7c6cc], eax
mov eax, dword [0xa7c6d4]
add eax, 1
mov dword [0xa7c6d4], eax
mov edx, dword [0xa7c6d4]
mov eax, dword [0xa7c6e4]
cmp edx, eax
setl al
test al, al
jne 0x4fba15
mov eax, dword [0xa7c6d0]
sub eax, 1
mov dword [0xa7c6d0], eax
movzx eax, byte [0xa7c6e2]
sub eax, 1
mov byte [0xa7c6e2], al
movzx eax, byte [0xa7c6e2]
test al, al
je 0x4fbca6
jmp 0x4fb9d1
movzx eax, byte [0xa7c6e0]
test al, al
je 0x4fbb84
mov eax, dword [0xa7c6e8]
sub eax, 1
mov dword [0xa7c6d0], eax
mov eax, dword [0xa7c6d0]
cmp eax, 0xf
jne 0x4fbab0
mov dword [0xa7c6d0], 0xe
movzx eax, byte [0xa7c695]
and eax, 0xf
mov byte [0xa7c6c8], al
movzx eax, byte [0xa7c6c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa7bba0]
mov dword [0xa7c678], eax
mov eax, dword [0x6f6078]
mov ecx, dword [0xa7c68c]
mov edx, dword [0xa7c6d0]
add ecx, edx
mov edx, dword [0x6f6094]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa7c680]
add ecx, edx
mov edx, dword [0xa7c690]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa7c6cc], eax
mov dword [0xa7c6d4], 0
jmp 0x4fbb40
mov eax, dword [0xa7c6cc]
mov edx, dword [0xa7c678]
mov dword [eax], edx
mov eax, dword [0xa7c6cc]
add eax, 4
mov dword [0xa7c6cc], eax
mov eax, dword [0xa7c6d4]
add eax, 1
mov dword [0xa7c6d4], eax
mov edx, dword [0xa7c6d4]
mov eax, dword [0xa7c6e4]
cmp edx, eax
setl al
test al, al
jne 0x4fbb19
mov eax, dword [0xa7c6d0]
sub eax, 1
mov dword [0xa7c6d0], eax
movzx eax, byte [0xa7c6e2]
sub eax, 1
mov byte [0xa7c6e2], al
movzx eax, byte [0xa7c6e2]
test al, al
je 0x4fbca6
jmp 0x4fbad5
movzx eax, byte [0xa7c6e3]
movzx edx, al
mov eax, dword [0xa7c6e8]
cmp edx, eax
jge 0x4fbca6
movzx eax, byte [0xa7c6e3]
movzx eax, al
mov dword [0xa7c6d0], eax
movzx eax, byte [0xa7c695]
and eax, 0xf
mov byte [0xa7c6c8], al
movzx eax, byte [0xa7c6c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa7bba0]
mov dword [0xa7c678], eax
movzx eax, byte [0xa7c6e2]
cmp al, 0xff
jne 0x4fbbf6
mov eax, dword [0xa7c6e8]
mov edx, eax
movzx eax, byte [0xa7c6e3]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov byte [0xa7c6e2], al
jmp 0x4fbbf6
nop
mov eax, dword [0x6f6078]
mov ecx, dword [0xa7c68c]
mov edx, dword [0xa7c6d0]
add ecx, edx
mov edx, dword [0x6f6094]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa7c680]
add ecx, edx
mov edx, dword [0xa7c690]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa7c6cc], eax
mov dword [0xa7c6d4], 0
jmp 0x4fbc61
mov eax, dword [0xa7c6cc]
mov edx, dword [0xa7c678]
mov dword [eax], edx
mov eax, dword [0xa7c6cc]
add eax, 4
mov dword [0xa7c6cc], eax
mov eax, dword [0xa7c6d4]
add eax, 1
mov dword [0xa7c6d4], eax
mov edx, dword [0xa7c6d4]
mov eax, dword [0xa7c6e4]
cmp edx, eax
setl al
test al, al
jne 0x4fbc3a
mov eax, dword [0xa7c6d0]
add eax, 1
mov dword [0xa7c6d0], eax
movzx eax, byte [0xa7c6e2]
sub eax, 1
mov byte [0xa7c6e2], al
movzx eax, byte [0xa7c6e2]
test al, al
jne 0x4fbbf5
jmp 0x4fbca6
nop
jmp 0x4fbca6
nop
mov edx, dword [0x6e5694]
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa7c690]
add eax, edx
mov dword [0xa7c690], eax
mov eax, dword [0xa7c618]
add eax, 1
mov dword [0xa7c618], eax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0xa7c618]
cmp edx, eax
setg al
test al, al
jne 0x4fb20f
mov edx, dword [0x6e5690]
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa7c68c]
add eax, edx
mov dword [0xa7c68c], eax
mov eax, dword [0xa7c61c]
add eax, 1
mov dword [0xa7c61c], eax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov eax, dword [0xa7c61c]
cmp edx, eax
setg al
test al, al
jne 0x4fb1f6
mov eax, dword [0xa7c644]
mov dword [0xa7c660], eax
mov eax, dword [0xa7c640]
mov dword [0xa7c664], eax
mov eax, dword [0xa7c658]
mov dword [0x583874], eax
mov eax, dword [0xa7c65c]
mov dword [0x583878], eax
mov dword [0x6ffe20], 1
movzx eax, byte [0xa7c5f0]
test al, al
je 0x4fbd80
call fcn.004fa802
mov eax, dword [0xa7c5f4]
mov edx, eax
sar edx, 0x1f
mov dword [0xa7c6f0], eax
mov dword [0xa7c6f4], edx
jmp 0x4fc575
mov eax, dword [0x6f6074]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x4fc1f4
movzx eax, byte [0xa7c5f0]
test al, al
jne 0x4fbf4b
mov dword [0xa7c6f8], 0
mov dword [0xa7c6fc], 0
mov dword [0xa7c678], 0xffffffff
mov dword [0xa7c67c], 0
jmp 0x4fbe6e
mov eax, dword [0xa7c67c]
shl eax, 5
add eax, 0x6e5520
mov eax, dword [eax]
cmp eax, 4
je 0x4fbe0f
mov eax, dword [0xa7c67c]
shl eax, 5
add eax, 0x6e5520
mov eax, dword [eax]
cmp eax, 3
jne 0x4fbe61
mov eax, dword [0xa7c67c]
shl eax, 5
add eax, 0x6e5520
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa7c6f8]
mov edx, dword [0xa7c6fc]
cmp ebx, edx
jl 0x4fbe61
cmp ebx, edx
jg 0x4fbe39
cmp ecx, eax
jbe 0x4fbe61
mov eax, dword [0xa7c67c]
shl eax, 5
add eax, 0x6e5520
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa7c6f8], eax
mov dword [0xa7c6fc], edx
mov eax, dword [0xa7c67c]
mov dword [0xa7c678], eax
mov eax, dword [0xa7c67c]
add eax, 1
mov dword [0xa7c67c], eax
mov eax, dword [0xa7c67c]
cmp eax, 2
setle al
test al, al
jne 0x4fbde7
mov eax, dword [0x6e549c]
test eax, eax
jne 0x4fc01f
mov eax, dword [0xa7c678]
cmp eax, 0xffffffff
je 0x4fc026
mov eax, dword [0x6ffe20]
test eax, eax
je 0x4fc022
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa7c600], eax
mov eax, dword [0xa7c678]
shl eax, 5
add eax, 0x6e5530
mov edx, dword [eax + 4]
mov eax, dword [0xa7c678]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax + 8]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [0xa7c600]
cmp edx, eax
jne 0x4fc025
mov eax, dword [0x583854]
test eax, eax
je 0x4fc76a
mov eax, dword [0xa7c600]
mov ecx, eax
mov eax, dword [0x6f6074]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa7c678]
shl eax, 5
add eax, 0x6e5530
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 0x4fc76d
jmp 0x4fc026
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa7c600], eax
mov edx, dword [0xa7c600]
mov eax, dword [0x58386c]
cmp edx, eax
je 0x4fbfa8
mov eax, dword [0xa7bb94]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa7c600]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa7bb94], eax
mov eax, dword [0xa7c600]
mov dword [0x58386c], eax
jmp 0x4fbff9
mov eax, dword [0x6e549c]
test eax, eax
jne 0x4fbff5
mov eax, dword [0x583854]
test eax, eax
je 0x4fc770
mov eax, dword [0xa7c600]
mov ecx, eax
mov eax, dword [0x6f6074]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa7bb94]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4fbff8
mov eax, dword [0x6ffe20]
test eax, eax
jne 0x4fc773
jmp 0x4fbff9
nop
jmp 0x4fbff9
nop
mov eax, dword [0xa7c600]
mov ecx, eax
mov eax, dword [0x6f6074]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa7bb94]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4fc026
nop
jmp 0x4fc026
nop
jmp 0x4fc026
nop
mov edx, dword [0x6f6094]
mov eax, dword [0x6f6098]
imul eax, edx
shl eax, 2
mov dword [0xa7c700], eax
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov edx, dword [eax + 0xc]
mov eax, dword [0xa7c700]
cmp edx, eax
jge 0x4fc0a3
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa7c5f4]
mov eax, dword [0xa7c700]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6e5530
mov dword [edx], eax
mov edx, dword [0xa7c5f4]
mov eax, dword [0xa7c700]
shl edx, 5
add edx, 0x6e5530
mov dword [edx + 0xc], eax
mov edx, dword [0xa7c5f4]
mov eax, dword [0x6f6094]
shl edx, 5
add edx, 0x6e5530
mov dword [edx + 4], eax
mov edx, dword [0xa7c5f4]
mov eax, dword [0x6f6098]
shl edx, 5
add edx, 0x6e5530
mov dword [edx + 8], eax
movzx eax, byte [0xa7c5f0]
test al, al
jne 0x4fc130
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov edx, dword [eax + 4]
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0x6f6074]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4fc571
mov eax, dword [0xa7bb94]
mov dword [0xa7c704], eax
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax]
mov dword [0xa7c708], eax
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov edx, dword [eax + 4]
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax + 8]
imul eax, edx
mov dword [0xa7c70c], eax
mov eax, dword [0xa7c70c]
test eax, eax
jle 0x4fc571
jmp 0x4fc1d9
mov eax, dword [0xa7c704]
mov edx, dword [eax]
mov dword [0xa7c710], edx
add eax, 4
mov dword [0xa7c704], eax
mov eax, dword [0xa7c708]
mov edx, dword [0xa7c710]
mov ecx, edx
and ecx, 0xff00ff00
mov edx, dword [0xa7c710]
and edx, 0xff0000
shr edx, 0x10
or ecx, edx
mov edx, dword [0xa7c710]
and edx, 0xff
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
add eax, 4
mov dword [0xa7c708], eax
mov eax, dword [0xa7c70c]
test eax, eax
setne dl
sub eax, 1
mov dword [0xa7c70c], eax
test dl, dl
jne 0x4fc185
jmp 0x4fc571
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x4fc295
call fcn.004a0603
and eax, 0x200
mov dword [0xa7c678], eax
mov eax, dword [0xa7c678]
test eax, eax
je 0x4fc229
mov dword [0xa7c678], 1
mov dword [0xa7c600], 0
jmp 0x4fc286
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x48]
mov edx, dword [0xa7c600]
shl edx, 2
lea ecx, [eax + edx]
mov edx, dword [0xa7c678]
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x48]
mov ebx, dword [0xa7c600]
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 + 0xa6e5e0]
mov dword [ecx], eax
mov eax, dword [0xa7c600]
add eax, 1
mov dword [0xa7c600], eax
mov eax, dword [0xa7c600]
cmp eax, 3
setle al
test al, al
jne 0x4fc235
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
mov dword [0xa7c600], eax
mov eax, dword [0x6f6074]
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 [0xa7c678], eax
mov edx, dword [0xa7c600]
mov eax, dword [0x58386c]
cmp edx, eax
je 0x4fc30d
mov eax, dword [0xa7bb94]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa7c600]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa7bb94], eax
mov eax, dword [0xa7c600]
mov dword [0x58386c], eax
jmp 0x4fc38b
mov eax, dword [0x6e549c]
test eax, eax
jne 0x4fc384
mov eax, dword [0x583854]
test eax, eax
je 0x4fc776
mov eax, dword [0xa7c600]
mov ecx, eax
mov eax, dword [0x6f6074]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa7bb94]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4fc387
mov eax, dword [0xa7c678]
shl eax, 2
mov edx, eax
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa7bba0
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4fc38a
mov eax, dword [0x6ffe20]
test eax, eax
jne 0x4fc779
jmp 0x4fc38b
nop
jmp 0x4fc38b
nop
jmp 0x4fc38b
nop
mov edx, dword [0x6f6094]
mov eax, dword [0x6f6098]
imul eax, edx
shl eax, 2
mov dword [0xa7c714], eax
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov edx, dword [eax + 0xc]
mov eax, dword [0xa7c714]
cmp edx, eax
jge 0x4fc408
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa7c5f4]
mov eax, dword [0xa7c714]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6e5530
mov dword [edx], eax
mov edx, dword [0xa7c5f4]
mov eax, dword [0xa7c714]
shl edx, 5
add edx, 0x6e5530
mov dword [edx + 0xc], eax
mov edx, dword [0xa7c5f4]
mov eax, dword [0x6f6094]
shl edx, 5
add edx, 0x6e5530
mov dword [edx + 4], eax
mov edx, dword [0xa7c5f4]
mov eax, dword [0x6f6098]
shl edx, 5
add edx, 0x6e5530
mov dword [edx + 8], eax
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax]
mov dword [0x6f6078], eax
mov eax, dword [0xa7c600]
mov ecx, eax
mov eax, dword [0x6f6074]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa7bb94]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa7c678]
shl eax, 2
mov edx, eax
mov eax, dword [0x6f6074]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa7bba0
call sub.msvcrt.dll_memcpy
movzx eax, byte [0xa7c5f0]
test al, al
je 0x4fc4a4
call fcn.004fa802
mov eax, dword [0xa7bb94]
mov dword [0xa7c718], eax
mov eax, dword [0x6f6078]
mov dword [0xa7c71c], eax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa7c690], eax
mov eax, dword [0x6f6074]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa7c68c], eax
mov dword [0xa7c61c], 0
jmp 0x4fc54b
mov dword [0xa7c618], 0
jmp 0x4fc52a
mov edx, dword [0xa7c71c]
mov eax, dword [0xa7c718]
movzx ecx, byte [eax]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0xa7bba0]
mov dword [edx], ecx
add edx, 4
mov dword [0xa7c71c], edx
add eax, 1
mov dword [0xa7c718], eax
mov eax, dword [0xa7c618]
add eax, 1
mov dword [0xa7c618], eax
mov edx, dword [0xa7c618]
mov eax, dword [0xa7c690]
cmp edx, eax
setl al
test al, al
jne 0x4fc4f2
mov eax, dword [0xa7c61c]
add eax, 1
mov dword [0xa7c61c], eax
mov edx, dword [0xa7c61c]
mov eax, dword [0xa7c68c]
cmp edx, eax
setl al
test al, al
jne 0x4fc4e6
movzx eax, byte [0xa7c5f0]
test al, al
je 0x4fc574
call fcn.004fa802
jmp 0x4fc574
nop
jmp 0x4fc575
nop
mov dword [0x6e549c], 0
mov dword [0x6ffe20], 1
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5520
mov dword [eax], 3
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5520
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x6e5588], eax
mov dword [0x6e558c], edx
mov eax, dword [0x6dfb4c]
test eax, eax
je 0x4fc77a
mov eax, dword [0x6e5600]
test eax, eax
je 0x4fc77a
mov eax, dword [0xa7c720]
test eax, eax
jne 0x4fc623
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 [0xa7c720], eax
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax + 4]
mov dword [0xa7c724], eax
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov eax, dword [eax + 8]
mov dword [0xa7c728], eax
mov eax, dword [0xa7c72c]
add eax, 1
mov dword [0xa7c72c], eax
mov eax, dword [0xa7c72c]
mov dword [0xa7c730], eax
mov eax, dword [0xa7c724]
mov dword [0xa7c734], eax
mov eax, dword [0xa7c728]
mov dword [0xa7c738], eax
mov eax, dword [0xa7c720]
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 [0xa7c724]
mov eax, dword [0xa7c728]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5530
mov edx, dword [eax]
mov eax, dword [0xa7c720]
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 [0xa7c720]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call eax
sub esp, 4
mov eax, dword [0xa7c720]
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 [0xa7c720]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0xa7c730
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x4fc77a
nop
jmp 0x4fc77a
nop
jmp 0x4fc77a
nop
jmp 0x4fc77a
nop
jmp 0x4fc77a
nop
jmp 0x4fc77a
nop
jmp 0x4fc77a
nop
jmp 0x4fc77a
nop
jmp 0x4fc77a
nop
jmp 0x4fc77a
nop
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5520
mov eax, dword [eax]
cmp eax, 2
jne 0x4fc7bf
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5520
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x6e5588], eax
mov dword [0x6e558c], edx
mov eax, dword [0xa7c5f4]
shl eax, 5
add eax, 0x6e5520
mov dword [eax], 1
mov eax, dword [0x6ffe34]
cmp eax, 1
jne 0x4fc7e4
mov dword [0x6ffe34], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x5832d8]
cmp eax, 0xffffffff
jne 0x4fc7f8
mov dword [0x5832d8], 0
mov dword [0xa7bb40], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret