Function at 0x49a1ca
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov byte [0xa1a610], 0
mov eax, dword [0x67eb4c]
test eax, eax
je 0x49a1ea
mov byte [0xa1a610], 1
mov eax, dword [0x69de54]
cmp eax, 1
jne 0x49a20f
mov dword [0x69de54], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x67eb4c]
test eax, eax
jne 0x49a230
mov eax, dword [0x6836a4]
test eax, eax
je 0x49a230
mov dword [0xa19b60], 1
jmp 0x49c14f
mov eax, dword [0x69de54]
test eax, eax
jne 0x49c10b
mov dword [0xa1a614], 0xffffffff
mov eax, dword [0x5220a0]
mov edx, dword [0x5220a4]
mov dword [0xa1a618], eax
mov dword [0xa1a61c], edx
mov dword [0xa1a620], 0
jmp 0x49a2dc
mov eax, dword [0xa1a620]
shl eax, 5
add eax, 0x683540
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa1a618]
mov edx, dword [0xa1a61c]
cmp ebx, edx
jg 0x49a2cf
cmp ebx, edx
jl 0x49a293
cmp ecx, eax
jae 0x49a2cf
mov eax, dword [0xa1a620]
shl eax, 5
add eax, 0x683540
mov eax, dword [eax]
cmp eax, 3
jne 0x49a2cf
mov eax, dword [0xa1a620]
shl eax, 5
add eax, 0x683540
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa1a618], eax
mov dword [0xa1a61c], edx
mov eax, dword [0xa1a620]
mov dword [0xa1a614], eax
mov eax, dword [0xa1a620]
add eax, 1
mov dword [0xa1a620], eax
mov eax, dword [0xa1a620]
cmp eax, 2
setle al
test al, al
jne 0x49a269
mov dword [0xa1a620], 0
jmp 0x49a326
mov eax, dword [0xa1a620]
shl eax, 5
add eax, 0x683540
mov eax, dword [eax]
cmp eax, 1
jne 0x49a319
mov eax, dword [0xa1a620]
mov dword [0xa1a614], eax
mov eax, dword [0xa1a620]
add eax, 1
mov dword [0xa1a620], eax
mov eax, dword [0xa1a620]
cmp eax, 2
setle al
test al, al
jne 0x49a2fb
mov eax, dword [0xa1a614]
cmp eax, 0xffffffff
jne 0x49a350
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.004409d3
jmp 0x49c14f
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683540
mov dword [eax], 2
mov ecx, dword [0xa1a614]
mov eax, dword [0x5220a0]
mov edx, dword [0x5220a4]
shl ecx, 5
add ecx, 0x683540
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add eax, 1
adc edx, 0
mov dword [0x5220a0], eax
mov dword [0x5220a4], edx
mov eax, dword [0x67eb4c]
test eax, eax
je 0x49a3e5
mov dword [esp + 8], 1
fld qword [0x551a88]
fstp qword [esp]
call fcn.0046215a
fstp qword [0xa1a628]
fld qword [0xa1a630]
fld qword [0xa1a628]
fsubp st(1)
fabs
fld qword [0x551c10]
fucompi st(1)
fstp st(0)
ja 0x49c0aa
fld qword [0xa1a628]
fstp qword [0xa1a630]
mov eax, dword [0x694094]
test eax, eax
je 0x49c0ad
mov eax, dword [0x694094]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa1a638], eax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa1a63c], eax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x49a474
mov eax, dword [0x694094]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x6836b4]
mov eax, dword [0x694094]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa1a638], eax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x6836b0]
mov eax, dword [0x694094]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa1a63c], eax
mov eax, dword [0xa1a638]
cmp eax, 0x200
jg 0x49a4a4
mov eax, dword [0xa1a63c]
cmp eax, 0x180
jg 0x49a4a4
mov eax, dword [0xa1a638]
add eax, eax
mov dword [0xa1a638], eax
mov eax, dword [0xa1a63c]
add eax, eax
mov dword [0xa1a63c], eax
mov dword [0xa1a640], 0xffffffff
mov dword [0xa1a644], 0xffffffff
mov eax, dword [0x694094]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa1a638], eax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa1a63c], eax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x49a53a
mov eax, dword [0x694094]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x6836b4]
mov eax, dword [0x694094]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa1a638], eax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x6836b0]
mov eax, dword [0x694094]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa1a63c], eax
mov eax, dword [0xa1a638]
mov dword [0x6940b4], eax
mov eax, dword [0xa1a63c]
mov dword [0x6940b8], eax
mov dword [0xa1a648], 0
mov dword [0x6940bc], 0
mov eax, dword [0x694098]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x49b6e6
mov eax, dword [0x694094]
mov eax, dword [eax + 0x30]
mov dword [0xa1a64c], eax
mov eax, dword [0x6836b4]
mov edx, dword [0xa1a64c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa1a650], eax
mov eax, dword [0x6836b0]
mov edx, dword [0xa1a64c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa1a654], eax
mov eax, dword [0x69de40]
mov dword [0xa1a658], eax
mov dword [0xa1a65c], 0
mov eax, dword [0x694094]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
add eax, eax
mov dword [0xa1a620], eax
mov eax, dword [0xa1a620]
mov edx, eax
mov eax, dword [0x522560]
cmp edx, eax
je 0x49a630
mov eax, dword [0x69de44]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa1a620]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x69de44], eax
mov eax, dword [0xa1a620]
mov dword [0x522560], eax
mov dword [0xa1a658], 0
mov eax, dword [0x522854]
test eax, eax
jne 0x49a647
mov eax, dword [0xa1a658]
cmp eax, 1
je 0x49c0b0
mov eax, dword [0xa1a658]
test eax, eax
jne 0x49a672
mov eax, dword [0x694094]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa19bc0
call sub.msvcrt.dll_memcpy
jmp 0x49a6c0
mov eax, dword [0x694094]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa19bc0
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x49a6c0
mov eax, dword [0x694094]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa19bc0
call sub.msvcrt.dll_memcpy
mov dword [0xa1a658], 0
mov eax, dword [0xa1a658]
test eax, eax
je 0x49a6fa
mov ecx, dword [0x522560]
mov eax, dword [0x694094]
mov edx, dword [eax + 0x40]
mov eax, dword [0x69de44]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x49a6fa
mov dword [0xa1a65c], 1
mov eax, dword [0x69dd2c]
and eax, 8
test eax, eax
je 0x49a712
mov dword [0xa1a660], 1
jmp 0x49a71c
mov dword [0xa1a660], 0
mov eax, dword [0x69dd2c]
and eax, 8
test eax, eax
je 0x49a734
mov dword [0xa1a664], 1
jmp 0x49a73e
mov dword [0xa1a664], 0
mov eax, dword [0x67eb4c]
test eax, eax
je 0x49a80a
mov dword [esp + 8], 1
fld qword [0x551a88]
fstp qword [esp]
call fcn.0046215a
fld qword [0x551a10]
fdivp st(1)
fstp qword [0xa1a668]
fld qword [0xa1a668]
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 [0xa1a670], eax
mov dword [0xa1a674], edx
mov eax, dword [0xa1a670]
mov edx, dword [0xa1a674]
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 0x49a7cd
mov dword [0xa1a660], 1
jmp 0x49a7d7
mov dword [0xa1a660], 0
mov eax, dword [0xa1a670]
mov edx, dword [0xa1a674]
mov esi, eax
and esi, 1
mov edi, edx
and edi, 0
mov eax, edi
or eax, esi
test eax, eax
je 0x49a800
mov dword [0xa1a664], 1
jmp 0x49a80a
mov dword [0xa1a664], 0
mov eax, dword [0x694094]
movzx eax, word [eax + 0x38]
cwde
sub eax, 1
mov dword [0xa1a678], eax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x3a]
cwde
sub eax, 1
mov dword [0xa1a67c], eax
mov eax, dword [0x694094]
movzx eax, byte [eax + 0x51]
cmp al, 2
jne 0x49a86a
mov eax, dword [0x694094]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa1a67c]
cmp edx, eax
jle 0x49a86a
mov eax, dword [0xa1a67c]
add eax, 1
mov dword [0xa1a67c], eax
mov dword [0xa1a678], 0
mov eax, dword [0xa1a658]
test eax, eax
je 0x49a8cd
mov edx, dword [0xa1a664]
mov eax, dword [0xa1a680]
cmp edx, eax
je 0x49a88c
mov dword [0xa1a65c], 1
mov edx, dword [0xa1a660]
mov eax, dword [0xa1a684]
cmp edx, eax
je 0x49a8a5
mov dword [0xa1a65c], 1
mov edx, dword [0xa1a678]
mov eax, dword [0x522874]
cmp edx, eax
jne 0x49a8c3
mov edx, dword [0xa1a67c]
mov eax, dword [0x522878]
cmp edx, eax
je 0x49a8cd
mov dword [0xa1a65c], 1
mov eax, dword [0xa1a658]
test eax, eax
jne 0x49a8e0
mov dword [0xa1a65c], 1
mov eax, dword [0xa1a65c]
test eax, eax
je 0x49c0b3
mov edx, dword [0x6940b4]
mov eax, dword [0x6940b8]
imul eax, edx
shl eax, 2
mov dword [0xa1a688], eax
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov edx, dword [eax + 0xc]
mov eax, dword [0xa1a688]
cmp edx, eax
jge 0x49a96a
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa1a614]
mov eax, dword [0xa1a688]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x683550
mov dword [edx], eax
mov edx, dword [0xa1a614]
mov eax, dword [0xa1a688]
shl edx, 5
add edx, 0x683550
mov dword [edx + 0xc], eax
mov edx, dword [0xa1a614]
mov eax, dword [0x6940b4]
shl edx, 5
add edx, 0x683550
mov dword [edx + 4], eax
mov edx, dword [0xa1a614]
mov eax, dword [0x6940b8]
shl edx, 5
add edx, 0x683550
mov dword [edx + 8], eax
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax]
mov dword [0x694098], eax
mov eax, dword [0xa1a658]
test eax, eax
je 0x49aaf8
mov dword [0xa1a690], 0
mov dword [0xa1a694], 0
mov dword [0xa1a698], 0xffffffff
mov dword [0xa1a69c], 0
jmp 0x49aa6d
mov eax, dword [0xa1a69c]
shl eax, 5
add eax, 0x683540
mov eax, dword [eax]
cmp eax, 4
je 0x49aa0e
mov eax, dword [0xa1a69c]
shl eax, 5
add eax, 0x683540
mov eax, dword [eax]
cmp eax, 3
jne 0x49aa60
mov eax, dword [0xa1a69c]
shl eax, 5
add eax, 0x683540
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa1a690]
mov edx, dword [0xa1a694]
cmp ebx, edx
jl 0x49aa60
cmp ebx, edx
jg 0x49aa38
cmp ecx, eax
jbe 0x49aa60
mov eax, dword [0xa1a69c]
shl eax, 5
add eax, 0x683540
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa1a690], eax
mov dword [0xa1a694], edx
mov eax, dword [0xa1a69c]
mov dword [0xa1a698], eax
mov eax, dword [0xa1a69c]
add eax, 1
mov dword [0xa1a69c], eax
mov eax, dword [0xa1a69c]
cmp eax, 2
setle al
test al, al
jne 0x49a9e6
mov eax, dword [0xa1a698]
cmp eax, 0xffffffff
je 0x49aae2
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov edx, dword [eax + 4]
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa1a698]
shl eax, 5
add eax, 0x683550
mov edx, dword [eax]
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x49aaf8
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.004409d3
mov dword [0xa1a658], 0
mov dword [0xa1a6a0], 0
mov eax, dword [0x694094]
mov eax, dword [eax + 0x40]
mov dword [0xa1a6a4], eax
mov eax, dword [0x69de44]
mov dword [0xa1a6a8], eax
movzx eax, byte [0xa1a610]
test al, al
je 0x49ab29
call fcn.0049a14e
mov dword [0xa1a6ac], 0
mov dword [0xa1a63c], 0
jmp 0x49b66c
mov dword [0xa1a6b0], 0
mov dword [0xa1a638], 0
jmp 0x49b620
mov eax, dword [0xa1a6a4]
movzx eax, byte [eax]
mov byte [0xa1a6b4], al
mov eax, dword [0xa1a6a4]
add eax, 1
mov dword [0xa1a6a4], eax
mov eax, dword [0xa1a6a4]
movzx eax, byte [eax]
mov byte [0xa1a6b5], al
mov eax, dword [0xa1a6a4]
add eax, 1
mov dword [0xa1a6a4], eax
mov eax, dword [0xa1a6a8]
movzx eax, byte [eax]
mov byte [0xa1a6b6], al
mov eax, dword [0xa1a6a8]
add eax, 1
mov dword [0xa1a6a8], eax
mov eax, dword [0xa1a6a8]
movzx eax, byte [eax]
mov byte [0xa1a6b7], al
mov eax, dword [0xa1a6a8]
add eax, 1
mov dword [0xa1a6a8], eax
mov eax, dword [0xa1a658]
test eax, eax
je 0x49ac91
movzx edx, byte [0xa1a6b4]
movzx eax, byte [0xa1a6b6]
cmp dl, al
jne 0x49ac91
movzx edx, byte [0xa1a6b5]
movzx eax, byte [0xa1a6b7]
cmp dl, al
jne 0x49ac91
movzx eax, byte [0xa1a6b5]
test al, al
jns 0x49ac16
mov edx, dword [0xa1a664]
mov eax, dword [0xa1a680]
cmp edx, eax
jne 0x49ac8d
mov edx, dword [0xa1a638]
mov eax, dword [0xa1a678]
cmp edx, eax
jne 0x49ac43
mov edx, dword [0xa1a63c]
mov eax, dword [0xa1a67c]
cmp edx, eax
jne 0x49ac43
mov edx, dword [0xa1a660]
mov eax, dword [0xa1a684]
cmp edx, eax
jne 0x49ac90
mov edx, dword [0xa1a638]
mov eax, dword [0x522874]
cmp edx, eax
jne 0x49b5ee
mov edx, dword [0xa1a63c]
mov eax, dword [0x522878]
cmp edx, eax
jne 0x49b5ee
mov edx, dword [0xa1a678]
mov eax, dword [0x522874]
cmp edx, eax
jne 0x49ac91
mov edx, dword [0xa1a67c]
mov eax, dword [0x522878]
cmp edx, eax
je 0x49b5ee
jmp 0x49ac91
nop
jmp 0x49ac91
nop
mov eax, dword [0xa1a6a8]
sub eax, 2
mov dword [0xa1a6a8], eax
mov eax, dword [0xa1a6a8]
movzx edx, byte [0xa1a6b4]
mov byte [eax], dl
mov eax, dword [0xa1a6a8]
add eax, 1
mov dword [0xa1a6a8], eax
mov eax, dword [0xa1a6a8]
movzx edx, byte [0xa1a6b5]
mov byte [eax], dl
mov eax, dword [0xa1a6a8]
add eax, 1
mov dword [0xa1a6a8], eax
mov dword [0xa1a6b8], 0
mov eax, dword [0xa1a64c]
cmp eax, 0x1f
jle 0x49adaa
movzx eax, byte [0xa1a6b4]
movzx eax, al
movzx eax, word [eax + eax + 0x5220c0]
movzx eax, ax
mov dword [0xa1a6bc], eax
mov dword [0xa1a6c0], 1
mov eax, dword [0xa1a6c4]
test eax, eax
je 0x49ad26
mov eax, dword [0xa1a6c4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [0xa1a6c0]
mov eax, dword [0x6836ac]
mov ecx, dword [0xa1a64c]
shl ecx, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x20], 0xa1a6d8
mov dword [esp + 0x1c], 0xa1a6d4
mov dword [esp + 0x18], 0xa1a6d0
mov dword [esp + 0x14], 0xa1a6cc
mov dword [esp + 0x10], 0xa1a6c8
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa1a6bc
mov dword [esp], eax
call fcn.0043ff21
mov dword [0xa1a6dc], eax
mov eax, dword [0xa1a6c8]
mov dword [0xa1a6c4], eax
mov eax, dword [0xa1a6c8]
mov dword [0xa1a6e0], eax
mov dword [0xa1a6e4], 0
jmp 0x49ae9e
mov dword [0xa1a6e4], 0
mov eax, dword [0xa1a64c]
cmp eax, 8
jne 0x49add5
movzx eax, byte [0xa1a6b4]
movzx eax, al
shl eax, 6
add eax, 0xa0c660
mov dword [0xa1a6e0], eax
mov eax, dword [0xa1a64c]
cmp eax, 0xe
jne 0x49adf9
movzx eax, byte [0xa1a6b4]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa10660
mov dword [0xa1a6e0], eax
mov eax, dword [0xa1a64c]
cmp eax, 0x10
jne 0x49ae1a
movzx eax, byte [0xa1a6b4]
movzx eax, al
shl eax, 7
add eax, 0xa10660
mov dword [0xa1a6e0], eax
mov eax, dword [0xa1a64c]
cmp eax, 9
jne 0x49ae45
movzx eax, byte [0xa1a6b4]
movzx eax, al
shl eax, 6
add eax, 0xa0c660
mov dword [0xa1a6e0], eax
mov dword [0xa1a6b8], 1
mov eax, dword [0xa1a64c]
cmp eax, 0xf
jne 0x49ae73
movzx eax, byte [0xa1a6b4]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa10660
mov dword [0xa1a6e0], eax
mov dword [0xa1a6b8], 1
mov eax, dword [0xa1a64c]
cmp eax, 0x11
jne 0x49ae9e
movzx eax, byte [0xa1a6b4]
movzx eax, al
shl eax, 7
add eax, 0xa10660
mov dword [0xa1a6e0], eax
mov dword [0xa1a6b8], 1
movzx eax, byte [0xa1a6b5]
and eax, 0xf
mov byte [0xa1a6e8], al
mov eax, dword [0x522650]
test eax, eax
je 0x49aedf
movzx eax, byte [0xa1a6b5]
movzx eax, al
sar eax, 4
and eax, 7
mov byte [0xa1a6e9], al
movzx eax, byte [0xa1a6b5]
movzx eax, al
sar eax, 7
mov byte [0xa1a6ea], al
jmp 0x49aef1
movzx eax, byte [0xa1a6b5]
movzx eax, al
sar eax, 4
mov byte [0xa1a6e9], al
movzx eax, byte [0xa1a6ea]
test al, al
je 0x49af1a
mov eax, dword [0xa1a664]
test eax, eax
je 0x49af1a
mov eax, dword [0x522650]
test eax, eax
je 0x49af1a
movzx eax, byte [0xa1a6e9]
mov byte [0xa1a6e8], al
movzx eax, byte [0xa1a6e8]
movzx eax, al
mov eax, dword [eax*4 + 0xa19bc0]
mov dword [0xa1a698], eax
movzx eax, byte [0xa1a6e9]
movzx eax, al
mov eax, dword [eax*4 + 0xa19bc0]
mov dword [0xa1a69c], eax
mov eax, dword [0x694098]
mov ecx, dword [0xa1a6ac]
mov edx, dword [0x6940b4]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa1a6a0]
add ecx, edx
mov edx, dword [0xa1a6b0]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa1a6ec], eax
mov edx, dword [0x6940b4]
mov ecx, dword [0x6836b4]
mov eax, dword [0x694094]
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 [0xa1a648], eax
mov dword [0xa1a6f0], 0
jmp 0x49b07b
mov dword [0xa1a6f4], 0
jmp 0x49b02f
mov eax, dword [0xa1a6e0]
movzx eax, byte [eax]
test al, al
je 0x49afd2
mov eax, dword [0xa1a6ec]
mov edx, dword [0xa1a698]
mov dword [eax], edx
jmp 0x49afdf
mov eax, dword [0xa1a6ec]
mov edx, dword [0xa1a69c]
mov dword [eax], edx
mov eax, dword [0xa1a6b8]
test eax, eax
je 0x49b008
mov edx, dword [0xa1a6f4]
mov eax, dword [0xa1a6b8]
and eax, edx
test eax, eax
je 0x49b015
mov eax, dword [0xa1a6e0]
add eax, 1
mov dword [0xa1a6e0], eax
jmp 0x49b015
mov eax, dword [0xa1a6e0]
add eax, 1
mov dword [0xa1a6e0], eax
mov eax, dword [0xa1a6ec]
add eax, 4
mov dword [0xa1a6ec], eax
mov eax, dword [0xa1a6f4]
add eax, 1
mov dword [0xa1a6f4], eax
mov edx, dword [0xa1a6f4]
mov eax, dword [0xa1a650]
cmp edx, eax
setl al
test al, al
jne 0x49afb7
mov eax, dword [0xa1a6ec]
mov edx, dword [0xa1a648]
shl edx, 2
add eax, edx
mov dword [0xa1a6ec], eax
mov edx, dword [0xa1a6e0]
mov eax, dword [0xa1a6e4]
add eax, edx
mov dword [0xa1a6e0], eax
mov eax, dword [0xa1a6f0]
add eax, 1
mov dword [0xa1a6f0], eax
mov edx, dword [0xa1a6f0]
mov eax, dword [0xa1a654]
cmp edx, eax
setl al
test al, al
jne 0x49afab
mov eax, dword [0x694094]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x49b5f2
mov eax, dword [0xa1a660]
test eax, eax
je 0x49b5f2
mov edx, dword [0xa1a678]
mov eax, dword [0xa1a638]
cmp edx, eax
jne 0x49b5f2
mov edx, dword [0xa1a67c]
mov eax, dword [0xa1a63c]
cmp edx, eax
jne 0x49b5f2
mov eax, dword [0x694094]
movzx eax, byte [eax + 0x3d]
movzx eax, al
mov dword [0xa1a6f8], eax
mov eax, dword [0x694094]
movzx eax, byte [eax + 0x3e]
movzx eax, al
mov dword [0xa1a6fc], eax
mov byte [0xa1a700], 0
mov byte [0xa1a701], 0
mov byte [0xa1a702], 0
mov byte [0xa1a703], 0
mov eax, dword [0xa1a6fc]
test eax, eax
jne 0x49b137
mov eax, dword [0xa1a6f8]
test eax, eax
jne 0x49b5f1
mov byte [0xa1a702], 1
jmp 0x49b295
mov edx, dword [0xa1a6fc]
mov eax, dword [0xa1a6f8]
cmp edx, eax
jge 0x49b15c
mov eax, dword [0xa1a6fc]
mov byte [0xa1a703], al
mov byte [0xa1a702], 0xff
jmp 0x49b295
mov edx, dword [0xa1a6f8]
mov eax, dword [0xa1a6fc]
cmp edx, eax
jne 0x49b19e
mov eax, dword [0xa1a6f8]
cmp eax, 3
jg 0x49b18b
mov eax, dword [0xa1a6f8]
mov byte [0xa1a703], al
mov byte [0xa1a702], 1
jmp 0x49b295
mov byte [0xa1a700], 1
mov byte [0xa1a702], 1
jmp 0x49b295
mov eax, dword [0xa1a6f8]
cmp eax, 2
jle 0x49b206
mov edx, dword [0xa1a6fc]
mov eax, dword [0xa1a6f8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x49b1d1
mov byte [0xa1a700], 1
mov byte [0xa1a702], 2
jmp 0x49b295
mov edx, dword [0xa1a6fc]
mov eax, dword [0xa1a6f8]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x49b1fa
mov byte [0xa1a700], 1
mov byte [0xa1a702], 3
jmp 0x49b295
mov byte [0xa1a701], 1
jmp 0x49b295
mov eax, dword [0xa1a6f8]
cmp eax, 1
jg 0x49b253
mov eax, dword [0xa1a6fc]
cmp eax, 3
jg 0x49b240
mov eax, dword [0xa1a6f8]
mov byte [0xa1a703], al
mov eax, dword [0xa1a6fc]
mov edx, eax
mov eax, dword [0xa1a6f8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
add eax, 1
mov byte [0xa1a702], al
jmp 0x49b295
mov eax, dword [0xa1a6f8]
mov byte [0xa1a703], al
mov byte [0xa1a702], 0xff
jmp 0x49b295
mov eax, dword [0xa1a6fc]
cmp eax, 3
jne 0x49b26d
mov byte [0xa1a703], 2
mov byte [0xa1a702], 2
jmp 0x49b295
mov eax, dword [0xa1a6fc]
cmp eax, 4
jne 0x49b287
mov byte [0xa1a700], 1
mov byte [0xa1a702], 3
jmp 0x49b295
mov byte [0xa1a703], 2
mov byte [0xa1a702], 0xff
mov edx, dword [0x6836b4]
mov eax, dword [0x694094]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa1a704], eax
mov edx, dword [0x6836b0]
mov eax, dword [0x694094]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa1a708], eax
movzx eax, byte [0xa1a701]
test al, al
je 0x49b3cc
mov eax, dword [0xa1a708]
sub eax, 1
mov dword [0xa1a6f0], eax
mov eax, dword [0xa1a708]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov byte [0xa1a702], al
movzx eax, byte [0xa1a6b5]
and eax, 0xf
mov byte [0xa1a6e8], al
movzx eax, byte [0xa1a6e8]
movzx eax, al
mov eax, dword [eax*4 + 0xa19bc0]
mov dword [0xa1a698], eax
mov eax, dword [0x694098]
mov ecx, dword [0xa1a6ac]
mov edx, dword [0xa1a6f0]
add ecx, edx
mov edx, dword [0x6940b4]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa1a6a0]
add ecx, edx
mov edx, dword [0xa1a6b0]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa1a6ec], eax
mov dword [0xa1a6f4], 0
jmp 0x49b388
mov eax, dword [0xa1a6ec]
mov edx, dword [0xa1a698]
mov dword [eax], edx
mov eax, dword [0xa1a6ec]
add eax, 4
mov dword [0xa1a6ec], eax
mov eax, dword [0xa1a6f4]
add eax, 1
mov dword [0xa1a6f4], eax
mov edx, dword [0xa1a6f4]
mov eax, dword [0xa1a704]
cmp edx, eax
setl al
test al, al
jne 0x49b361
mov eax, dword [0xa1a6f0]
sub eax, 1
mov dword [0xa1a6f0], eax
movzx eax, byte [0xa1a702]
sub eax, 1
mov byte [0xa1a702], al
movzx eax, byte [0xa1a702]
test al, al
je 0x49b5f2
jmp 0x49b31d
movzx eax, byte [0xa1a700]
test al, al
je 0x49b4d0
mov eax, dword [0xa1a708]
sub eax, 1
mov dword [0xa1a6f0], eax
mov eax, dword [0xa1a6f0]
cmp eax, 0xf
jne 0x49b3fc
mov dword [0xa1a6f0], 0xe
movzx eax, byte [0xa1a6b5]
and eax, 0xf
mov byte [0xa1a6e8], al
movzx eax, byte [0xa1a6e8]
movzx eax, al
mov eax, dword [eax*4 + 0xa19bc0]
mov dword [0xa1a698], eax
mov eax, dword [0x694098]
mov ecx, dword [0xa1a6ac]
mov edx, dword [0xa1a6f0]
add ecx, edx
mov edx, dword [0x6940b4]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa1a6a0]
add ecx, edx
mov edx, dword [0xa1a6b0]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa1a6ec], eax
mov dword [0xa1a6f4], 0
jmp 0x49b48c
mov eax, dword [0xa1a6ec]
mov edx, dword [0xa1a698]
mov dword [eax], edx
mov eax, dword [0xa1a6ec]
add eax, 4
mov dword [0xa1a6ec], eax
mov eax, dword [0xa1a6f4]
add eax, 1
mov dword [0xa1a6f4], eax
mov edx, dword [0xa1a6f4]
mov eax, dword [0xa1a704]
cmp edx, eax
setl al
test al, al
jne 0x49b465
mov eax, dword [0xa1a6f0]
sub eax, 1
mov dword [0xa1a6f0], eax
movzx eax, byte [0xa1a702]
sub eax, 1
mov byte [0xa1a702], al
movzx eax, byte [0xa1a702]
test al, al
je 0x49b5f2
jmp 0x49b421
movzx eax, byte [0xa1a703]
movzx edx, al
mov eax, dword [0xa1a708]
cmp edx, eax
jge 0x49b5f2
movzx eax, byte [0xa1a703]
movzx eax, al
mov dword [0xa1a6f0], eax
movzx eax, byte [0xa1a6b5]
and eax, 0xf
mov byte [0xa1a6e8], al
movzx eax, byte [0xa1a6e8]
movzx eax, al
mov eax, dword [eax*4 + 0xa19bc0]
mov dword [0xa1a698], eax
movzx eax, byte [0xa1a702]
cmp al, 0xff
jne 0x49b542
mov eax, dword [0xa1a708]
mov edx, eax
movzx eax, byte [0xa1a703]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov byte [0xa1a702], al
jmp 0x49b542
nop
mov eax, dword [0x694098]
mov ecx, dword [0xa1a6ac]
mov edx, dword [0xa1a6f0]
add ecx, edx
mov edx, dword [0x6940b4]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa1a6a0]
add ecx, edx
mov edx, dword [0xa1a6b0]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa1a6ec], eax
mov dword [0xa1a6f4], 0
jmp 0x49b5ad
mov eax, dword [0xa1a6ec]
mov edx, dword [0xa1a698]
mov dword [eax], edx
mov eax, dword [0xa1a6ec]
add eax, 4
mov dword [0xa1a6ec], eax
mov eax, dword [0xa1a6f4]
add eax, 1
mov dword [0xa1a6f4], eax
mov edx, dword [0xa1a6f4]
mov eax, dword [0xa1a704]
cmp edx, eax
setl al
test al, al
jne 0x49b586
mov eax, dword [0xa1a6f0]
add eax, 1
mov dword [0xa1a6f0], eax
movzx eax, byte [0xa1a702]
sub eax, 1
mov byte [0xa1a702], al
movzx eax, byte [0xa1a702]
test al, al
jne 0x49b541
jmp 0x49b5f2
nop
jmp 0x49b5f2
nop
mov edx, dword [0x6836b4]
mov eax, dword [0x694094]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa1a6b0]
add eax, edx
mov dword [0xa1a6b0], eax
mov eax, dword [0xa1a638]
add eax, 1
mov dword [0xa1a638], eax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0xa1a638]
cmp edx, eax
setg al
test al, al
jne 0x49ab5b
mov edx, dword [0x6836b0]
mov eax, dword [0x694094]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa1a6ac]
add eax, edx
mov dword [0xa1a6ac], eax
mov eax, dword [0xa1a63c]
add eax, 1
mov dword [0xa1a63c], eax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov eax, dword [0xa1a63c]
cmp edx, eax
setg al
test al, al
jne 0x49ab42
mov eax, dword [0xa1a664]
mov dword [0xa1a680], eax
mov eax, dword [0xa1a660]
mov dword [0xa1a684], eax
mov eax, dword [0xa1a678]
mov dword [0x522874], eax
mov eax, dword [0xa1a67c]
mov dword [0x522878], eax
mov dword [0x69de40], 1
movzx eax, byte [0xa1a610]
test al, al
je 0x49b6cc
call fcn.0049a14e
mov eax, dword [0xa1a614]
mov edx, eax
sar edx, 0x1f
mov dword [0xa1a710], eax
mov dword [0xa1a714], edx
jmp 0x49bec1
mov eax, dword [0x694094]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x49bb40
movzx eax, byte [0xa1a610]
test al, al
jne 0x49b897
mov dword [0xa1a718], 0
mov dword [0xa1a71c], 0
mov dword [0xa1a698], 0xffffffff
mov dword [0xa1a69c], 0
jmp 0x49b7ba
mov eax, dword [0xa1a69c]
shl eax, 5
add eax, 0x683540
mov eax, dword [eax]
cmp eax, 4
je 0x49b75b
mov eax, dword [0xa1a69c]
shl eax, 5
add eax, 0x683540
mov eax, dword [eax]
cmp eax, 3
jne 0x49b7ad
mov eax, dword [0xa1a69c]
shl eax, 5
add eax, 0x683540
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa1a718]
mov edx, dword [0xa1a71c]
cmp ebx, edx
jl 0x49b7ad
cmp ebx, edx
jg 0x49b785
cmp ecx, eax
jbe 0x49b7ad
mov eax, dword [0xa1a69c]
shl eax, 5
add eax, 0x683540
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa1a718], eax
mov dword [0xa1a71c], edx
mov eax, dword [0xa1a69c]
mov dword [0xa1a698], eax
mov eax, dword [0xa1a69c]
add eax, 1
mov dword [0xa1a69c], eax
mov eax, dword [0xa1a69c]
cmp eax, 2
setle al
test al, al
jne 0x49b733
mov eax, dword [0x6834bc]
test eax, eax
jne 0x49b96b
mov eax, dword [0xa1a698]
cmp eax, 0xffffffff
je 0x49b972
mov eax, dword [0x69de40]
test eax, eax
je 0x49b96e
mov eax, dword [0x694094]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa1a620], eax
mov eax, dword [0xa1a698]
shl eax, 5
add eax, 0x683550
mov edx, dword [eax + 4]
mov eax, dword [0xa1a698]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax + 8]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [0xa1a620]
cmp edx, eax
jne 0x49b971
mov eax, dword [0x522854]
test eax, eax
je 0x49c0b6
mov eax, dword [0xa1a620]
mov ecx, eax
mov eax, dword [0x694094]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa1a698]
shl eax, 5
add eax, 0x683550
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 0x49c0b9
jmp 0x49b972
mov eax, dword [0x694094]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa1a620], eax
mov edx, dword [0xa1a620]
mov eax, dword [0x52286c]
cmp edx, eax
je 0x49b8f4
mov eax, dword [0xa19bb4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa1a620]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa19bb4], eax
mov eax, dword [0xa1a620]
mov dword [0x52286c], eax
jmp 0x49b945
mov eax, dword [0x6834bc]
test eax, eax
jne 0x49b941
mov eax, dword [0x522854]
test eax, eax
je 0x49c0bc
mov eax, dword [0xa1a620]
mov ecx, eax
mov eax, dword [0x694094]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa19bb4]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x49b944
mov eax, dword [0x69de40]
test eax, eax
jne 0x49c0bf
jmp 0x49b945
nop
jmp 0x49b945
nop
mov eax, dword [0xa1a620]
mov ecx, eax
mov eax, dword [0x694094]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa19bb4]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x49b972
nop
jmp 0x49b972
nop
jmp 0x49b972
nop
mov edx, dword [0x6940b4]
mov eax, dword [0x6940b8]
imul eax, edx
shl eax, 2
mov dword [0xa1a720], eax
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov edx, dword [eax + 0xc]
mov eax, dword [0xa1a720]
cmp edx, eax
jge 0x49b9ef
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa1a614]
mov eax, dword [0xa1a720]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x683550
mov dword [edx], eax
mov edx, dword [0xa1a614]
mov eax, dword [0xa1a720]
shl edx, 5
add edx, 0x683550
mov dword [edx + 0xc], eax
mov edx, dword [0xa1a614]
mov eax, dword [0x6940b4]
shl edx, 5
add edx, 0x683550
mov dword [edx + 4], eax
mov edx, dword [0xa1a614]
mov eax, dword [0x6940b8]
shl edx, 5
add edx, 0x683550
mov dword [edx + 8], eax
movzx eax, byte [0xa1a610]
test al, al
jne 0x49ba7c
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov edx, dword [eax + 4]
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0x694094]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x49bebd
mov eax, dword [0xa19bb4]
mov dword [0xa1a724], eax
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax]
mov dword [0xa1a728], eax
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov edx, dword [eax + 4]
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax + 8]
imul eax, edx
mov dword [0xa1a72c], eax
mov eax, dword [0xa1a72c]
test eax, eax
jle 0x49bebd
jmp 0x49bb25
mov eax, dword [0xa1a724]
mov edx, dword [eax]
mov dword [0xa1a730], edx
add eax, 4
mov dword [0xa1a724], eax
mov eax, dword [0xa1a728]
mov edx, dword [0xa1a730]
mov ecx, edx
and ecx, 0xff00ff00
mov edx, dword [0xa1a730]
and edx, 0xff0000
shr edx, 0x10
or ecx, edx
mov edx, dword [0xa1a730]
and edx, 0xff
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
add eax, 4
mov dword [0xa1a728], eax
mov eax, dword [0xa1a72c]
test eax, eax
setne dl
sub eax, 1
mov dword [0xa1a72c], eax
test dl, dl
jne 0x49bad1
jmp 0x49bebd
mov eax, dword [0x694094]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x49bbe1
call fcn.0043ff4f
and eax, 0x200
mov dword [0xa1a698], eax
mov eax, dword [0xa1a698]
test eax, eax
je 0x49bb75
mov dword [0xa1a698], 1
mov dword [0xa1a620], 0
jmp 0x49bbd2
mov eax, dword [0x694094]
mov eax, dword [eax + 0x48]
mov edx, dword [0xa1a620]
shl edx, 2
lea ecx, [eax + edx]
mov edx, dword [0xa1a698]
mov eax, dword [0x694094]
mov eax, dword [eax + 0x48]
mov ebx, dword [0xa1a620]
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 + 0xa0c600]
mov dword [ecx], eax
mov eax, dword [0xa1a620]
add eax, 1
mov dword [0xa1a620], eax
mov eax, dword [0xa1a620]
cmp eax, 3
setle al
test al, al
jne 0x49bb81
mov eax, dword [0x694094]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
mov dword [0xa1a620], eax
mov eax, dword [0x694094]
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 [0xa1a698], eax
mov edx, dword [0xa1a620]
mov eax, dword [0x52286c]
cmp edx, eax
je 0x49bc59
mov eax, dword [0xa19bb4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa1a620]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa19bb4], eax
mov eax, dword [0xa1a620]
mov dword [0x52286c], eax
jmp 0x49bcd7
mov eax, dword [0x6834bc]
test eax, eax
jne 0x49bcd0
mov eax, dword [0x522854]
test eax, eax
je 0x49c0c2
mov eax, dword [0xa1a620]
mov ecx, eax
mov eax, dword [0x694094]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa19bb4]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x49bcd3
mov eax, dword [0xa1a698]
shl eax, 2
mov edx, eax
mov eax, dword [0x694094]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa19bc0
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x49bcd6
mov eax, dword [0x69de40]
test eax, eax
jne 0x49c0c5
jmp 0x49bcd7
nop
jmp 0x49bcd7
nop
jmp 0x49bcd7
nop
mov edx, dword [0x6940b4]
mov eax, dword [0x6940b8]
imul eax, edx
shl eax, 2
mov dword [0xa1a734], eax
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov edx, dword [eax + 0xc]
mov eax, dword [0xa1a734]
cmp edx, eax
jge 0x49bd54
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa1a614]
mov eax, dword [0xa1a734]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x683550
mov dword [edx], eax
mov edx, dword [0xa1a614]
mov eax, dword [0xa1a734]
shl edx, 5
add edx, 0x683550
mov dword [edx + 0xc], eax
mov edx, dword [0xa1a614]
mov eax, dword [0x6940b4]
shl edx, 5
add edx, 0x683550
mov dword [edx + 4], eax
mov edx, dword [0xa1a614]
mov eax, dword [0x6940b8]
shl edx, 5
add edx, 0x683550
mov dword [edx + 8], eax
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax]
mov dword [0x694098], eax
mov eax, dword [0xa1a620]
mov ecx, eax
mov eax, dword [0x694094]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa19bb4]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa1a698]
shl eax, 2
mov edx, eax
mov eax, dword [0x694094]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa19bc0
call sub.msvcrt.dll_memcpy
movzx eax, byte [0xa1a610]
test al, al
je 0x49bdf0
call fcn.0049a14e
mov eax, dword [0xa19bb4]
mov dword [0xa1a738], eax
mov eax, dword [0x694098]
mov dword [0xa1a73c], eax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa1a6b0], eax
mov eax, dword [0x694094]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa1a6ac], eax
mov dword [0xa1a63c], 0
jmp 0x49be97
mov dword [0xa1a638], 0
jmp 0x49be76
mov edx, dword [0xa1a73c]
mov eax, dword [0xa1a738]
movzx ecx, byte [eax]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0xa19bc0]
mov dword [edx], ecx
add edx, 4
mov dword [0xa1a73c], edx
add eax, 1
mov dword [0xa1a738], eax
mov eax, dword [0xa1a638]
add eax, 1
mov dword [0xa1a638], eax
mov edx, dword [0xa1a638]
mov eax, dword [0xa1a6b0]
cmp edx, eax
setl al
test al, al
jne 0x49be3e
mov eax, dword [0xa1a63c]
add eax, 1
mov dword [0xa1a63c], eax
mov edx, dword [0xa1a63c]
mov eax, dword [0xa1a6ac]
cmp edx, eax
setl al
test al, al
jne 0x49be32
movzx eax, byte [0xa1a610]
test al, al
je 0x49bec0
call fcn.0049a14e
jmp 0x49bec0
nop
jmp 0x49bec1
nop
mov dword [0x6834bc], 0
mov dword [0x69de40], 1
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683540
mov dword [eax], 3
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683540
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x6835a8], eax
mov dword [0x6835ac], edx
mov eax, dword [0x67eb4c]
test eax, eax
je 0x49c0c6
mov eax, dword [0x683620]
test eax, eax
je 0x49c0c6
mov eax, dword [0xa1a740]
test eax, eax
jne 0x49bf6f
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 [0xa1a740], eax
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax + 4]
mov dword [0xa1a744], eax
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov eax, dword [eax + 8]
mov dword [0xa1a748], eax
mov eax, dword [0xa1a74c]
add eax, 1
mov dword [0xa1a74c], eax
mov eax, dword [0xa1a74c]
mov dword [0xa1a750], eax
mov eax, dword [0xa1a744]
mov dword [0xa1a754], eax
mov eax, dword [0xa1a748]
mov dword [0xa1a758], eax
mov eax, dword [0xa1a740]
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 [0xa1a744]
mov eax, dword [0xa1a748]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683550
mov edx, dword [eax]
mov eax, dword [0xa1a740]
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 [0xa1a740]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call eax
sub esp, 4
mov eax, dword [0xa1a740]
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 [0xa1a740]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0xa1a750
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x49c0c6
nop
jmp 0x49c0c6
nop
jmp 0x49c0c6
nop
jmp 0x49c0c6
nop
jmp 0x49c0c6
nop
jmp 0x49c0c6
nop
jmp 0x49c0c6
nop
jmp 0x49c0c6
nop
jmp 0x49c0c6
nop
jmp 0x49c0c6
nop
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683540
mov eax, dword [eax]
cmp eax, 2
jne 0x49c10b
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683540
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x6835a8], eax
mov dword [0x6835ac], edx
mov eax, dword [0xa1a614]
shl eax, 5
add eax, 0x683540
mov dword [eax], 1
mov eax, dword [0x69de54]
cmp eax, 1
jne 0x49c130
mov dword [0x69de54], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x5222d8]
cmp eax, 0xffffffff
jne 0x49c144
mov dword [0x5222d8], 0
mov dword [0xa19b60], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret