Function at 0x4a626a
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov byte [0xa277b0], 0
mov eax, dword [0x68bb4c]
test eax, eax
je 0x4a628a
mov byte [0xa277b0], 1
mov eax, dword [0x6aaff4]
cmp eax, 1
jne 0x4a62af
mov dword [0x6aaff4], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x68bb4c]
test eax, eax
jne 0x4a62d0
mov eax, dword [0x690844]
test eax, eax
je 0x4a62d0
mov dword [0xa26d00], 1
jmp 0x4a81ef
mov eax, dword [0x6aaff4]
test eax, eax
jne 0x4a81ab
mov dword [0xa277b4], 0xffffffff
mov eax, dword [0x52f0a0]
mov edx, dword [0x52f0a4]
mov dword [0xa277b8], eax
mov dword [0xa277bc], edx
mov dword [0xa277c0], 0
jmp 0x4a637c
mov eax, dword [0xa277c0]
shl eax, 5
add eax, 0x6906e0
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa277b8]
mov edx, dword [0xa277bc]
cmp ebx, edx
jg 0x4a636f
cmp ebx, edx
jl 0x4a6333
cmp ecx, eax
jae 0x4a636f
mov eax, dword [0xa277c0]
shl eax, 5
add eax, 0x6906e0
mov eax, dword [eax]
cmp eax, 3
jne 0x4a636f
mov eax, dword [0xa277c0]
shl eax, 5
add eax, 0x6906e0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa277b8], eax
mov dword [0xa277bc], edx
mov eax, dword [0xa277c0]
mov dword [0xa277b4], eax
mov eax, dword [0xa277c0]
add eax, 1
mov dword [0xa277c0], eax
mov eax, dword [0xa277c0]
cmp eax, 2
setle al
test al, al
jne 0x4a6309
mov dword [0xa277c0], 0
jmp 0x4a63c6
mov eax, dword [0xa277c0]
shl eax, 5
add eax, 0x6906e0
mov eax, dword [eax]
cmp eax, 1
jne 0x4a63b9
mov eax, dword [0xa277c0]
mov dword [0xa277b4], eax
mov eax, dword [0xa277c0]
add eax, 1
mov dword [0xa277c0], eax
mov eax, dword [0xa277c0]
cmp eax, 2
setle al
test al, al
jne 0x4a639b
mov eax, dword [0xa277b4]
cmp eax, 0xffffffff
jne 0x4a63f0
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.0044ca73
jmp 0x4a81ef
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906e0
mov dword [eax], 2
mov ecx, dword [0xa277b4]
mov eax, dword [0x52f0a0]
mov edx, dword [0x52f0a4]
shl ecx, 5
add ecx, 0x6906e0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add eax, 1
adc edx, 0
mov dword [0x52f0a0], eax
mov dword [0x52f0a4], edx
mov eax, dword [0x68bb4c]
test eax, eax
je 0x4a6485
mov dword [esp + 8], 1
fld qword [0x55ef48]
fstp qword [esp]
call fcn.0046e1fa
fstp qword [0xa277c8]
fld qword [0xa277d0]
fld qword [0xa277c8]
fsubp st(1)
fabs
fld qword [0x55f0d0]
fucompi st(1)
fstp st(0)
ja 0x4a814a
fld qword [0xa277c8]
fstp qword [0xa277d0]
mov eax, dword [0x6a1234]
test eax, eax
je 0x4a814d
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa277d8], eax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa277dc], eax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4a6514
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x690854]
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa277d8], eax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x690850]
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa277dc], eax
mov eax, dword [0xa277d8]
cmp eax, 0x200
jg 0x4a6544
mov eax, dword [0xa277dc]
cmp eax, 0x180
jg 0x4a6544
mov eax, dword [0xa277d8]
add eax, eax
mov dword [0xa277d8], eax
mov eax, dword [0xa277dc]
add eax, eax
mov dword [0xa277dc], eax
mov dword [0xa277e0], 0xffffffff
mov dword [0xa277e4], 0xffffffff
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa277d8], eax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa277dc], eax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4a65da
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x690854]
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa277d8], eax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x690850]
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa277dc], eax
mov eax, dword [0xa277d8]
mov dword [0x6a1254], eax
mov eax, dword [0xa277dc]
mov dword [0x6a1258], eax
mov dword [0xa277e8], 0
mov dword [0x6a125c], 0
mov eax, dword [0x6a1238]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4a7786
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x30]
mov dword [0xa277ec], eax
mov eax, dword [0x690854]
mov edx, dword [0xa277ec]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa277f0], eax
mov eax, dword [0x690850]
mov edx, dword [0xa277ec]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa277f4], eax
mov eax, dword [0x6aafe0]
mov dword [0xa277f8], eax
mov dword [0xa277fc], 0
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
add eax, eax
mov dword [0xa277c0], eax
mov eax, dword [0xa277c0]
mov edx, eax
mov eax, dword [0x52f560]
cmp edx, eax
je 0x4a66d0
mov eax, dword [0x6aafe4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa277c0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x6aafe4], eax
mov eax, dword [0xa277c0]
mov dword [0x52f560], eax
mov dword [0xa277f8], 0
mov eax, dword [0x52f854]
test eax, eax
jne 0x4a66e7
mov eax, dword [0xa277f8]
cmp eax, 1
je 0x4a8150
mov eax, dword [0xa277f8]
test eax, eax
jne 0x4a6712
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa26d60
call sub.msvcrt.dll_memcpy
jmp 0x4a6760
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa26d60
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4a6760
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa26d60
call sub.msvcrt.dll_memcpy
mov dword [0xa277f8], 0
mov eax, dword [0xa277f8]
test eax, eax
je 0x4a679a
mov ecx, dword [0x52f560]
mov eax, dword [0x6a1234]
mov edx, dword [eax + 0x40]
mov eax, dword [0x6aafe4]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4a679a
mov dword [0xa277fc], 1
mov eax, dword [0x6aaecc]
and eax, 8
test eax, eax
je 0x4a67b2
mov dword [0xa27800], 1
jmp 0x4a67bc
mov dword [0xa27800], 0
mov eax, dword [0x6aaecc]
and eax, 8
test eax, eax
je 0x4a67d4
mov dword [0xa27804], 1
jmp 0x4a67de
mov dword [0xa27804], 0
mov eax, dword [0x68bb4c]
test eax, eax
je 0x4a68aa
mov dword [esp + 8], 1
fld qword [0x55ef48]
fstp qword [esp]
call fcn.0046e1fa
fld qword [0x55eed0]
fdivp st(1)
fstp qword [0xa27808]
fld qword [0xa27808]
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 [0xa27810], eax
mov dword [0xa27814], edx
mov eax, dword [0xa27810]
mov edx, dword [0xa27814]
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 0x4a686d
mov dword [0xa27800], 1
jmp 0x4a6877
mov dword [0xa27800], 0
mov eax, dword [0xa27810]
mov edx, dword [0xa27814]
mov esi, eax
and esi, 1
mov edi, edx
and edi, 0
mov eax, edi
or eax, esi
test eax, eax
je 0x4a68a0
mov dword [0xa27804], 1
jmp 0x4a68aa
mov dword [0xa27804], 0
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x38]
cwde
sub eax, 1
mov dword [0xa27818], eax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x3a]
cwde
sub eax, 1
mov dword [0xa2781c], eax
mov eax, dword [0x6a1234]
movzx eax, byte [eax + 0x51]
cmp al, 2
jne 0x4a690a
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa2781c]
cmp edx, eax
jle 0x4a690a
mov eax, dword [0xa2781c]
add eax, 1
mov dword [0xa2781c], eax
mov dword [0xa27818], 0
mov eax, dword [0xa277f8]
test eax, eax
je 0x4a696d
mov edx, dword [0xa27804]
mov eax, dword [0xa27820]
cmp edx, eax
je 0x4a692c
mov dword [0xa277fc], 1
mov edx, dword [0xa27800]
mov eax, dword [0xa27824]
cmp edx, eax
je 0x4a6945
mov dword [0xa277fc], 1
mov edx, dword [0xa27818]
mov eax, dword [0x52f874]
cmp edx, eax
jne 0x4a6963
mov edx, dword [0xa2781c]
mov eax, dword [0x52f878]
cmp edx, eax
je 0x4a696d
mov dword [0xa277fc], 1
mov eax, dword [0xa277f8]
test eax, eax
jne 0x4a6980
mov dword [0xa277fc], 1
mov eax, dword [0xa277fc]
test eax, eax
je 0x4a8153
mov edx, dword [0x6a1254]
mov eax, dword [0x6a1258]
imul eax, edx
shl eax, 2
mov dword [0xa27828], eax
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov edx, dword [eax + 0xc]
mov eax, dword [0xa27828]
cmp edx, eax
jge 0x4a6a0a
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa277b4]
mov eax, dword [0xa27828]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6906f0
mov dword [edx], eax
mov edx, dword [0xa277b4]
mov eax, dword [0xa27828]
shl edx, 5
add edx, 0x6906f0
mov dword [edx + 0xc], eax
mov edx, dword [0xa277b4]
mov eax, dword [0x6a1254]
shl edx, 5
add edx, 0x6906f0
mov dword [edx + 4], eax
mov edx, dword [0xa277b4]
mov eax, dword [0x6a1258]
shl edx, 5
add edx, 0x6906f0
mov dword [edx + 8], eax
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax]
mov dword [0x6a1238], eax
mov eax, dword [0xa277f8]
test eax, eax
je 0x4a6b98
mov dword [0xa27830], 0
mov dword [0xa27834], 0
mov dword [0xa27838], 0xffffffff
mov dword [0xa2783c], 0
jmp 0x4a6b0d
mov eax, dword [0xa2783c]
shl eax, 5
add eax, 0x6906e0
mov eax, dword [eax]
cmp eax, 4
je 0x4a6aae
mov eax, dword [0xa2783c]
shl eax, 5
add eax, 0x6906e0
mov eax, dword [eax]
cmp eax, 3
jne 0x4a6b00
mov eax, dword [0xa2783c]
shl eax, 5
add eax, 0x6906e0
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa27830]
mov edx, dword [0xa27834]
cmp ebx, edx
jl 0x4a6b00
cmp ebx, edx
jg 0x4a6ad8
cmp ecx, eax
jbe 0x4a6b00
mov eax, dword [0xa2783c]
shl eax, 5
add eax, 0x6906e0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa27830], eax
mov dword [0xa27834], edx
mov eax, dword [0xa2783c]
mov dword [0xa27838], eax
mov eax, dword [0xa2783c]
add eax, 1
mov dword [0xa2783c], eax
mov eax, dword [0xa2783c]
cmp eax, 2
setle al
test al, al
jne 0x4a6a86
mov eax, dword [0xa27838]
cmp eax, 0xffffffff
je 0x4a6b82
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov edx, dword [eax + 4]
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa27838]
shl eax, 5
add eax, 0x6906f0
mov edx, dword [eax]
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4a6b98
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.0044ca73
mov dword [0xa277f8], 0
mov dword [0xa27840], 0
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x40]
mov dword [0xa27844], eax
mov eax, dword [0x6aafe4]
mov dword [0xa27848], eax
movzx eax, byte [0xa277b0]
test al, al
je 0x4a6bc9
call fcn.004a61ee
mov dword [0xa2784c], 0
mov dword [0xa277dc], 0
jmp 0x4a770c
mov dword [0xa27850], 0
mov dword [0xa277d8], 0
jmp 0x4a76c0
mov eax, dword [0xa27844]
movzx eax, byte [eax]
mov byte [0xa27854], al
mov eax, dword [0xa27844]
add eax, 1
mov dword [0xa27844], eax
mov eax, dword [0xa27844]
movzx eax, byte [eax]
mov byte [0xa27855], al
mov eax, dword [0xa27844]
add eax, 1
mov dword [0xa27844], eax
mov eax, dword [0xa27848]
movzx eax, byte [eax]
mov byte [0xa27856], al
mov eax, dword [0xa27848]
add eax, 1
mov dword [0xa27848], eax
mov eax, dword [0xa27848]
movzx eax, byte [eax]
mov byte [0xa27857], al
mov eax, dword [0xa27848]
add eax, 1
mov dword [0xa27848], eax
mov eax, dword [0xa277f8]
test eax, eax
je 0x4a6d31
movzx edx, byte [0xa27854]
movzx eax, byte [0xa27856]
cmp dl, al
jne 0x4a6d31
movzx edx, byte [0xa27855]
movzx eax, byte [0xa27857]
cmp dl, al
jne 0x4a6d31
movzx eax, byte [0xa27855]
test al, al
jns 0x4a6cb6
mov edx, dword [0xa27804]
mov eax, dword [0xa27820]
cmp edx, eax
jne 0x4a6d2d
mov edx, dword [0xa277d8]
mov eax, dword [0xa27818]
cmp edx, eax
jne 0x4a6ce3
mov edx, dword [0xa277dc]
mov eax, dword [0xa2781c]
cmp edx, eax
jne 0x4a6ce3
mov edx, dword [0xa27800]
mov eax, dword [0xa27824]
cmp edx, eax
jne 0x4a6d30
mov edx, dword [0xa277d8]
mov eax, dword [0x52f874]
cmp edx, eax
jne 0x4a768e
mov edx, dword [0xa277dc]
mov eax, dword [0x52f878]
cmp edx, eax
jne 0x4a768e
mov edx, dword [0xa27818]
mov eax, dword [0x52f874]
cmp edx, eax
jne 0x4a6d31
mov edx, dword [0xa2781c]
mov eax, dword [0x52f878]
cmp edx, eax
je 0x4a768e
jmp 0x4a6d31
nop
jmp 0x4a6d31
nop
mov eax, dword [0xa27848]
sub eax, 2
mov dword [0xa27848], eax
mov eax, dword [0xa27848]
movzx edx, byte [0xa27854]
mov byte [eax], dl
mov eax, dword [0xa27848]
add eax, 1
mov dword [0xa27848], eax
mov eax, dword [0xa27848]
movzx edx, byte [0xa27855]
mov byte [eax], dl
mov eax, dword [0xa27848]
add eax, 1
mov dword [0xa27848], eax
mov dword [0xa27858], 0
mov eax, dword [0xa277ec]
cmp eax, 0x1f
jle 0x4a6e4a
movzx eax, byte [0xa27854]
movzx eax, al
movzx eax, word [eax + eax + 0x52f0c0]
movzx eax, ax
mov dword [0xa2785c], eax
mov dword [0xa27860], 1
mov eax, dword [0xa27864]
test eax, eax
je 0x4a6dc6
mov eax, dword [0xa27864]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [0xa27860]
mov eax, dword [0x69084c]
mov ecx, dword [0xa277ec]
shl ecx, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x20], 0xa27878
mov dword [esp + 0x1c], 0xa27874
mov dword [esp + 0x18], 0xa27870
mov dword [esp + 0x14], 0xa2786c
mov dword [esp + 0x10], 0xa27868
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa2785c
mov dword [esp], eax
call fcn.0044bfc1
mov dword [0xa2787c], eax
mov eax, dword [0xa27868]
mov dword [0xa27864], eax
mov eax, dword [0xa27868]
mov dword [0xa27880], eax
mov dword [0xa27884], 0
jmp 0x4a6f3e
mov dword [0xa27884], 0
mov eax, dword [0xa277ec]
cmp eax, 8
jne 0x4a6e75
movzx eax, byte [0xa27854]
movzx eax, al
shl eax, 6
add eax, 0xa19800
mov dword [0xa27880], eax
mov eax, dword [0xa277ec]
cmp eax, 0xe
jne 0x4a6e99
movzx eax, byte [0xa27854]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa1d800
mov dword [0xa27880], eax
mov eax, dword [0xa277ec]
cmp eax, 0x10
jne 0x4a6eba
movzx eax, byte [0xa27854]
movzx eax, al
shl eax, 7
add eax, 0xa1d800
mov dword [0xa27880], eax
mov eax, dword [0xa277ec]
cmp eax, 9
jne 0x4a6ee5
movzx eax, byte [0xa27854]
movzx eax, al
shl eax, 6
add eax, 0xa19800
mov dword [0xa27880], eax
mov dword [0xa27858], 1
mov eax, dword [0xa277ec]
cmp eax, 0xf
jne 0x4a6f13
movzx eax, byte [0xa27854]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa1d800
mov dword [0xa27880], eax
mov dword [0xa27858], 1
mov eax, dword [0xa277ec]
cmp eax, 0x11
jne 0x4a6f3e
movzx eax, byte [0xa27854]
movzx eax, al
shl eax, 7
add eax, 0xa1d800
mov dword [0xa27880], eax
mov dword [0xa27858], 1
movzx eax, byte [0xa27855]
and eax, 0xf
mov byte [0xa27888], al
mov eax, dword [0x52f650]
test eax, eax
je 0x4a6f7f
movzx eax, byte [0xa27855]
movzx eax, al
sar eax, 4
and eax, 7
mov byte [0xa27889], al
movzx eax, byte [0xa27855]
movzx eax, al
sar eax, 7
mov byte [0xa2788a], al
jmp 0x4a6f91
movzx eax, byte [0xa27855]
movzx eax, al
sar eax, 4
mov byte [0xa27889], al
movzx eax, byte [0xa2788a]
test al, al
je 0x4a6fba
mov eax, dword [0xa27804]
test eax, eax
je 0x4a6fba
mov eax, dword [0x52f650]
test eax, eax
je 0x4a6fba
movzx eax, byte [0xa27889]
mov byte [0xa27888], al
movzx eax, byte [0xa27888]
movzx eax, al
mov eax, dword [eax*4 + 0xa26d60]
mov dword [0xa27838], eax
movzx eax, byte [0xa27889]
movzx eax, al
mov eax, dword [eax*4 + 0xa26d60]
mov dword [0xa2783c], eax
mov eax, dword [0x6a1238]
mov ecx, dword [0xa2784c]
mov edx, dword [0x6a1254]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa27840]
add ecx, edx
mov edx, dword [0xa27850]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2788c], eax
mov edx, dword [0x6a1254]
mov ecx, dword [0x690854]
mov eax, dword [0x6a1234]
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 [0xa277e8], eax
mov dword [0xa27890], 0
jmp 0x4a711b
mov dword [0xa27894], 0
jmp 0x4a70cf
mov eax, dword [0xa27880]
movzx eax, byte [eax]
test al, al
je 0x4a7072
mov eax, dword [0xa2788c]
mov edx, dword [0xa27838]
mov dword [eax], edx
jmp 0x4a707f
mov eax, dword [0xa2788c]
mov edx, dword [0xa2783c]
mov dword [eax], edx
mov eax, dword [0xa27858]
test eax, eax
je 0x4a70a8
mov edx, dword [0xa27894]
mov eax, dword [0xa27858]
and eax, edx
test eax, eax
je 0x4a70b5
mov eax, dword [0xa27880]
add eax, 1
mov dword [0xa27880], eax
jmp 0x4a70b5
mov eax, dword [0xa27880]
add eax, 1
mov dword [0xa27880], eax
mov eax, dword [0xa2788c]
add eax, 4
mov dword [0xa2788c], eax
mov eax, dword [0xa27894]
add eax, 1
mov dword [0xa27894], eax
mov edx, dword [0xa27894]
mov eax, dword [0xa277f0]
cmp edx, eax
setl al
test al, al
jne 0x4a7057
mov eax, dword [0xa2788c]
mov edx, dword [0xa277e8]
shl edx, 2
add eax, edx
mov dword [0xa2788c], eax
mov edx, dword [0xa27880]
mov eax, dword [0xa27884]
add eax, edx
mov dword [0xa27880], eax
mov eax, dword [0xa27890]
add eax, 1
mov dword [0xa27890], eax
mov edx, dword [0xa27890]
mov eax, dword [0xa277f4]
cmp edx, eax
setl al
test al, al
jne 0x4a704b
mov eax, dword [0x6a1234]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x4a7692
mov eax, dword [0xa27800]
test eax, eax
je 0x4a7692
mov edx, dword [0xa27818]
mov eax, dword [0xa277d8]
cmp edx, eax
jne 0x4a7692
mov edx, dword [0xa2781c]
mov eax, dword [0xa277dc]
cmp edx, eax
jne 0x4a7692
mov eax, dword [0x6a1234]
movzx eax, byte [eax + 0x3d]
movzx eax, al
mov dword [0xa27898], eax
mov eax, dword [0x6a1234]
movzx eax, byte [eax + 0x3e]
movzx eax, al
mov dword [0xa2789c], eax
mov byte [0xa278a0], 0
mov byte [0xa278a1], 0
mov byte [0xa278a2], 0
mov byte [0xa278a3], 0
mov eax, dword [0xa2789c]
test eax, eax
jne 0x4a71d7
mov eax, dword [0xa27898]
test eax, eax
jne 0x4a7691
mov byte [0xa278a2], 1
jmp 0x4a7335
mov edx, dword [0xa2789c]
mov eax, dword [0xa27898]
cmp edx, eax
jge 0x4a71fc
mov eax, dword [0xa2789c]
mov byte [0xa278a3], al
mov byte [0xa278a2], 0xff
jmp 0x4a7335
mov edx, dword [0xa27898]
mov eax, dword [0xa2789c]
cmp edx, eax
jne 0x4a723e
mov eax, dword [0xa27898]
cmp eax, 3
jg 0x4a722b
mov eax, dword [0xa27898]
mov byte [0xa278a3], al
mov byte [0xa278a2], 1
jmp 0x4a7335
mov byte [0xa278a0], 1
mov byte [0xa278a2], 1
jmp 0x4a7335
mov eax, dword [0xa27898]
cmp eax, 2
jle 0x4a72a6
mov edx, dword [0xa2789c]
mov eax, dword [0xa27898]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x4a7271
mov byte [0xa278a0], 1
mov byte [0xa278a2], 2
jmp 0x4a7335
mov edx, dword [0xa2789c]
mov eax, dword [0xa27898]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x4a729a
mov byte [0xa278a0], 1
mov byte [0xa278a2], 3
jmp 0x4a7335
mov byte [0xa278a1], 1
jmp 0x4a7335
mov eax, dword [0xa27898]
cmp eax, 1
jg 0x4a72f3
mov eax, dword [0xa2789c]
cmp eax, 3
jg 0x4a72e0
mov eax, dword [0xa27898]
mov byte [0xa278a3], al
mov eax, dword [0xa2789c]
mov edx, eax
mov eax, dword [0xa27898]
mov ebx, edx
sub ebx, eax
mov eax, ebx
add eax, 1
mov byte [0xa278a2], al
jmp 0x4a7335
mov eax, dword [0xa27898]
mov byte [0xa278a3], al
mov byte [0xa278a2], 0xff
jmp 0x4a7335
mov eax, dword [0xa2789c]
cmp eax, 3
jne 0x4a730d
mov byte [0xa278a3], 2
mov byte [0xa278a2], 2
jmp 0x4a7335
mov eax, dword [0xa2789c]
cmp eax, 4
jne 0x4a7327
mov byte [0xa278a0], 1
mov byte [0xa278a2], 3
jmp 0x4a7335
mov byte [0xa278a3], 2
mov byte [0xa278a2], 0xff
mov edx, dword [0x690854]
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa278a4], eax
mov edx, dword [0x690850]
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa278a8], eax
movzx eax, byte [0xa278a1]
test al, al
je 0x4a746c
mov eax, dword [0xa278a8]
sub eax, 1
mov dword [0xa27890], eax
mov eax, dword [0xa278a8]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov byte [0xa278a2], al
movzx eax, byte [0xa27855]
and eax, 0xf
mov byte [0xa27888], al
movzx eax, byte [0xa27888]
movzx eax, al
mov eax, dword [eax*4 + 0xa26d60]
mov dword [0xa27838], eax
mov eax, dword [0x6a1238]
mov ecx, dword [0xa2784c]
mov edx, dword [0xa27890]
add ecx, edx
mov edx, dword [0x6a1254]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa27840]
add ecx, edx
mov edx, dword [0xa27850]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2788c], eax
mov dword [0xa27894], 0
jmp 0x4a7428
mov eax, dword [0xa2788c]
mov edx, dword [0xa27838]
mov dword [eax], edx
mov eax, dword [0xa2788c]
add eax, 4
mov dword [0xa2788c], eax
mov eax, dword [0xa27894]
add eax, 1
mov dword [0xa27894], eax
mov edx, dword [0xa27894]
mov eax, dword [0xa278a4]
cmp edx, eax
setl al
test al, al
jne 0x4a7401
mov eax, dword [0xa27890]
sub eax, 1
mov dword [0xa27890], eax
movzx eax, byte [0xa278a2]
sub eax, 1
mov byte [0xa278a2], al
movzx eax, byte [0xa278a2]
test al, al
je 0x4a7692
jmp 0x4a73bd
movzx eax, byte [0xa278a0]
test al, al
je 0x4a7570
mov eax, dword [0xa278a8]
sub eax, 1
mov dword [0xa27890], eax
mov eax, dword [0xa27890]
cmp eax, 0xf
jne 0x4a749c
mov dword [0xa27890], 0xe
movzx eax, byte [0xa27855]
and eax, 0xf
mov byte [0xa27888], al
movzx eax, byte [0xa27888]
movzx eax, al
mov eax, dword [eax*4 + 0xa26d60]
mov dword [0xa27838], eax
mov eax, dword [0x6a1238]
mov ecx, dword [0xa2784c]
mov edx, dword [0xa27890]
add ecx, edx
mov edx, dword [0x6a1254]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa27840]
add ecx, edx
mov edx, dword [0xa27850]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2788c], eax
mov dword [0xa27894], 0
jmp 0x4a752c
mov eax, dword [0xa2788c]
mov edx, dword [0xa27838]
mov dword [eax], edx
mov eax, dword [0xa2788c]
add eax, 4
mov dword [0xa2788c], eax
mov eax, dword [0xa27894]
add eax, 1
mov dword [0xa27894], eax
mov edx, dword [0xa27894]
mov eax, dword [0xa278a4]
cmp edx, eax
setl al
test al, al
jne 0x4a7505
mov eax, dword [0xa27890]
sub eax, 1
mov dword [0xa27890], eax
movzx eax, byte [0xa278a2]
sub eax, 1
mov byte [0xa278a2], al
movzx eax, byte [0xa278a2]
test al, al
je 0x4a7692
jmp 0x4a74c1
movzx eax, byte [0xa278a3]
movzx edx, al
mov eax, dword [0xa278a8]
cmp edx, eax
jge 0x4a7692
movzx eax, byte [0xa278a3]
movzx eax, al
mov dword [0xa27890], eax
movzx eax, byte [0xa27855]
and eax, 0xf
mov byte [0xa27888], al
movzx eax, byte [0xa27888]
movzx eax, al
mov eax, dword [eax*4 + 0xa26d60]
mov dword [0xa27838], eax
movzx eax, byte [0xa278a2]
cmp al, 0xff
jne 0x4a75e2
mov eax, dword [0xa278a8]
mov edx, eax
movzx eax, byte [0xa278a3]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov byte [0xa278a2], al
jmp 0x4a75e2
nop
mov eax, dword [0x6a1238]
mov ecx, dword [0xa2784c]
mov edx, dword [0xa27890]
add ecx, edx
mov edx, dword [0x6a1254]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa27840]
add ecx, edx
mov edx, dword [0xa27850]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2788c], eax
mov dword [0xa27894], 0
jmp 0x4a764d
mov eax, dword [0xa2788c]
mov edx, dword [0xa27838]
mov dword [eax], edx
mov eax, dword [0xa2788c]
add eax, 4
mov dword [0xa2788c], eax
mov eax, dword [0xa27894]
add eax, 1
mov dword [0xa27894], eax
mov edx, dword [0xa27894]
mov eax, dword [0xa278a4]
cmp edx, eax
setl al
test al, al
jne 0x4a7626
mov eax, dword [0xa27890]
add eax, 1
mov dword [0xa27890], eax
movzx eax, byte [0xa278a2]
sub eax, 1
mov byte [0xa278a2], al
movzx eax, byte [0xa278a2]
test al, al
jne 0x4a75e1
jmp 0x4a7692
nop
jmp 0x4a7692
nop
mov edx, dword [0x690854]
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa27850]
add eax, edx
mov dword [0xa27850], eax
mov eax, dword [0xa277d8]
add eax, 1
mov dword [0xa277d8], eax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0xa277d8]
cmp edx, eax
setg al
test al, al
jne 0x4a6bfb
mov edx, dword [0x690850]
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa2784c]
add eax, edx
mov dword [0xa2784c], eax
mov eax, dword [0xa277dc]
add eax, 1
mov dword [0xa277dc], eax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov eax, dword [0xa277dc]
cmp edx, eax
setg al
test al, al
jne 0x4a6be2
mov eax, dword [0xa27804]
mov dword [0xa27820], eax
mov eax, dword [0xa27800]
mov dword [0xa27824], eax
mov eax, dword [0xa27818]
mov dword [0x52f874], eax
mov eax, dword [0xa2781c]
mov dword [0x52f878], eax
mov dword [0x6aafe0], 1
movzx eax, byte [0xa277b0]
test al, al
je 0x4a776c
call fcn.004a61ee
mov eax, dword [0xa277b4]
mov edx, eax
sar edx, 0x1f
mov dword [0xa278b0], eax
mov dword [0xa278b4], edx
jmp 0x4a7f61
mov eax, dword [0x6a1234]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x4a7be0
movzx eax, byte [0xa277b0]
test al, al
jne 0x4a7937
mov dword [0xa278b8], 0
mov dword [0xa278bc], 0
mov dword [0xa27838], 0xffffffff
mov dword [0xa2783c], 0
jmp 0x4a785a
mov eax, dword [0xa2783c]
shl eax, 5
add eax, 0x6906e0
mov eax, dword [eax]
cmp eax, 4
je 0x4a77fb
mov eax, dword [0xa2783c]
shl eax, 5
add eax, 0x6906e0
mov eax, dword [eax]
cmp eax, 3
jne 0x4a784d
mov eax, dword [0xa2783c]
shl eax, 5
add eax, 0x6906e0
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa278b8]
mov edx, dword [0xa278bc]
cmp ebx, edx
jl 0x4a784d
cmp ebx, edx
jg 0x4a7825
cmp ecx, eax
jbe 0x4a784d
mov eax, dword [0xa2783c]
shl eax, 5
add eax, 0x6906e0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa278b8], eax
mov dword [0xa278bc], edx
mov eax, dword [0xa2783c]
mov dword [0xa27838], eax
mov eax, dword [0xa2783c]
add eax, 1
mov dword [0xa2783c], eax
mov eax, dword [0xa2783c]
cmp eax, 2
setle al
test al, al
jne 0x4a77d3
mov eax, dword [0x69065c]
test eax, eax
jne 0x4a7a0b
mov eax, dword [0xa27838]
cmp eax, 0xffffffff
je 0x4a7a12
mov eax, dword [0x6aafe0]
test eax, eax
je 0x4a7a0e
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa277c0], eax
mov eax, dword [0xa27838]
shl eax, 5
add eax, 0x6906f0
mov edx, dword [eax + 4]
mov eax, dword [0xa27838]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax + 8]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [0xa277c0]
cmp edx, eax
jne 0x4a7a11
mov eax, dword [0x52f854]
test eax, eax
je 0x4a8156
mov eax, dword [0xa277c0]
mov ecx, eax
mov eax, dword [0x6a1234]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa27838]
shl eax, 5
add eax, 0x6906f0
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 0x4a8159
jmp 0x4a7a12
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa277c0], eax
mov edx, dword [0xa277c0]
mov eax, dword [0x52f86c]
cmp edx, eax
je 0x4a7994
mov eax, dword [0xa26d54]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa277c0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa26d54], eax
mov eax, dword [0xa277c0]
mov dword [0x52f86c], eax
jmp 0x4a79e5
mov eax, dword [0x69065c]
test eax, eax
jne 0x4a79e1
mov eax, dword [0x52f854]
test eax, eax
je 0x4a815c
mov eax, dword [0xa277c0]
mov ecx, eax
mov eax, dword [0x6a1234]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa26d54]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4a79e4
mov eax, dword [0x6aafe0]
test eax, eax
jne 0x4a815f
jmp 0x4a79e5
nop
jmp 0x4a79e5
nop
mov eax, dword [0xa277c0]
mov ecx, eax
mov eax, dword [0x6a1234]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa26d54]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4a7a12
nop
jmp 0x4a7a12
nop
jmp 0x4a7a12
nop
mov edx, dword [0x6a1254]
mov eax, dword [0x6a1258]
imul eax, edx
shl eax, 2
mov dword [0xa278c0], eax
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov edx, dword [eax + 0xc]
mov eax, dword [0xa278c0]
cmp edx, eax
jge 0x4a7a8f
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa277b4]
mov eax, dword [0xa278c0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6906f0
mov dword [edx], eax
mov edx, dword [0xa277b4]
mov eax, dword [0xa278c0]
shl edx, 5
add edx, 0x6906f0
mov dword [edx + 0xc], eax
mov edx, dword [0xa277b4]
mov eax, dword [0x6a1254]
shl edx, 5
add edx, 0x6906f0
mov dword [edx + 4], eax
mov edx, dword [0xa277b4]
mov eax, dword [0x6a1258]
shl edx, 5
add edx, 0x6906f0
mov dword [edx + 8], eax
movzx eax, byte [0xa277b0]
test al, al
jne 0x4a7b1c
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov edx, dword [eax + 4]
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0x6a1234]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4a7f5d
mov eax, dword [0xa26d54]
mov dword [0xa278c4], eax
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax]
mov dword [0xa278c8], eax
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov edx, dword [eax + 4]
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax + 8]
imul eax, edx
mov dword [0xa278cc], eax
mov eax, dword [0xa278cc]
test eax, eax
jle 0x4a7f5d
jmp 0x4a7bc5
mov eax, dword [0xa278c4]
mov edx, dword [eax]
mov dword [0xa278d0], edx
add eax, 4
mov dword [0xa278c4], eax
mov eax, dword [0xa278c8]
mov edx, dword [0xa278d0]
mov ecx, edx
and ecx, 0xff00ff00
mov edx, dword [0xa278d0]
and edx, 0xff0000
shr edx, 0x10
or ecx, edx
mov edx, dword [0xa278d0]
and edx, 0xff
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
add eax, 4
mov dword [0xa278c8], eax
mov eax, dword [0xa278cc]
test eax, eax
setne dl
sub eax, 1
mov dword [0xa278cc], eax
test dl, dl
jne 0x4a7b71
jmp 0x4a7f5d
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x4a7c81
call fcn.0044bfef
and eax, 0x200
mov dword [0xa27838], eax
mov eax, dword [0xa27838]
test eax, eax
je 0x4a7c15
mov dword [0xa27838], 1
mov dword [0xa277c0], 0
jmp 0x4a7c72
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x48]
mov edx, dword [0xa277c0]
shl edx, 2
lea ecx, [eax + edx]
mov edx, dword [0xa27838]
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x48]
mov ebx, dword [0xa277c0]
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 + 0xa197a0]
mov dword [ecx], eax
mov eax, dword [0xa277c0]
add eax, 1
mov dword [0xa277c0], eax
mov eax, dword [0xa277c0]
cmp eax, 3
setle al
test al, al
jne 0x4a7c21
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
mov dword [0xa277c0], eax
mov eax, dword [0x6a1234]
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 [0xa27838], eax
mov edx, dword [0xa277c0]
mov eax, dword [0x52f86c]
cmp edx, eax
je 0x4a7cf9
mov eax, dword [0xa26d54]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa277c0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa26d54], eax
mov eax, dword [0xa277c0]
mov dword [0x52f86c], eax
jmp 0x4a7d77
mov eax, dword [0x69065c]
test eax, eax
jne 0x4a7d70
mov eax, dword [0x52f854]
test eax, eax
je 0x4a8162
mov eax, dword [0xa277c0]
mov ecx, eax
mov eax, dword [0x6a1234]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa26d54]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4a7d73
mov eax, dword [0xa27838]
shl eax, 2
mov edx, eax
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa26d60
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4a7d76
mov eax, dword [0x6aafe0]
test eax, eax
jne 0x4a8165
jmp 0x4a7d77
nop
jmp 0x4a7d77
nop
jmp 0x4a7d77
nop
mov edx, dword [0x6a1254]
mov eax, dword [0x6a1258]
imul eax, edx
shl eax, 2
mov dword [0xa278d4], eax
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov edx, dword [eax + 0xc]
mov eax, dword [0xa278d4]
cmp edx, eax
jge 0x4a7df4
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa277b4]
mov eax, dword [0xa278d4]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6906f0
mov dword [edx], eax
mov edx, dword [0xa277b4]
mov eax, dword [0xa278d4]
shl edx, 5
add edx, 0x6906f0
mov dword [edx + 0xc], eax
mov edx, dword [0xa277b4]
mov eax, dword [0x6a1254]
shl edx, 5
add edx, 0x6906f0
mov dword [edx + 4], eax
mov edx, dword [0xa277b4]
mov eax, dword [0x6a1258]
shl edx, 5
add edx, 0x6906f0
mov dword [edx + 8], eax
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax]
mov dword [0x6a1238], eax
mov eax, dword [0xa277c0]
mov ecx, eax
mov eax, dword [0x6a1234]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa26d54]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa27838]
shl eax, 2
mov edx, eax
mov eax, dword [0x6a1234]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa26d60
call sub.msvcrt.dll_memcpy
movzx eax, byte [0xa277b0]
test al, al
je 0x4a7e90
call fcn.004a61ee
mov eax, dword [0xa26d54]
mov dword [0xa278d8], eax
mov eax, dword [0x6a1238]
mov dword [0xa278dc], eax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa27850], eax
mov eax, dword [0x6a1234]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa2784c], eax
mov dword [0xa277dc], 0
jmp 0x4a7f37
mov dword [0xa277d8], 0
jmp 0x4a7f16
mov edx, dword [0xa278dc]
mov eax, dword [0xa278d8]
movzx ecx, byte [eax]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0xa26d60]
mov dword [edx], ecx
add edx, 4
mov dword [0xa278dc], edx
add eax, 1
mov dword [0xa278d8], eax
mov eax, dword [0xa277d8]
add eax, 1
mov dword [0xa277d8], eax
mov edx, dword [0xa277d8]
mov eax, dword [0xa27850]
cmp edx, eax
setl al
test al, al
jne 0x4a7ede
mov eax, dword [0xa277dc]
add eax, 1
mov dword [0xa277dc], eax
mov edx, dword [0xa277dc]
mov eax, dword [0xa2784c]
cmp edx, eax
setl al
test al, al
jne 0x4a7ed2
movzx eax, byte [0xa277b0]
test al, al
je 0x4a7f60
call fcn.004a61ee
jmp 0x4a7f60
nop
jmp 0x4a7f61
nop
mov dword [0x69065c], 0
mov dword [0x6aafe0], 1
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906e0
mov dword [eax], 3
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906e0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x690748], eax
mov dword [0x69074c], edx
mov eax, dword [0x68bb4c]
test eax, eax
je 0x4a8166
mov eax, dword [0x6907c0]
test eax, eax
je 0x4a8166
mov eax, dword [0xa278e0]
test eax, eax
jne 0x4a800f
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 [0xa278e0], eax
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax + 4]
mov dword [0xa278e4], eax
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov eax, dword [eax + 8]
mov dword [0xa278e8], eax
mov eax, dword [0xa278ec]
add eax, 1
mov dword [0xa278ec], eax
mov eax, dword [0xa278ec]
mov dword [0xa278f0], eax
mov eax, dword [0xa278e4]
mov dword [0xa278f4], eax
mov eax, dword [0xa278e8]
mov dword [0xa278f8], eax
mov eax, dword [0xa278e0]
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 [0xa278e4]
mov eax, dword [0xa278e8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906f0
mov edx, dword [eax]
mov eax, dword [0xa278e0]
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 [0xa278e0]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call eax
sub esp, 4
mov eax, dword [0xa278e0]
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 [0xa278e0]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0xa278f0
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x4a8166
nop
jmp 0x4a8166
nop
jmp 0x4a8166
nop
jmp 0x4a8166
nop
jmp 0x4a8166
nop
jmp 0x4a8166
nop
jmp 0x4a8166
nop
jmp 0x4a8166
nop
jmp 0x4a8166
nop
jmp 0x4a8166
nop
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906e0
mov eax, dword [eax]
cmp eax, 2
jne 0x4a81ab
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906e0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x690748], eax
mov dword [0x69074c], edx
mov eax, dword [0xa277b4]
shl eax, 5
add eax, 0x6906e0
mov dword [eax], 1
mov eax, dword [0x6aaff4]
cmp eax, 1
jne 0x4a81d0
mov dword [0x6aaff4], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x52f2d8]
cmp eax, 0xffffffff
jne 0x4a81e4
mov dword [0x52f2d8], 0
mov dword [0xa26d00], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret