Function at 0x4ab602
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov byte [0xa2cbd0], 0
mov eax, dword [0x690b4c]
test eax, eax
je 0x4ab622
mov byte [0xa2cbd0], 1
mov eax, dword [0x6b0414]
cmp eax, 1
jne 0x4ab647
mov dword [0x6b0414], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x690b4c]
test eax, eax
jne 0x4ab668
mov eax, dword [0x695c64]
test eax, eax
je 0x4ab668
mov dword [0xa2c120], 1
jmp 0x4ad587
mov eax, dword [0x6b0414]
test eax, eax
jne 0x4ad543
mov dword [0xa2cbd4], 0xffffffff
mov eax, dword [0x5340a0]
mov edx, dword [0x5340a4]
mov dword [0xa2cbd8], eax
mov dword [0xa2cbdc], edx
mov dword [0xa2cbe0], 0
jmp 0x4ab714
mov eax, dword [0xa2cbe0]
shl eax, 5
add eax, 0x695b00
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa2cbd8]
mov edx, dword [0xa2cbdc]
cmp ebx, edx
jg 0x4ab707
cmp ebx, edx
jl 0x4ab6cb
cmp ecx, eax
jae 0x4ab707
mov eax, dword [0xa2cbe0]
shl eax, 5
add eax, 0x695b00
mov eax, dword [eax]
cmp eax, 3
jne 0x4ab707
mov eax, dword [0xa2cbe0]
shl eax, 5
add eax, 0x695b00
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa2cbd8], eax
mov dword [0xa2cbdc], edx
mov eax, dword [0xa2cbe0]
mov dword [0xa2cbd4], eax
mov eax, dword [0xa2cbe0]
add eax, 1
mov dword [0xa2cbe0], eax
mov eax, dword [0xa2cbe0]
cmp eax, 2
setle al
test al, al
jne 0x4ab6a1
mov dword [0xa2cbe0], 0
jmp 0x4ab75e
mov eax, dword [0xa2cbe0]
shl eax, 5
add eax, 0x695b00
mov eax, dword [eax]
cmp eax, 1
jne 0x4ab751
mov eax, dword [0xa2cbe0]
mov dword [0xa2cbd4], eax
mov eax, dword [0xa2cbe0]
add eax, 1
mov dword [0xa2cbe0], eax
mov eax, dword [0xa2cbe0]
cmp eax, 2
setle al
test al, al
jne 0x4ab733
mov eax, dword [0xa2cbd4]
cmp eax, 0xffffffff
jne 0x4ab788
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.00451e0b
jmp 0x4ad587
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b00
mov dword [eax], 2
mov ecx, dword [0xa2cbd4]
mov eax, dword [0x5340a0]
mov edx, dword [0x5340a4]
shl ecx, 5
add ecx, 0x695b00
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add eax, 1
adc edx, 0
mov dword [0x5340a0], eax
mov dword [0x5340a4], edx
mov eax, dword [0x690b4c]
test eax, eax
je 0x4ab81d
mov dword [esp + 8], 1
fld qword [0x564008]
fstp qword [esp]
call fcn.00473592
fstp qword [0xa2cbe8]
fld qword [0xa2cbf0]
fld qword [0xa2cbe8]
fsubp st(1)
fabs
fld qword [0x564190]
fucompi st(1)
fstp st(0)
ja 0x4ad4e2
fld qword [0xa2cbe8]
fstp qword [0xa2cbf0]
mov eax, dword [0x6a6654]
test eax, eax
je 0x4ad4e5
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa2cbf8], eax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa2cbfc], eax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4ab8ac
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x695c74]
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa2cbf8], eax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x695c70]
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa2cbfc], eax
mov eax, dword [0xa2cbf8]
cmp eax, 0x200
jg 0x4ab8dc
mov eax, dword [0xa2cbfc]
cmp eax, 0x180
jg 0x4ab8dc
mov eax, dword [0xa2cbf8]
add eax, eax
mov dword [0xa2cbf8], eax
mov eax, dword [0xa2cbfc]
add eax, eax
mov dword [0xa2cbfc], eax
mov dword [0xa2cc00], 0xffffffff
mov dword [0xa2cc04], 0xffffffff
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa2cbf8], eax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa2cbfc], eax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4ab972
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x695c74]
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa2cbf8], eax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x695c70]
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa2cbfc], eax
mov eax, dword [0xa2cbf8]
mov dword [0x6a6674], eax
mov eax, dword [0xa2cbfc]
mov dword [0x6a6678], eax
mov dword [0xa2cc08], 0
mov dword [0x6a667c], 0
mov eax, dword [0x6a6658]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4acb1e
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x30]
mov dword [0xa2cc0c], eax
mov eax, dword [0x695c74]
mov edx, dword [0xa2cc0c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa2cc10], eax
mov eax, dword [0x695c70]
mov edx, dword [0xa2cc0c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa2cc14], eax
mov eax, dword [0x6b0400]
mov dword [0xa2cc18], eax
mov dword [0xa2cc1c], 0
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
add eax, eax
mov dword [0xa2cbe0], eax
mov eax, dword [0xa2cbe0]
mov edx, eax
mov eax, dword [0x534560]
cmp edx, eax
je 0x4aba68
mov eax, dword [0x6b0404]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa2cbe0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x6b0404], eax
mov eax, dword [0xa2cbe0]
mov dword [0x534560], eax
mov dword [0xa2cc18], 0
mov eax, dword [0x534854]
test eax, eax
jne 0x4aba7f
mov eax, dword [0xa2cc18]
cmp eax, 1
je 0x4ad4e8
mov eax, dword [0xa2cc18]
test eax, eax
jne 0x4abaaa
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa2c180
call sub.msvcrt.dll_memcpy
jmp 0x4abaf8
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa2c180
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4abaf8
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa2c180
call sub.msvcrt.dll_memcpy
mov dword [0xa2cc18], 0
mov eax, dword [0xa2cc18]
test eax, eax
je 0x4abb32
mov ecx, dword [0x534560]
mov eax, dword [0x6a6654]
mov edx, dword [eax + 0x40]
mov eax, dword [0x6b0404]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4abb32
mov dword [0xa2cc1c], 1
mov eax, dword [0x6b02ec]
and eax, 8
test eax, eax
je 0x4abb4a
mov dword [0xa2cc20], 1
jmp 0x4abb54
mov dword [0xa2cc20], 0
mov eax, dword [0x6b02ec]
and eax, 8
test eax, eax
je 0x4abb6c
mov dword [0xa2cc24], 1
jmp 0x4abb76
mov dword [0xa2cc24], 0
mov eax, dword [0x690b4c]
test eax, eax
je 0x4abc42
mov dword [esp + 8], 1
fld qword [0x564008]
fstp qword [esp]
call fcn.00473592
fld qword [0x563f90]
fdivp st(1)
fstp qword [0xa2cc28]
fld qword [0xa2cc28]
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 [0xa2cc30], eax
mov dword [0xa2cc34], edx
mov eax, dword [0xa2cc30]
mov edx, dword [0xa2cc34]
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 0x4abc05
mov dword [0xa2cc20], 1
jmp 0x4abc0f
mov dword [0xa2cc20], 0
mov eax, dword [0xa2cc30]
mov edx, dword [0xa2cc34]
mov esi, eax
and esi, 1
mov edi, edx
and edi, 0
mov eax, edi
or eax, esi
test eax, eax
je 0x4abc38
mov dword [0xa2cc24], 1
jmp 0x4abc42
mov dword [0xa2cc24], 0
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x38]
cwde
sub eax, 1
mov dword [0xa2cc38], eax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x3a]
cwde
sub eax, 1
mov dword [0xa2cc3c], eax
mov eax, dword [0x6a6654]
movzx eax, byte [eax + 0x51]
cmp al, 2
jne 0x4abca2
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa2cc3c]
cmp edx, eax
jle 0x4abca2
mov eax, dword [0xa2cc3c]
add eax, 1
mov dword [0xa2cc3c], eax
mov dword [0xa2cc38], 0
mov eax, dword [0xa2cc18]
test eax, eax
je 0x4abd05
mov edx, dword [0xa2cc24]
mov eax, dword [0xa2cc40]
cmp edx, eax
je 0x4abcc4
mov dword [0xa2cc1c], 1
mov edx, dword [0xa2cc20]
mov eax, dword [0xa2cc44]
cmp edx, eax
je 0x4abcdd
mov dword [0xa2cc1c], 1
mov edx, dword [0xa2cc38]
mov eax, dword [0x534874]
cmp edx, eax
jne 0x4abcfb
mov edx, dword [0xa2cc3c]
mov eax, dword [0x534878]
cmp edx, eax
je 0x4abd05
mov dword [0xa2cc1c], 1
mov eax, dword [0xa2cc18]
test eax, eax
jne 0x4abd18
mov dword [0xa2cc1c], 1
mov eax, dword [0xa2cc1c]
test eax, eax
je 0x4ad4eb
mov edx, dword [0x6a6674]
mov eax, dword [0x6a6678]
imul eax, edx
shl eax, 2
mov dword [0xa2cc48], eax
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov edx, dword [eax + 0xc]
mov eax, dword [0xa2cc48]
cmp edx, eax
jge 0x4abda2
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa2cbd4]
mov eax, dword [0xa2cc48]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x695b10
mov dword [edx], eax
mov edx, dword [0xa2cbd4]
mov eax, dword [0xa2cc48]
shl edx, 5
add edx, 0x695b10
mov dword [edx + 0xc], eax
mov edx, dword [0xa2cbd4]
mov eax, dword [0x6a6674]
shl edx, 5
add edx, 0x695b10
mov dword [edx + 4], eax
mov edx, dword [0xa2cbd4]
mov eax, dword [0x6a6678]
shl edx, 5
add edx, 0x695b10
mov dword [edx + 8], eax
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax]
mov dword [0x6a6658], eax
mov eax, dword [0xa2cc18]
test eax, eax
je 0x4abf30
mov dword [0xa2cc50], 0
mov dword [0xa2cc54], 0
mov dword [0xa2cc58], 0xffffffff
mov dword [0xa2cc5c], 0
jmp 0x4abea5
mov eax, dword [0xa2cc5c]
shl eax, 5
add eax, 0x695b00
mov eax, dword [eax]
cmp eax, 4
je 0x4abe46
mov eax, dword [0xa2cc5c]
shl eax, 5
add eax, 0x695b00
mov eax, dword [eax]
cmp eax, 3
jne 0x4abe98
mov eax, dword [0xa2cc5c]
shl eax, 5
add eax, 0x695b00
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa2cc50]
mov edx, dword [0xa2cc54]
cmp ebx, edx
jl 0x4abe98
cmp ebx, edx
jg 0x4abe70
cmp ecx, eax
jbe 0x4abe98
mov eax, dword [0xa2cc5c]
shl eax, 5
add eax, 0x695b00
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa2cc50], eax
mov dword [0xa2cc54], edx
mov eax, dword [0xa2cc5c]
mov dword [0xa2cc58], eax
mov eax, dword [0xa2cc5c]
add eax, 1
mov dword [0xa2cc5c], eax
mov eax, dword [0xa2cc5c]
cmp eax, 2
setle al
test al, al
jne 0x4abe1e
mov eax, dword [0xa2cc58]
cmp eax, 0xffffffff
je 0x4abf1a
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov edx, dword [eax + 4]
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa2cc58]
shl eax, 5
add eax, 0x695b10
mov edx, dword [eax]
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4abf30
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.00451e0b
mov dword [0xa2cc18], 0
mov dword [0xa2cc60], 0
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x40]
mov dword [0xa2cc64], eax
mov eax, dword [0x6b0404]
mov dword [0xa2cc68], eax
movzx eax, byte [0xa2cbd0]
test al, al
je 0x4abf61
call fcn.004ab586
mov dword [0xa2cc6c], 0
mov dword [0xa2cbfc], 0
jmp 0x4acaa4
mov dword [0xa2cc70], 0
mov dword [0xa2cbf8], 0
jmp 0x4aca58
mov eax, dword [0xa2cc64]
movzx eax, byte [eax]
mov byte [0xa2cc74], al
mov eax, dword [0xa2cc64]
add eax, 1
mov dword [0xa2cc64], eax
mov eax, dword [0xa2cc64]
movzx eax, byte [eax]
mov byte [0xa2cc75], al
mov eax, dword [0xa2cc64]
add eax, 1
mov dword [0xa2cc64], eax
mov eax, dword [0xa2cc68]
movzx eax, byte [eax]
mov byte [0xa2cc76], al
mov eax, dword [0xa2cc68]
add eax, 1
mov dword [0xa2cc68], eax
mov eax, dword [0xa2cc68]
movzx eax, byte [eax]
mov byte [0xa2cc77], al
mov eax, dword [0xa2cc68]
add eax, 1
mov dword [0xa2cc68], eax
mov eax, dword [0xa2cc18]
test eax, eax
je 0x4ac0c9
movzx edx, byte [0xa2cc74]
movzx eax, byte [0xa2cc76]
cmp dl, al
jne 0x4ac0c9
movzx edx, byte [0xa2cc75]
movzx eax, byte [0xa2cc77]
cmp dl, al
jne 0x4ac0c9
movzx eax, byte [0xa2cc75]
test al, al
jns 0x4ac04e
mov edx, dword [0xa2cc24]
mov eax, dword [0xa2cc40]
cmp edx, eax
jne 0x4ac0c5
mov edx, dword [0xa2cbf8]
mov eax, dword [0xa2cc38]
cmp edx, eax
jne 0x4ac07b
mov edx, dword [0xa2cbfc]
mov eax, dword [0xa2cc3c]
cmp edx, eax
jne 0x4ac07b
mov edx, dword [0xa2cc20]
mov eax, dword [0xa2cc44]
cmp edx, eax
jne 0x4ac0c8
mov edx, dword [0xa2cbf8]
mov eax, dword [0x534874]
cmp edx, eax
jne 0x4aca26
mov edx, dword [0xa2cbfc]
mov eax, dword [0x534878]
cmp edx, eax
jne 0x4aca26
mov edx, dword [0xa2cc38]
mov eax, dword [0x534874]
cmp edx, eax
jne 0x4ac0c9
mov edx, dword [0xa2cc3c]
mov eax, dword [0x534878]
cmp edx, eax
je 0x4aca26
jmp 0x4ac0c9
nop
jmp 0x4ac0c9
nop
mov eax, dword [0xa2cc68]
sub eax, 2
mov dword [0xa2cc68], eax
mov eax, dword [0xa2cc68]
movzx edx, byte [0xa2cc74]
mov byte [eax], dl
mov eax, dword [0xa2cc68]
add eax, 1
mov dword [0xa2cc68], eax
mov eax, dword [0xa2cc68]
movzx edx, byte [0xa2cc75]
mov byte [eax], dl
mov eax, dword [0xa2cc68]
add eax, 1
mov dword [0xa2cc68], eax
mov dword [0xa2cc78], 0
mov eax, dword [0xa2cc0c]
cmp eax, 0x1f
jle 0x4ac1e2
movzx eax, byte [0xa2cc74]
movzx eax, al
movzx eax, word [eax + eax + 0x5340c0]
movzx eax, ax
mov dword [0xa2cc7c], eax
mov dword [0xa2cc80], 1
mov eax, dword [0xa2cc84]
test eax, eax
je 0x4ac15e
mov eax, dword [0xa2cc84]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [0xa2cc80]
mov eax, dword [0x695c6c]
mov ecx, dword [0xa2cc0c]
shl ecx, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x20], 0xa2cc98
mov dword [esp + 0x1c], 0xa2cc94
mov dword [esp + 0x18], 0xa2cc90
mov dword [esp + 0x14], 0xa2cc8c
mov dword [esp + 0x10], 0xa2cc88
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa2cc7c
mov dword [esp], eax
call fcn.00451359
mov dword [0xa2cc9c], eax
mov eax, dword [0xa2cc88]
mov dword [0xa2cc84], eax
mov eax, dword [0xa2cc88]
mov dword [0xa2cca0], eax
mov dword [0xa2cca4], 0
jmp 0x4ac2d6
mov dword [0xa2cca4], 0
mov eax, dword [0xa2cc0c]
cmp eax, 8
jne 0x4ac20d
movzx eax, byte [0xa2cc74]
movzx eax, al
shl eax, 6
add eax, 0xa1ec20
mov dword [0xa2cca0], eax
mov eax, dword [0xa2cc0c]
cmp eax, 0xe
jne 0x4ac231
movzx eax, byte [0xa2cc74]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa22c20
mov dword [0xa2cca0], eax
mov eax, dword [0xa2cc0c]
cmp eax, 0x10
jne 0x4ac252
movzx eax, byte [0xa2cc74]
movzx eax, al
shl eax, 7
add eax, 0xa22c20
mov dword [0xa2cca0], eax
mov eax, dword [0xa2cc0c]
cmp eax, 9
jne 0x4ac27d
movzx eax, byte [0xa2cc74]
movzx eax, al
shl eax, 6
add eax, 0xa1ec20
mov dword [0xa2cca0], eax
mov dword [0xa2cc78], 1
mov eax, dword [0xa2cc0c]
cmp eax, 0xf
jne 0x4ac2ab
movzx eax, byte [0xa2cc74]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa22c20
mov dword [0xa2cca0], eax
mov dword [0xa2cc78], 1
mov eax, dword [0xa2cc0c]
cmp eax, 0x11
jne 0x4ac2d6
movzx eax, byte [0xa2cc74]
movzx eax, al
shl eax, 7
add eax, 0xa22c20
mov dword [0xa2cca0], eax
mov dword [0xa2cc78], 1
movzx eax, byte [0xa2cc75]
and eax, 0xf
mov byte [0xa2cca8], al
mov eax, dword [0x534650]
test eax, eax
je 0x4ac317
movzx eax, byte [0xa2cc75]
movzx eax, al
sar eax, 4
and eax, 7
mov byte [0xa2cca9], al
movzx eax, byte [0xa2cc75]
movzx eax, al
sar eax, 7
mov byte [0xa2ccaa], al
jmp 0x4ac329
movzx eax, byte [0xa2cc75]
movzx eax, al
sar eax, 4
mov byte [0xa2cca9], al
movzx eax, byte [0xa2ccaa]
test al, al
je 0x4ac352
mov eax, dword [0xa2cc24]
test eax, eax
je 0x4ac352
mov eax, dword [0x534650]
test eax, eax
je 0x4ac352
movzx eax, byte [0xa2cca9]
mov byte [0xa2cca8], al
movzx eax, byte [0xa2cca8]
movzx eax, al
mov eax, dword [eax*4 + 0xa2c180]
mov dword [0xa2cc58], eax
movzx eax, byte [0xa2cca9]
movzx eax, al
mov eax, dword [eax*4 + 0xa2c180]
mov dword [0xa2cc5c], eax
mov eax, dword [0x6a6658]
mov ecx, dword [0xa2cc6c]
mov edx, dword [0x6a6674]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa2cc60]
add ecx, edx
mov edx, dword [0xa2cc70]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2ccac], eax
mov edx, dword [0x6a6674]
mov ecx, dword [0x695c74]
mov eax, dword [0x6a6654]
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 [0xa2cc08], eax
mov dword [0xa2ccb0], 0
jmp 0x4ac4b3
mov dword [0xa2ccb4], 0
jmp 0x4ac467
mov eax, dword [0xa2cca0]
movzx eax, byte [eax]
test al, al
je 0x4ac40a
mov eax, dword [0xa2ccac]
mov edx, dword [0xa2cc58]
mov dword [eax], edx
jmp 0x4ac417
mov eax, dword [0xa2ccac]
mov edx, dword [0xa2cc5c]
mov dword [eax], edx
mov eax, dword [0xa2cc78]
test eax, eax
je 0x4ac440
mov edx, dword [0xa2ccb4]
mov eax, dword [0xa2cc78]
and eax, edx
test eax, eax
je 0x4ac44d
mov eax, dword [0xa2cca0]
add eax, 1
mov dword [0xa2cca0], eax
jmp 0x4ac44d
mov eax, dword [0xa2cca0]
add eax, 1
mov dword [0xa2cca0], eax
mov eax, dword [0xa2ccac]
add eax, 4
mov dword [0xa2ccac], eax
mov eax, dword [0xa2ccb4]
add eax, 1
mov dword [0xa2ccb4], eax
mov edx, dword [0xa2ccb4]
mov eax, dword [0xa2cc10]
cmp edx, eax
setl al
test al, al
jne 0x4ac3ef
mov eax, dword [0xa2ccac]
mov edx, dword [0xa2cc08]
shl edx, 2
add eax, edx
mov dword [0xa2ccac], eax
mov edx, dword [0xa2cca0]
mov eax, dword [0xa2cca4]
add eax, edx
mov dword [0xa2cca0], eax
mov eax, dword [0xa2ccb0]
add eax, 1
mov dword [0xa2ccb0], eax
mov edx, dword [0xa2ccb0]
mov eax, dword [0xa2cc14]
cmp edx, eax
setl al
test al, al
jne 0x4ac3e3
mov eax, dword [0x6a6654]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x4aca2a
mov eax, dword [0xa2cc20]
test eax, eax
je 0x4aca2a
mov edx, dword [0xa2cc38]
mov eax, dword [0xa2cbf8]
cmp edx, eax
jne 0x4aca2a
mov edx, dword [0xa2cc3c]
mov eax, dword [0xa2cbfc]
cmp edx, eax
jne 0x4aca2a
mov eax, dword [0x6a6654]
movzx eax, byte [eax + 0x3d]
movzx eax, al
mov dword [0xa2ccb8], eax
mov eax, dword [0x6a6654]
movzx eax, byte [eax + 0x3e]
movzx eax, al
mov dword [0xa2ccbc], eax
mov byte [0xa2ccc0], 0
mov byte [0xa2ccc1], 0
mov byte [0xa2ccc2], 0
mov byte [0xa2ccc3], 0
mov eax, dword [0xa2ccbc]
test eax, eax
jne 0x4ac56f
mov eax, dword [0xa2ccb8]
test eax, eax
jne 0x4aca29
mov byte [0xa2ccc2], 1
jmp 0x4ac6cd
mov edx, dword [0xa2ccbc]
mov eax, dword [0xa2ccb8]
cmp edx, eax
jge 0x4ac594
mov eax, dword [0xa2ccbc]
mov byte [0xa2ccc3], al
mov byte [0xa2ccc2], 0xff
jmp 0x4ac6cd
mov edx, dword [0xa2ccb8]
mov eax, dword [0xa2ccbc]
cmp edx, eax
jne 0x4ac5d6
mov eax, dword [0xa2ccb8]
cmp eax, 3
jg 0x4ac5c3
mov eax, dword [0xa2ccb8]
mov byte [0xa2ccc3], al
mov byte [0xa2ccc2], 1
jmp 0x4ac6cd
mov byte [0xa2ccc0], 1
mov byte [0xa2ccc2], 1
jmp 0x4ac6cd
mov eax, dword [0xa2ccb8]
cmp eax, 2
jle 0x4ac63e
mov edx, dword [0xa2ccbc]
mov eax, dword [0xa2ccb8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x4ac609
mov byte [0xa2ccc0], 1
mov byte [0xa2ccc2], 2
jmp 0x4ac6cd
mov edx, dword [0xa2ccbc]
mov eax, dword [0xa2ccb8]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x4ac632
mov byte [0xa2ccc0], 1
mov byte [0xa2ccc2], 3
jmp 0x4ac6cd
mov byte [0xa2ccc1], 1
jmp 0x4ac6cd
mov eax, dword [0xa2ccb8]
cmp eax, 1
jg 0x4ac68b
mov eax, dword [0xa2ccbc]
cmp eax, 3
jg 0x4ac678
mov eax, dword [0xa2ccb8]
mov byte [0xa2ccc3], al
mov eax, dword [0xa2ccbc]
mov edx, eax
mov eax, dword [0xa2ccb8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
add eax, 1
mov byte [0xa2ccc2], al
jmp 0x4ac6cd
mov eax, dword [0xa2ccb8]
mov byte [0xa2ccc3], al
mov byte [0xa2ccc2], 0xff
jmp 0x4ac6cd
mov eax, dword [0xa2ccbc]
cmp eax, 3
jne 0x4ac6a5
mov byte [0xa2ccc3], 2
mov byte [0xa2ccc2], 2
jmp 0x4ac6cd
mov eax, dword [0xa2ccbc]
cmp eax, 4
jne 0x4ac6bf
mov byte [0xa2ccc0], 1
mov byte [0xa2ccc2], 3
jmp 0x4ac6cd
mov byte [0xa2ccc3], 2
mov byte [0xa2ccc2], 0xff
mov edx, dword [0x695c74]
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa2ccc4], eax
mov edx, dword [0x695c70]
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa2ccc8], eax
movzx eax, byte [0xa2ccc1]
test al, al
je 0x4ac804
mov eax, dword [0xa2ccc8]
sub eax, 1
mov dword [0xa2ccb0], eax
mov eax, dword [0xa2ccc8]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov byte [0xa2ccc2], al
movzx eax, byte [0xa2cc75]
and eax, 0xf
mov byte [0xa2cca8], al
movzx eax, byte [0xa2cca8]
movzx eax, al
mov eax, dword [eax*4 + 0xa2c180]
mov dword [0xa2cc58], eax
mov eax, dword [0x6a6658]
mov ecx, dword [0xa2cc6c]
mov edx, dword [0xa2ccb0]
add ecx, edx
mov edx, dword [0x6a6674]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa2cc60]
add ecx, edx
mov edx, dword [0xa2cc70]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2ccac], eax
mov dword [0xa2ccb4], 0
jmp 0x4ac7c0
mov eax, dword [0xa2ccac]
mov edx, dword [0xa2cc58]
mov dword [eax], edx
mov eax, dword [0xa2ccac]
add eax, 4
mov dword [0xa2ccac], eax
mov eax, dword [0xa2ccb4]
add eax, 1
mov dword [0xa2ccb4], eax
mov edx, dword [0xa2ccb4]
mov eax, dword [0xa2ccc4]
cmp edx, eax
setl al
test al, al
jne 0x4ac799
mov eax, dword [0xa2ccb0]
sub eax, 1
mov dword [0xa2ccb0], eax
movzx eax, byte [0xa2ccc2]
sub eax, 1
mov byte [0xa2ccc2], al
movzx eax, byte [0xa2ccc2]
test al, al
je 0x4aca2a
jmp 0x4ac755
movzx eax, byte [0xa2ccc0]
test al, al
je 0x4ac908
mov eax, dword [0xa2ccc8]
sub eax, 1
mov dword [0xa2ccb0], eax
mov eax, dword [0xa2ccb0]
cmp eax, 0xf
jne 0x4ac834
mov dword [0xa2ccb0], 0xe
movzx eax, byte [0xa2cc75]
and eax, 0xf
mov byte [0xa2cca8], al
movzx eax, byte [0xa2cca8]
movzx eax, al
mov eax, dword [eax*4 + 0xa2c180]
mov dword [0xa2cc58], eax
mov eax, dword [0x6a6658]
mov ecx, dword [0xa2cc6c]
mov edx, dword [0xa2ccb0]
add ecx, edx
mov edx, dword [0x6a6674]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa2cc60]
add ecx, edx
mov edx, dword [0xa2cc70]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2ccac], eax
mov dword [0xa2ccb4], 0
jmp 0x4ac8c4
mov eax, dword [0xa2ccac]
mov edx, dword [0xa2cc58]
mov dword [eax], edx
mov eax, dword [0xa2ccac]
add eax, 4
mov dword [0xa2ccac], eax
mov eax, dword [0xa2ccb4]
add eax, 1
mov dword [0xa2ccb4], eax
mov edx, dword [0xa2ccb4]
mov eax, dword [0xa2ccc4]
cmp edx, eax
setl al
test al, al
jne 0x4ac89d
mov eax, dword [0xa2ccb0]
sub eax, 1
mov dword [0xa2ccb0], eax
movzx eax, byte [0xa2ccc2]
sub eax, 1
mov byte [0xa2ccc2], al
movzx eax, byte [0xa2ccc2]
test al, al
je 0x4aca2a
jmp 0x4ac859
movzx eax, byte [0xa2ccc3]
movzx edx, al
mov eax, dword [0xa2ccc8]
cmp edx, eax
jge 0x4aca2a
movzx eax, byte [0xa2ccc3]
movzx eax, al
mov dword [0xa2ccb0], eax
movzx eax, byte [0xa2cc75]
and eax, 0xf
mov byte [0xa2cca8], al
movzx eax, byte [0xa2cca8]
movzx eax, al
mov eax, dword [eax*4 + 0xa2c180]
mov dword [0xa2cc58], eax
movzx eax, byte [0xa2ccc2]
cmp al, 0xff
jne 0x4ac97a
mov eax, dword [0xa2ccc8]
mov edx, eax
movzx eax, byte [0xa2ccc3]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov byte [0xa2ccc2], al
jmp 0x4ac97a
nop
mov eax, dword [0x6a6658]
mov ecx, dword [0xa2cc6c]
mov edx, dword [0xa2ccb0]
add ecx, edx
mov edx, dword [0x6a6674]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa2cc60]
add ecx, edx
mov edx, dword [0xa2cc70]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2ccac], eax
mov dword [0xa2ccb4], 0
jmp 0x4ac9e5
mov eax, dword [0xa2ccac]
mov edx, dword [0xa2cc58]
mov dword [eax], edx
mov eax, dword [0xa2ccac]
add eax, 4
mov dword [0xa2ccac], eax
mov eax, dword [0xa2ccb4]
add eax, 1
mov dword [0xa2ccb4], eax
mov edx, dword [0xa2ccb4]
mov eax, dword [0xa2ccc4]
cmp edx, eax
setl al
test al, al
jne 0x4ac9be
mov eax, dword [0xa2ccb0]
add eax, 1
mov dword [0xa2ccb0], eax
movzx eax, byte [0xa2ccc2]
sub eax, 1
mov byte [0xa2ccc2], al
movzx eax, byte [0xa2ccc2]
test al, al
jne 0x4ac979
jmp 0x4aca2a
nop
jmp 0x4aca2a
nop
mov edx, dword [0x695c74]
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa2cc70]
add eax, edx
mov dword [0xa2cc70], eax
mov eax, dword [0xa2cbf8]
add eax, 1
mov dword [0xa2cbf8], eax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0xa2cbf8]
cmp edx, eax
setg al
test al, al
jne 0x4abf93
mov edx, dword [0x695c70]
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa2cc6c]
add eax, edx
mov dword [0xa2cc6c], eax
mov eax, dword [0xa2cbfc]
add eax, 1
mov dword [0xa2cbfc], eax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov eax, dword [0xa2cbfc]
cmp edx, eax
setg al
test al, al
jne 0x4abf7a
mov eax, dword [0xa2cc24]
mov dword [0xa2cc40], eax
mov eax, dword [0xa2cc20]
mov dword [0xa2cc44], eax
mov eax, dword [0xa2cc38]
mov dword [0x534874], eax
mov eax, dword [0xa2cc3c]
mov dword [0x534878], eax
mov dword [0x6b0400], 1
movzx eax, byte [0xa2cbd0]
test al, al
je 0x4acb04
call fcn.004ab586
mov eax, dword [0xa2cbd4]
mov edx, eax
sar edx, 0x1f
mov dword [0xa2ccd0], eax
mov dword [0xa2ccd4], edx
jmp 0x4ad2f9
mov eax, dword [0x6a6654]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x4acf78
movzx eax, byte [0xa2cbd0]
test al, al
jne 0x4acccf
mov dword [0xa2ccd8], 0
mov dword [0xa2ccdc], 0
mov dword [0xa2cc58], 0xffffffff
mov dword [0xa2cc5c], 0
jmp 0x4acbf2
mov eax, dword [0xa2cc5c]
shl eax, 5
add eax, 0x695b00
mov eax, dword [eax]
cmp eax, 4
je 0x4acb93
mov eax, dword [0xa2cc5c]
shl eax, 5
add eax, 0x695b00
mov eax, dword [eax]
cmp eax, 3
jne 0x4acbe5
mov eax, dword [0xa2cc5c]
shl eax, 5
add eax, 0x695b00
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa2ccd8]
mov edx, dword [0xa2ccdc]
cmp ebx, edx
jl 0x4acbe5
cmp ebx, edx
jg 0x4acbbd
cmp ecx, eax
jbe 0x4acbe5
mov eax, dword [0xa2cc5c]
shl eax, 5
add eax, 0x695b00
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa2ccd8], eax
mov dword [0xa2ccdc], edx
mov eax, dword [0xa2cc5c]
mov dword [0xa2cc58], eax
mov eax, dword [0xa2cc5c]
add eax, 1
mov dword [0xa2cc5c], eax
mov eax, dword [0xa2cc5c]
cmp eax, 2
setle al
test al, al
jne 0x4acb6b
mov eax, dword [0x695a7c]
test eax, eax
jne 0x4acda3
mov eax, dword [0xa2cc58]
cmp eax, 0xffffffff
je 0x4acdaa
mov eax, dword [0x6b0400]
test eax, eax
je 0x4acda6
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa2cbe0], eax
mov eax, dword [0xa2cc58]
shl eax, 5
add eax, 0x695b10
mov edx, dword [eax + 4]
mov eax, dword [0xa2cc58]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax + 8]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [0xa2cbe0]
cmp edx, eax
jne 0x4acda9
mov eax, dword [0x534854]
test eax, eax
je 0x4ad4ee
mov eax, dword [0xa2cbe0]
mov ecx, eax
mov eax, dword [0x6a6654]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2cc58]
shl eax, 5
add eax, 0x695b10
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 0x4ad4f1
jmp 0x4acdaa
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa2cbe0], eax
mov edx, dword [0xa2cbe0]
mov eax, dword [0x53486c]
cmp edx, eax
je 0x4acd2c
mov eax, dword [0xa2c174]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa2cbe0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa2c174], eax
mov eax, dword [0xa2cbe0]
mov dword [0x53486c], eax
jmp 0x4acd7d
mov eax, dword [0x695a7c]
test eax, eax
jne 0x4acd79
mov eax, dword [0x534854]
test eax, eax
je 0x4ad4f4
mov eax, dword [0xa2cbe0]
mov ecx, eax
mov eax, dword [0x6a6654]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2c174]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4acd7c
mov eax, dword [0x6b0400]
test eax, eax
jne 0x4ad4f7
jmp 0x4acd7d
nop
jmp 0x4acd7d
nop
mov eax, dword [0xa2cbe0]
mov ecx, eax
mov eax, dword [0x6a6654]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2c174]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4acdaa
nop
jmp 0x4acdaa
nop
jmp 0x4acdaa
nop
mov edx, dword [0x6a6674]
mov eax, dword [0x6a6678]
imul eax, edx
shl eax, 2
mov dword [0xa2cce0], eax
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov edx, dword [eax + 0xc]
mov eax, dword [0xa2cce0]
cmp edx, eax
jge 0x4ace27
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa2cbd4]
mov eax, dword [0xa2cce0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x695b10
mov dword [edx], eax
mov edx, dword [0xa2cbd4]
mov eax, dword [0xa2cce0]
shl edx, 5
add edx, 0x695b10
mov dword [edx + 0xc], eax
mov edx, dword [0xa2cbd4]
mov eax, dword [0x6a6674]
shl edx, 5
add edx, 0x695b10
mov dword [edx + 4], eax
mov edx, dword [0xa2cbd4]
mov eax, dword [0x6a6678]
shl edx, 5
add edx, 0x695b10
mov dword [edx + 8], eax
movzx eax, byte [0xa2cbd0]
test al, al
jne 0x4aceb4
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov edx, dword [eax + 4]
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0x6a6654]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4ad2f5
mov eax, dword [0xa2c174]
mov dword [0xa2cce4], eax
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax]
mov dword [0xa2cce8], eax
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov edx, dword [eax + 4]
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax + 8]
imul eax, edx
mov dword [0xa2ccec], eax
mov eax, dword [0xa2ccec]
test eax, eax
jle 0x4ad2f5
jmp 0x4acf5d
mov eax, dword [0xa2cce4]
mov edx, dword [eax]
mov dword [0xa2ccf0], edx
add eax, 4
mov dword [0xa2cce4], eax
mov eax, dword [0xa2cce8]
mov edx, dword [0xa2ccf0]
mov ecx, edx
and ecx, 0xff00ff00
mov edx, dword [0xa2ccf0]
and edx, 0xff0000
shr edx, 0x10
or ecx, edx
mov edx, dword [0xa2ccf0]
and edx, 0xff
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
add eax, 4
mov dword [0xa2cce8], eax
mov eax, dword [0xa2ccec]
test eax, eax
setne dl
sub eax, 1
mov dword [0xa2ccec], eax
test dl, dl
jne 0x4acf09
jmp 0x4ad2f5
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x4ad019
call fcn.00451387
and eax, 0x200
mov dword [0xa2cc58], eax
mov eax, dword [0xa2cc58]
test eax, eax
je 0x4acfad
mov dword [0xa2cc58], 1
mov dword [0xa2cbe0], 0
jmp 0x4ad00a
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x48]
mov edx, dword [0xa2cbe0]
shl edx, 2
lea ecx, [eax + edx]
mov edx, dword [0xa2cc58]
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x48]
mov ebx, dword [0xa2cbe0]
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 + 0xa1ebc0]
mov dword [ecx], eax
mov eax, dword [0xa2cbe0]
add eax, 1
mov dword [0xa2cbe0], eax
mov eax, dword [0xa2cbe0]
cmp eax, 3
setle al
test al, al
jne 0x4acfb9
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
mov dword [0xa2cbe0], eax
mov eax, dword [0x6a6654]
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 [0xa2cc58], eax
mov edx, dword [0xa2cbe0]
mov eax, dword [0x53486c]
cmp edx, eax
je 0x4ad091
mov eax, dword [0xa2c174]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa2cbe0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa2c174], eax
mov eax, dword [0xa2cbe0]
mov dword [0x53486c], eax
jmp 0x4ad10f
mov eax, dword [0x695a7c]
test eax, eax
jne 0x4ad108
mov eax, dword [0x534854]
test eax, eax
je 0x4ad4fa
mov eax, dword [0xa2cbe0]
mov ecx, eax
mov eax, dword [0x6a6654]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2c174]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4ad10b
mov eax, dword [0xa2cc58]
shl eax, 2
mov edx, eax
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa2c180
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4ad10e
mov eax, dword [0x6b0400]
test eax, eax
jne 0x4ad4fd
jmp 0x4ad10f
nop
jmp 0x4ad10f
nop
jmp 0x4ad10f
nop
mov edx, dword [0x6a6674]
mov eax, dword [0x6a6678]
imul eax, edx
shl eax, 2
mov dword [0xa2ccf4], eax
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov edx, dword [eax + 0xc]
mov eax, dword [0xa2ccf4]
cmp edx, eax
jge 0x4ad18c
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa2cbd4]
mov eax, dword [0xa2ccf4]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x695b10
mov dword [edx], eax
mov edx, dword [0xa2cbd4]
mov eax, dword [0xa2ccf4]
shl edx, 5
add edx, 0x695b10
mov dword [edx + 0xc], eax
mov edx, dword [0xa2cbd4]
mov eax, dword [0x6a6674]
shl edx, 5
add edx, 0x695b10
mov dword [edx + 4], eax
mov edx, dword [0xa2cbd4]
mov eax, dword [0x6a6678]
shl edx, 5
add edx, 0x695b10
mov dword [edx + 8], eax
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax]
mov dword [0x6a6658], eax
mov eax, dword [0xa2cbe0]
mov ecx, eax
mov eax, dword [0x6a6654]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2c174]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa2cc58]
shl eax, 2
mov edx, eax
mov eax, dword [0x6a6654]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa2c180
call sub.msvcrt.dll_memcpy
movzx eax, byte [0xa2cbd0]
test al, al
je 0x4ad228
call fcn.004ab586
mov eax, dword [0xa2c174]
mov dword [0xa2ccf8], eax
mov eax, dword [0x6a6658]
mov dword [0xa2ccfc], eax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa2cc70], eax
mov eax, dword [0x6a6654]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa2cc6c], eax
mov dword [0xa2cbfc], 0
jmp 0x4ad2cf
mov dword [0xa2cbf8], 0
jmp 0x4ad2ae
mov edx, dword [0xa2ccfc]
mov eax, dword [0xa2ccf8]
movzx ecx, byte [eax]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0xa2c180]
mov dword [edx], ecx
add edx, 4
mov dword [0xa2ccfc], edx
add eax, 1
mov dword [0xa2ccf8], eax
mov eax, dword [0xa2cbf8]
add eax, 1
mov dword [0xa2cbf8], eax
mov edx, dword [0xa2cbf8]
mov eax, dword [0xa2cc70]
cmp edx, eax
setl al
test al, al
jne 0x4ad276
mov eax, dword [0xa2cbfc]
add eax, 1
mov dword [0xa2cbfc], eax
mov edx, dword [0xa2cbfc]
mov eax, dword [0xa2cc6c]
cmp edx, eax
setl al
test al, al
jne 0x4ad26a
movzx eax, byte [0xa2cbd0]
test al, al
je 0x4ad2f8
call fcn.004ab586
jmp 0x4ad2f8
nop
jmp 0x4ad2f9
nop
mov dword [0x695a7c], 0
mov dword [0x6b0400], 1
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b00
mov dword [eax], 3
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b00
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x695b68], eax
mov dword [0x695b6c], edx
mov eax, dword [0x690b4c]
test eax, eax
je 0x4ad4fe
mov eax, dword [0x695be0]
test eax, eax
je 0x4ad4fe
mov eax, dword [0xa2cd00]
test eax, eax
jne 0x4ad3a7
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 [0xa2cd00], eax
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax + 4]
mov dword [0xa2cd04], eax
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov eax, dword [eax + 8]
mov dword [0xa2cd08], eax
mov eax, dword [0xa2cd0c]
add eax, 1
mov dword [0xa2cd0c], eax
mov eax, dword [0xa2cd0c]
mov dword [0xa2cd10], eax
mov eax, dword [0xa2cd04]
mov dword [0xa2cd14], eax
mov eax, dword [0xa2cd08]
mov dword [0xa2cd18], eax
mov eax, dword [0xa2cd00]
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 [0xa2cd04]
mov eax, dword [0xa2cd08]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b10
mov edx, dword [eax]
mov eax, dword [0xa2cd00]
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 [0xa2cd00]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call eax
sub esp, 4
mov eax, dword [0xa2cd00]
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 [0xa2cd00]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0xa2cd10
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x4ad4fe
nop
jmp 0x4ad4fe
nop
jmp 0x4ad4fe
nop
jmp 0x4ad4fe
nop
jmp 0x4ad4fe
nop
jmp 0x4ad4fe
nop
jmp 0x4ad4fe
nop
jmp 0x4ad4fe
nop
jmp 0x4ad4fe
nop
jmp 0x4ad4fe
nop
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b00
mov eax, dword [eax]
cmp eax, 2
jne 0x4ad543
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b00
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x695b68], eax
mov dword [0x695b6c], edx
mov eax, dword [0xa2cbd4]
shl eax, 5
add eax, 0x695b00
mov dword [eax], 1
mov eax, dword [0x6b0414]
cmp eax, 1
jne 0x4ad568
mov dword [0x6b0414], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x5342d8]
cmp eax, 0xffffffff
jne 0x4ad57c
mov dword [0x5342d8], 0
mov dword [0xa2c120], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret