Function at 0x49576e
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov byte [0xa166b0], 0
mov eax, dword [0x67ab4c]
test eax, eax
je 0x49578e
mov byte [0xa166b0], 1
mov eax, dword [0x699ef4]
cmp eax, 1
jne 0x4957b3
mov dword [0x699ef4], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x67ab4c]
test eax, eax
jne 0x4957d4
mov eax, dword [0x67f744]
test eax, eax
je 0x4957d4
mov dword [0xa15c00], 1
jmp 0x4976f3
mov eax, dword [0x699ef4]
test eax, eax
jne 0x4976af
mov dword [0xa166b4], 0xffffffff
mov eax, dword [0x51e0a0]
mov edx, dword [0x51e0a4]
mov dword [0xa166b8], eax
mov dword [0xa166bc], edx
mov dword [0xa166c0], 0
jmp 0x495880
mov eax, dword [0xa166c0]
shl eax, 5
add eax, 0x67f5e0
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa166b8]
mov edx, dword [0xa166bc]
cmp ebx, edx
jg 0x495873
cmp ebx, edx
jl 0x495837
cmp ecx, eax
jae 0x495873
mov eax, dword [0xa166c0]
shl eax, 5
add eax, 0x67f5e0
mov eax, dword [eax]
cmp eax, 3
jne 0x495873
mov eax, dword [0xa166c0]
shl eax, 5
add eax, 0x67f5e0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa166b8], eax
mov dword [0xa166bc], edx
mov eax, dword [0xa166c0]
mov dword [0xa166b4], eax
mov eax, dword [0xa166c0]
add eax, 1
mov dword [0xa166c0], eax
mov eax, dword [0xa166c0]
cmp eax, 2
setle al
test al, al
jne 0x49580d
mov dword [0xa166c0], 0
jmp 0x4958ca
mov eax, dword [0xa166c0]
shl eax, 5
add eax, 0x67f5e0
mov eax, dword [eax]
cmp eax, 1
jne 0x4958bd
mov eax, dword [0xa166c0]
mov dword [0xa166b4], eax
mov eax, dword [0xa166c0]
add eax, 1
mov dword [0xa166c0], eax
mov eax, dword [0xa166c0]
cmp eax, 2
setle al
test al, al
jne 0x49589f
mov eax, dword [0xa166b4]
cmp eax, 0xffffffff
jne 0x4958f4
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.0043bf77
jmp 0x4976f3
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5e0
mov dword [eax], 2
mov ecx, dword [0xa166b4]
mov eax, dword [0x51e0a0]
mov edx, dword [0x51e0a4]
shl ecx, 5
add ecx, 0x67f5e0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add eax, 1
adc edx, 0
mov dword [0x51e0a0], eax
mov dword [0x51e0a4], edx
mov eax, dword [0x67ab4c]
test eax, eax
je 0x495989
mov dword [esp + 8], 1
fld qword [0x54db28]
fstp qword [esp]
call fcn.0045d6fe
fstp qword [0xa166c8]
fld qword [0xa166d0]
fld qword [0xa166c8]
fsubp st(1)
fabs
fld qword [0x54dcb0]
fucompi st(1)
fstp st(0)
ja 0x49764e
fld qword [0xa166c8]
fstp qword [0xa166d0]
mov eax, dword [0x690134]
test eax, eax
je 0x497651
mov eax, dword [0x690134]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa166d8], eax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa166dc], eax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x495a18
mov eax, dword [0x690134]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x67f754]
mov eax, dword [0x690134]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa166d8], eax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x67f750]
mov eax, dword [0x690134]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa166dc], eax
mov eax, dword [0xa166d8]
cmp eax, 0x200
jg 0x495a48
mov eax, dword [0xa166dc]
cmp eax, 0x180
jg 0x495a48
mov eax, dword [0xa166d8]
add eax, eax
mov dword [0xa166d8], eax
mov eax, dword [0xa166dc]
add eax, eax
mov dword [0xa166dc], eax
mov dword [0xa166e0], 0xffffffff
mov dword [0xa166e4], 0xffffffff
mov eax, dword [0x690134]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa166d8], eax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa166dc], eax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x495ade
mov eax, dword [0x690134]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x67f754]
mov eax, dword [0x690134]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa166d8], eax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x67f750]
mov eax, dword [0x690134]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa166dc], eax
mov eax, dword [0xa166d8]
mov dword [0x690154], eax
mov eax, dword [0xa166dc]
mov dword [0x690158], eax
mov dword [0xa166e8], 0
mov dword [0x69015c], 0
mov eax, dword [0x690138]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x496c8a
mov eax, dword [0x690134]
mov eax, dword [eax + 0x30]
mov dword [0xa166ec], eax
mov eax, dword [0x67f754]
mov edx, dword [0xa166ec]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa166f0], eax
mov eax, dword [0x67f750]
mov edx, dword [0xa166ec]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa166f4], eax
mov eax, dword [0x699ee0]
mov dword [0xa166f8], eax
mov dword [0xa166fc], 0
mov eax, dword [0x690134]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
add eax, eax
mov dword [0xa166c0], eax
mov eax, dword [0xa166c0]
mov edx, eax
mov eax, dword [0x51e560]
cmp edx, eax
je 0x495bd4
mov eax, dword [0x699ee4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa166c0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x699ee4], eax
mov eax, dword [0xa166c0]
mov dword [0x51e560], eax
mov dword [0xa166f8], 0
mov eax, dword [0x51e854]
test eax, eax
jne 0x495beb
mov eax, dword [0xa166f8]
cmp eax, 1
je 0x497654
mov eax, dword [0xa166f8]
test eax, eax
jne 0x495c16
mov eax, dword [0x690134]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa15c60
call sub.msvcrt.dll_memcpy
jmp 0x495c64
mov eax, dword [0x690134]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa15c60
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x495c64
mov eax, dword [0x690134]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa15c60
call sub.msvcrt.dll_memcpy
mov dword [0xa166f8], 0
mov eax, dword [0xa166f8]
test eax, eax
je 0x495c9e
mov ecx, dword [0x51e560]
mov eax, dword [0x690134]
mov edx, dword [eax + 0x40]
mov eax, dword [0x699ee4]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x495c9e
mov dword [0xa166fc], 1
mov eax, dword [0x699dcc]
and eax, 8
test eax, eax
je 0x495cb6
mov dword [0xa16700], 1
jmp 0x495cc0
mov dword [0xa16700], 0
mov eax, dword [0x699dcc]
and eax, 8
test eax, eax
je 0x495cd8
mov dword [0xa16704], 1
jmp 0x495ce2
mov dword [0xa16704], 0
mov eax, dword [0x67ab4c]
test eax, eax
je 0x495dae
mov dword [esp + 8], 1
fld qword [0x54db28]
fstp qword [esp]
call fcn.0045d6fe
fld qword [0x54dab0]
fdivp st(1)
fstp qword [0xa16708]
fld qword [0xa16708]
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 [0xa16710], eax
mov dword [0xa16714], edx
mov eax, dword [0xa16710]
mov edx, dword [0xa16714]
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 0x495d71
mov dword [0xa16700], 1
jmp 0x495d7b
mov dword [0xa16700], 0
mov eax, dword [0xa16710]
mov edx, dword [0xa16714]
mov esi, eax
and esi, 1
mov edi, edx
and edi, 0
mov eax, edi
or eax, esi
test eax, eax
je 0x495da4
mov dword [0xa16704], 1
jmp 0x495dae
mov dword [0xa16704], 0
mov eax, dword [0x690134]
movzx eax, word [eax + 0x38]
cwde
sub eax, 1
mov dword [0xa16718], eax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x3a]
cwde
sub eax, 1
mov dword [0xa1671c], eax
mov eax, dword [0x690134]
movzx eax, byte [eax + 0x51]
cmp al, 2
jne 0x495e0e
mov eax, dword [0x690134]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa1671c]
cmp edx, eax
jle 0x495e0e
mov eax, dword [0xa1671c]
add eax, 1
mov dword [0xa1671c], eax
mov dword [0xa16718], 0
mov eax, dword [0xa166f8]
test eax, eax
je 0x495e71
mov edx, dword [0xa16704]
mov eax, dword [0xa16720]
cmp edx, eax
je 0x495e30
mov dword [0xa166fc], 1
mov edx, dword [0xa16700]
mov eax, dword [0xa16724]
cmp edx, eax
je 0x495e49
mov dword [0xa166fc], 1
mov edx, dword [0xa16718]
mov eax, dword [0x51e874]
cmp edx, eax
jne 0x495e67
mov edx, dword [0xa1671c]
mov eax, dword [0x51e878]
cmp edx, eax
je 0x495e71
mov dword [0xa166fc], 1
mov eax, dword [0xa166f8]
test eax, eax
jne 0x495e84
mov dword [0xa166fc], 1
mov eax, dword [0xa166fc]
test eax, eax
je 0x497657
mov edx, dword [0x690154]
mov eax, dword [0x690158]
imul eax, edx
shl eax, 2
mov dword [0xa16728], eax
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov edx, dword [eax + 0xc]
mov eax, dword [0xa16728]
cmp edx, eax
jge 0x495f0e
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa166b4]
mov eax, dword [0xa16728]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x67f5f0
mov dword [edx], eax
mov edx, dword [0xa166b4]
mov eax, dword [0xa16728]
shl edx, 5
add edx, 0x67f5f0
mov dword [edx + 0xc], eax
mov edx, dword [0xa166b4]
mov eax, dword [0x690154]
shl edx, 5
add edx, 0x67f5f0
mov dword [edx + 4], eax
mov edx, dword [0xa166b4]
mov eax, dword [0x690158]
shl edx, 5
add edx, 0x67f5f0
mov dword [edx + 8], eax
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax]
mov dword [0x690138], eax
mov eax, dword [0xa166f8]
test eax, eax
je 0x49609c
mov dword [0xa16730], 0
mov dword [0xa16734], 0
mov dword [0xa16738], 0xffffffff
mov dword [0xa1673c], 0
jmp 0x496011
mov eax, dword [0xa1673c]
shl eax, 5
add eax, 0x67f5e0
mov eax, dword [eax]
cmp eax, 4
je 0x495fb2
mov eax, dword [0xa1673c]
shl eax, 5
add eax, 0x67f5e0
mov eax, dword [eax]
cmp eax, 3
jne 0x496004
mov eax, dword [0xa1673c]
shl eax, 5
add eax, 0x67f5e0
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa16730]
mov edx, dword [0xa16734]
cmp ebx, edx
jl 0x496004
cmp ebx, edx
jg 0x495fdc
cmp ecx, eax
jbe 0x496004
mov eax, dword [0xa1673c]
shl eax, 5
add eax, 0x67f5e0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa16730], eax
mov dword [0xa16734], edx
mov eax, dword [0xa1673c]
mov dword [0xa16738], eax
mov eax, dword [0xa1673c]
add eax, 1
mov dword [0xa1673c], eax
mov eax, dword [0xa1673c]
cmp eax, 2
setle al
test al, al
jne 0x495f8a
mov eax, dword [0xa16738]
cmp eax, 0xffffffff
je 0x496086
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov edx, dword [eax + 4]
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa16738]
shl eax, 5
add eax, 0x67f5f0
mov edx, dword [eax]
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x49609c
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.0043bf77
mov dword [0xa166f8], 0
mov dword [0xa16740], 0
mov eax, dword [0x690134]
mov eax, dword [eax + 0x40]
mov dword [0xa16744], eax
mov eax, dword [0x699ee4]
mov dword [0xa16748], eax
movzx eax, byte [0xa166b0]
test al, al
je 0x4960cd
call fcn.004956f2
mov dword [0xa1674c], 0
mov dword [0xa166dc], 0
jmp 0x496c10
mov dword [0xa16750], 0
mov dword [0xa166d8], 0
jmp 0x496bc4
mov eax, dword [0xa16744]
movzx eax, byte [eax]
mov byte [0xa16754], al
mov eax, dword [0xa16744]
add eax, 1
mov dword [0xa16744], eax
mov eax, dword [0xa16744]
movzx eax, byte [eax]
mov byte [0xa16755], al
mov eax, dword [0xa16744]
add eax, 1
mov dword [0xa16744], eax
mov eax, dword [0xa16748]
movzx eax, byte [eax]
mov byte [0xa16756], al
mov eax, dword [0xa16748]
add eax, 1
mov dword [0xa16748], eax
mov eax, dword [0xa16748]
movzx eax, byte [eax]
mov byte [0xa16757], al
mov eax, dword [0xa16748]
add eax, 1
mov dword [0xa16748], eax
mov eax, dword [0xa166f8]
test eax, eax
je 0x496235
movzx edx, byte [0xa16754]
movzx eax, byte [0xa16756]
cmp dl, al
jne 0x496235
movzx edx, byte [0xa16755]
movzx eax, byte [0xa16757]
cmp dl, al
jne 0x496235
movzx eax, byte [0xa16755]
test al, al
jns 0x4961ba
mov edx, dword [0xa16704]
mov eax, dword [0xa16720]
cmp edx, eax
jne 0x496231
mov edx, dword [0xa166d8]
mov eax, dword [0xa16718]
cmp edx, eax
jne 0x4961e7
mov edx, dword [0xa166dc]
mov eax, dword [0xa1671c]
cmp edx, eax
jne 0x4961e7
mov edx, dword [0xa16700]
mov eax, dword [0xa16724]
cmp edx, eax
jne 0x496234
mov edx, dword [0xa166d8]
mov eax, dword [0x51e874]
cmp edx, eax
jne 0x496b92
mov edx, dword [0xa166dc]
mov eax, dword [0x51e878]
cmp edx, eax
jne 0x496b92
mov edx, dword [0xa16718]
mov eax, dword [0x51e874]
cmp edx, eax
jne 0x496235
mov edx, dword [0xa1671c]
mov eax, dword [0x51e878]
cmp edx, eax
je 0x496b92
jmp 0x496235
nop
jmp 0x496235
nop
mov eax, dword [0xa16748]
sub eax, 2
mov dword [0xa16748], eax
mov eax, dword [0xa16748]
movzx edx, byte [0xa16754]
mov byte [eax], dl
mov eax, dword [0xa16748]
add eax, 1
mov dword [0xa16748], eax
mov eax, dword [0xa16748]
movzx edx, byte [0xa16755]
mov byte [eax], dl
mov eax, dword [0xa16748]
add eax, 1
mov dword [0xa16748], eax
mov dword [0xa16758], 0
mov eax, dword [0xa166ec]
cmp eax, 0x1f
jle 0x49634e
movzx eax, byte [0xa16754]
movzx eax, al
movzx eax, word [eax + eax + 0x51e0c0]
movzx eax, ax
mov dword [0xa1675c], eax
mov dword [0xa16760], 1
mov eax, dword [0xa16764]
test eax, eax
je 0x4962ca
mov eax, dword [0xa16764]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [0xa16760]
mov eax, dword [0x67f74c]
mov ecx, dword [0xa166ec]
shl ecx, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x20], 0xa16778
mov dword [esp + 0x1c], 0xa16774
mov dword [esp + 0x18], 0xa16770
mov dword [esp + 0x14], 0xa1676c
mov dword [esp + 0x10], 0xa16768
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa1675c
mov dword [esp], eax
call fcn.0043b4c5
mov dword [0xa1677c], eax
mov eax, dword [0xa16768]
mov dword [0xa16764], eax
mov eax, dword [0xa16768]
mov dword [0xa16780], eax
mov dword [0xa16784], 0
jmp 0x496442
mov dword [0xa16784], 0
mov eax, dword [0xa166ec]
cmp eax, 8
jne 0x496379
movzx eax, byte [0xa16754]
movzx eax, al
shl eax, 6
add eax, 0xa08700
mov dword [0xa16780], eax
mov eax, dword [0xa166ec]
cmp eax, 0xe
jne 0x49639d
movzx eax, byte [0xa16754]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa0c700
mov dword [0xa16780], eax
mov eax, dword [0xa166ec]
cmp eax, 0x10
jne 0x4963be
movzx eax, byte [0xa16754]
movzx eax, al
shl eax, 7
add eax, 0xa0c700
mov dword [0xa16780], eax
mov eax, dword [0xa166ec]
cmp eax, 9
jne 0x4963e9
movzx eax, byte [0xa16754]
movzx eax, al
shl eax, 6
add eax, 0xa08700
mov dword [0xa16780], eax
mov dword [0xa16758], 1
mov eax, dword [0xa166ec]
cmp eax, 0xf
jne 0x496417
movzx eax, byte [0xa16754]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa0c700
mov dword [0xa16780], eax
mov dword [0xa16758], 1
mov eax, dword [0xa166ec]
cmp eax, 0x11
jne 0x496442
movzx eax, byte [0xa16754]
movzx eax, al
shl eax, 7
add eax, 0xa0c700
mov dword [0xa16780], eax
mov dword [0xa16758], 1
movzx eax, byte [0xa16755]
and eax, 0xf
mov byte [0xa16788], al
mov eax, dword [0x51e650]
test eax, eax
je 0x496483
movzx eax, byte [0xa16755]
movzx eax, al
sar eax, 4
and eax, 7
mov byte [0xa16789], al
movzx eax, byte [0xa16755]
movzx eax, al
sar eax, 7
mov byte [0xa1678a], al
jmp 0x496495
movzx eax, byte [0xa16755]
movzx eax, al
sar eax, 4
mov byte [0xa16789], al
movzx eax, byte [0xa1678a]
test al, al
je 0x4964be
mov eax, dword [0xa16704]
test eax, eax
je 0x4964be
mov eax, dword [0x51e650]
test eax, eax
je 0x4964be
movzx eax, byte [0xa16789]
mov byte [0xa16788], al
movzx eax, byte [0xa16788]
movzx eax, al
mov eax, dword [eax*4 + 0xa15c60]
mov dword [0xa16738], eax
movzx eax, byte [0xa16789]
movzx eax, al
mov eax, dword [eax*4 + 0xa15c60]
mov dword [0xa1673c], eax
mov eax, dword [0x690138]
mov ecx, dword [0xa1674c]
mov edx, dword [0x690154]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa16740]
add ecx, edx
mov edx, dword [0xa16750]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa1678c], eax
mov edx, dword [0x690154]
mov ecx, dword [0x67f754]
mov eax, dword [0x690134]
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 [0xa166e8], eax
mov dword [0xa16790], 0
jmp 0x49661f
mov dword [0xa16794], 0
jmp 0x4965d3
mov eax, dword [0xa16780]
movzx eax, byte [eax]
test al, al
je 0x496576
mov eax, dword [0xa1678c]
mov edx, dword [0xa16738]
mov dword [eax], edx
jmp 0x496583
mov eax, dword [0xa1678c]
mov edx, dword [0xa1673c]
mov dword [eax], edx
mov eax, dword [0xa16758]
test eax, eax
je 0x4965ac
mov edx, dword [0xa16794]
mov eax, dword [0xa16758]
and eax, edx
test eax, eax
je 0x4965b9
mov eax, dword [0xa16780]
add eax, 1
mov dword [0xa16780], eax
jmp 0x4965b9
mov eax, dword [0xa16780]
add eax, 1
mov dword [0xa16780], eax
mov eax, dword [0xa1678c]
add eax, 4
mov dword [0xa1678c], eax
mov eax, dword [0xa16794]
add eax, 1
mov dword [0xa16794], eax
mov edx, dword [0xa16794]
mov eax, dword [0xa166f0]
cmp edx, eax
setl al
test al, al
jne 0x49655b
mov eax, dword [0xa1678c]
mov edx, dword [0xa166e8]
shl edx, 2
add eax, edx
mov dword [0xa1678c], eax
mov edx, dword [0xa16780]
mov eax, dword [0xa16784]
add eax, edx
mov dword [0xa16780], eax
mov eax, dword [0xa16790]
add eax, 1
mov dword [0xa16790], eax
mov edx, dword [0xa16790]
mov eax, dword [0xa166f4]
cmp edx, eax
setl al
test al, al
jne 0x49654f
mov eax, dword [0x690134]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x496b96
mov eax, dword [0xa16700]
test eax, eax
je 0x496b96
mov edx, dword [0xa16718]
mov eax, dword [0xa166d8]
cmp edx, eax
jne 0x496b96
mov edx, dword [0xa1671c]
mov eax, dword [0xa166dc]
cmp edx, eax
jne 0x496b96
mov eax, dword [0x690134]
movzx eax, byte [eax + 0x3d]
movzx eax, al
mov dword [0xa16798], eax
mov eax, dword [0x690134]
movzx eax, byte [eax + 0x3e]
movzx eax, al
mov dword [0xa1679c], eax
mov byte [0xa167a0], 0
mov byte [0xa167a1], 0
mov byte [0xa167a2], 0
mov byte [0xa167a3], 0
mov eax, dword [0xa1679c]
test eax, eax
jne 0x4966db
mov eax, dword [0xa16798]
test eax, eax
jne 0x496b95
mov byte [0xa167a2], 1
jmp 0x496839
mov edx, dword [0xa1679c]
mov eax, dword [0xa16798]
cmp edx, eax
jge 0x496700
mov eax, dword [0xa1679c]
mov byte [0xa167a3], al
mov byte [0xa167a2], 0xff
jmp 0x496839
mov edx, dword [0xa16798]
mov eax, dword [0xa1679c]
cmp edx, eax
jne 0x496742
mov eax, dword [0xa16798]
cmp eax, 3
jg 0x49672f
mov eax, dword [0xa16798]
mov byte [0xa167a3], al
mov byte [0xa167a2], 1
jmp 0x496839
mov byte [0xa167a0], 1
mov byte [0xa167a2], 1
jmp 0x496839
mov eax, dword [0xa16798]
cmp eax, 2
jle 0x4967aa
mov edx, dword [0xa1679c]
mov eax, dword [0xa16798]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x496775
mov byte [0xa167a0], 1
mov byte [0xa167a2], 2
jmp 0x496839
mov edx, dword [0xa1679c]
mov eax, dword [0xa16798]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x49679e
mov byte [0xa167a0], 1
mov byte [0xa167a2], 3
jmp 0x496839
mov byte [0xa167a1], 1
jmp 0x496839
mov eax, dword [0xa16798]
cmp eax, 1
jg 0x4967f7
mov eax, dword [0xa1679c]
cmp eax, 3
jg 0x4967e4
mov eax, dword [0xa16798]
mov byte [0xa167a3], al
mov eax, dword [0xa1679c]
mov edx, eax
mov eax, dword [0xa16798]
mov ebx, edx
sub ebx, eax
mov eax, ebx
add eax, 1
mov byte [0xa167a2], al
jmp 0x496839
mov eax, dword [0xa16798]
mov byte [0xa167a3], al
mov byte [0xa167a2], 0xff
jmp 0x496839
mov eax, dword [0xa1679c]
cmp eax, 3
jne 0x496811
mov byte [0xa167a3], 2
mov byte [0xa167a2], 2
jmp 0x496839
mov eax, dword [0xa1679c]
cmp eax, 4
jne 0x49682b
mov byte [0xa167a0], 1
mov byte [0xa167a2], 3
jmp 0x496839
mov byte [0xa167a3], 2
mov byte [0xa167a2], 0xff
mov edx, dword [0x67f754]
mov eax, dword [0x690134]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa167a4], eax
mov edx, dword [0x67f750]
mov eax, dword [0x690134]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa167a8], eax
movzx eax, byte [0xa167a1]
test al, al
je 0x496970
mov eax, dword [0xa167a8]
sub eax, 1
mov dword [0xa16790], eax
mov eax, dword [0xa167a8]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov byte [0xa167a2], al
movzx eax, byte [0xa16755]
and eax, 0xf
mov byte [0xa16788], al
movzx eax, byte [0xa16788]
movzx eax, al
mov eax, dword [eax*4 + 0xa15c60]
mov dword [0xa16738], eax
mov eax, dword [0x690138]
mov ecx, dword [0xa1674c]
mov edx, dword [0xa16790]
add ecx, edx
mov edx, dword [0x690154]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa16740]
add ecx, edx
mov edx, dword [0xa16750]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa1678c], eax
mov dword [0xa16794], 0
jmp 0x49692c
mov eax, dword [0xa1678c]
mov edx, dword [0xa16738]
mov dword [eax], edx
mov eax, dword [0xa1678c]
add eax, 4
mov dword [0xa1678c], eax
mov eax, dword [0xa16794]
add eax, 1
mov dword [0xa16794], eax
mov edx, dword [0xa16794]
mov eax, dword [0xa167a4]
cmp edx, eax
setl al
test al, al
jne 0x496905
mov eax, dword [0xa16790]
sub eax, 1
mov dword [0xa16790], eax
movzx eax, byte [0xa167a2]
sub eax, 1
mov byte [0xa167a2], al
movzx eax, byte [0xa167a2]
test al, al
je 0x496b96
jmp 0x4968c1
movzx eax, byte [0xa167a0]
test al, al
je 0x496a74
mov eax, dword [0xa167a8]
sub eax, 1
mov dword [0xa16790], eax
mov eax, dword [0xa16790]
cmp eax, 0xf
jne 0x4969a0
mov dword [0xa16790], 0xe
movzx eax, byte [0xa16755]
and eax, 0xf
mov byte [0xa16788], al
movzx eax, byte [0xa16788]
movzx eax, al
mov eax, dword [eax*4 + 0xa15c60]
mov dword [0xa16738], eax
mov eax, dword [0x690138]
mov ecx, dword [0xa1674c]
mov edx, dword [0xa16790]
add ecx, edx
mov edx, dword [0x690154]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa16740]
add ecx, edx
mov edx, dword [0xa16750]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa1678c], eax
mov dword [0xa16794], 0
jmp 0x496a30
mov eax, dword [0xa1678c]
mov edx, dword [0xa16738]
mov dword [eax], edx
mov eax, dword [0xa1678c]
add eax, 4
mov dword [0xa1678c], eax
mov eax, dword [0xa16794]
add eax, 1
mov dword [0xa16794], eax
mov edx, dword [0xa16794]
mov eax, dword [0xa167a4]
cmp edx, eax
setl al
test al, al
jne 0x496a09
mov eax, dword [0xa16790]
sub eax, 1
mov dword [0xa16790], eax
movzx eax, byte [0xa167a2]
sub eax, 1
mov byte [0xa167a2], al
movzx eax, byte [0xa167a2]
test al, al
je 0x496b96
jmp 0x4969c5
movzx eax, byte [0xa167a3]
movzx edx, al
mov eax, dword [0xa167a8]
cmp edx, eax
jge 0x496b96
movzx eax, byte [0xa167a3]
movzx eax, al
mov dword [0xa16790], eax
movzx eax, byte [0xa16755]
and eax, 0xf
mov byte [0xa16788], al
movzx eax, byte [0xa16788]
movzx eax, al
mov eax, dword [eax*4 + 0xa15c60]
mov dword [0xa16738], eax
movzx eax, byte [0xa167a2]
cmp al, 0xff
jne 0x496ae6
mov eax, dword [0xa167a8]
mov edx, eax
movzx eax, byte [0xa167a3]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov byte [0xa167a2], al
jmp 0x496ae6
nop
mov eax, dword [0x690138]
mov ecx, dword [0xa1674c]
mov edx, dword [0xa16790]
add ecx, edx
mov edx, dword [0x690154]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa16740]
add ecx, edx
mov edx, dword [0xa16750]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa1678c], eax
mov dword [0xa16794], 0
jmp 0x496b51
mov eax, dword [0xa1678c]
mov edx, dword [0xa16738]
mov dword [eax], edx
mov eax, dword [0xa1678c]
add eax, 4
mov dword [0xa1678c], eax
mov eax, dword [0xa16794]
add eax, 1
mov dword [0xa16794], eax
mov edx, dword [0xa16794]
mov eax, dword [0xa167a4]
cmp edx, eax
setl al
test al, al
jne 0x496b2a
mov eax, dword [0xa16790]
add eax, 1
mov dword [0xa16790], eax
movzx eax, byte [0xa167a2]
sub eax, 1
mov byte [0xa167a2], al
movzx eax, byte [0xa167a2]
test al, al
jne 0x496ae5
jmp 0x496b96
nop
jmp 0x496b96
nop
mov edx, dword [0x67f754]
mov eax, dword [0x690134]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa16750]
add eax, edx
mov dword [0xa16750], eax
mov eax, dword [0xa166d8]
add eax, 1
mov dword [0xa166d8], eax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0xa166d8]
cmp edx, eax
setg al
test al, al
jne 0x4960ff
mov edx, dword [0x67f750]
mov eax, dword [0x690134]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa1674c]
add eax, edx
mov dword [0xa1674c], eax
mov eax, dword [0xa166dc]
add eax, 1
mov dword [0xa166dc], eax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov eax, dword [0xa166dc]
cmp edx, eax
setg al
test al, al
jne 0x4960e6
mov eax, dword [0xa16704]
mov dword [0xa16720], eax
mov eax, dword [0xa16700]
mov dword [0xa16724], eax
mov eax, dword [0xa16718]
mov dword [0x51e874], eax
mov eax, dword [0xa1671c]
mov dword [0x51e878], eax
mov dword [0x699ee0], 1
movzx eax, byte [0xa166b0]
test al, al
je 0x496c70
call fcn.004956f2
mov eax, dword [0xa166b4]
mov edx, eax
sar edx, 0x1f
mov dword [0xa167b0], eax
mov dword [0xa167b4], edx
jmp 0x497465
mov eax, dword [0x690134]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x4970e4
movzx eax, byte [0xa166b0]
test al, al
jne 0x496e3b
mov dword [0xa167b8], 0
mov dword [0xa167bc], 0
mov dword [0xa16738], 0xffffffff
mov dword [0xa1673c], 0
jmp 0x496d5e
mov eax, dword [0xa1673c]
shl eax, 5
add eax, 0x67f5e0
mov eax, dword [eax]
cmp eax, 4
je 0x496cff
mov eax, dword [0xa1673c]
shl eax, 5
add eax, 0x67f5e0
mov eax, dword [eax]
cmp eax, 3
jne 0x496d51
mov eax, dword [0xa1673c]
shl eax, 5
add eax, 0x67f5e0
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa167b8]
mov edx, dword [0xa167bc]
cmp ebx, edx
jl 0x496d51
cmp ebx, edx
jg 0x496d29
cmp ecx, eax
jbe 0x496d51
mov eax, dword [0xa1673c]
shl eax, 5
add eax, 0x67f5e0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa167b8], eax
mov dword [0xa167bc], edx
mov eax, dword [0xa1673c]
mov dword [0xa16738], eax
mov eax, dword [0xa1673c]
add eax, 1
mov dword [0xa1673c], eax
mov eax, dword [0xa1673c]
cmp eax, 2
setle al
test al, al
jne 0x496cd7
mov eax, dword [0x67f55c]
test eax, eax
jne 0x496f0f
mov eax, dword [0xa16738]
cmp eax, 0xffffffff
je 0x496f16
mov eax, dword [0x699ee0]
test eax, eax
je 0x496f12
mov eax, dword [0x690134]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa166c0], eax
mov eax, dword [0xa16738]
shl eax, 5
add eax, 0x67f5f0
mov edx, dword [eax + 4]
mov eax, dword [0xa16738]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax + 8]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [0xa166c0]
cmp edx, eax
jne 0x496f15
mov eax, dword [0x51e854]
test eax, eax
je 0x49765a
mov eax, dword [0xa166c0]
mov ecx, eax
mov eax, dword [0x690134]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa16738]
shl eax, 5
add eax, 0x67f5f0
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 0x49765d
jmp 0x496f16
mov eax, dword [0x690134]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa166c0], eax
mov edx, dword [0xa166c0]
mov eax, dword [0x51e86c]
cmp edx, eax
je 0x496e98
mov eax, dword [0xa15c54]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa166c0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa15c54], eax
mov eax, dword [0xa166c0]
mov dword [0x51e86c], eax
jmp 0x496ee9
mov eax, dword [0x67f55c]
test eax, eax
jne 0x496ee5
mov eax, dword [0x51e854]
test eax, eax
je 0x497660
mov eax, dword [0xa166c0]
mov ecx, eax
mov eax, dword [0x690134]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa15c54]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x496ee8
mov eax, dword [0x699ee0]
test eax, eax
jne 0x497663
jmp 0x496ee9
nop
jmp 0x496ee9
nop
mov eax, dword [0xa166c0]
mov ecx, eax
mov eax, dword [0x690134]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa15c54]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x496f16
nop
jmp 0x496f16
nop
jmp 0x496f16
nop
mov edx, dword [0x690154]
mov eax, dword [0x690158]
imul eax, edx
shl eax, 2
mov dword [0xa167c0], eax
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov edx, dword [eax + 0xc]
mov eax, dword [0xa167c0]
cmp edx, eax
jge 0x496f93
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa166b4]
mov eax, dword [0xa167c0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x67f5f0
mov dword [edx], eax
mov edx, dword [0xa166b4]
mov eax, dword [0xa167c0]
shl edx, 5
add edx, 0x67f5f0
mov dword [edx + 0xc], eax
mov edx, dword [0xa166b4]
mov eax, dword [0x690154]
shl edx, 5
add edx, 0x67f5f0
mov dword [edx + 4], eax
mov edx, dword [0xa166b4]
mov eax, dword [0x690158]
shl edx, 5
add edx, 0x67f5f0
mov dword [edx + 8], eax
movzx eax, byte [0xa166b0]
test al, al
jne 0x497020
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov edx, dword [eax + 4]
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0x690134]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x497461
mov eax, dword [0xa15c54]
mov dword [0xa167c4], eax
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax]
mov dword [0xa167c8], eax
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov edx, dword [eax + 4]
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax + 8]
imul eax, edx
mov dword [0xa167cc], eax
mov eax, dword [0xa167cc]
test eax, eax
jle 0x497461
jmp 0x4970c9
mov eax, dword [0xa167c4]
mov edx, dword [eax]
mov dword [0xa167d0], edx
add eax, 4
mov dword [0xa167c4], eax
mov eax, dword [0xa167c8]
mov edx, dword [0xa167d0]
mov ecx, edx
and ecx, 0xff00ff00
mov edx, dword [0xa167d0]
and edx, 0xff0000
shr edx, 0x10
or ecx, edx
mov edx, dword [0xa167d0]
and edx, 0xff
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
add eax, 4
mov dword [0xa167c8], eax
mov eax, dword [0xa167cc]
test eax, eax
setne dl
sub eax, 1
mov dword [0xa167cc], eax
test dl, dl
jne 0x497075
jmp 0x497461
mov eax, dword [0x690134]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x497185
call fcn.0043b4f3
and eax, 0x200
mov dword [0xa16738], eax
mov eax, dword [0xa16738]
test eax, eax
je 0x497119
mov dword [0xa16738], 1
mov dword [0xa166c0], 0
jmp 0x497176
mov eax, dword [0x690134]
mov eax, dword [eax + 0x48]
mov edx, dword [0xa166c0]
shl edx, 2
lea ecx, [eax + edx]
mov edx, dword [0xa16738]
mov eax, dword [0x690134]
mov eax, dword [eax + 0x48]
mov ebx, dword [0xa166c0]
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 + 0xa086a0]
mov dword [ecx], eax
mov eax, dword [0xa166c0]
add eax, 1
mov dword [0xa166c0], eax
mov eax, dword [0xa166c0]
cmp eax, 3
setle al
test al, al
jne 0x497125
mov eax, dword [0x690134]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
mov dword [0xa166c0], eax
mov eax, dword [0x690134]
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 [0xa16738], eax
mov edx, dword [0xa166c0]
mov eax, dword [0x51e86c]
cmp edx, eax
je 0x4971fd
mov eax, dword [0xa15c54]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa166c0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa15c54], eax
mov eax, dword [0xa166c0]
mov dword [0x51e86c], eax
jmp 0x49727b
mov eax, dword [0x67f55c]
test eax, eax
jne 0x497274
mov eax, dword [0x51e854]
test eax, eax
je 0x497666
mov eax, dword [0xa166c0]
mov ecx, eax
mov eax, dword [0x690134]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa15c54]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x497277
mov eax, dword [0xa16738]
shl eax, 2
mov edx, eax
mov eax, dword [0x690134]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa15c60
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x49727a
mov eax, dword [0x699ee0]
test eax, eax
jne 0x497669
jmp 0x49727b
nop
jmp 0x49727b
nop
jmp 0x49727b
nop
mov edx, dword [0x690154]
mov eax, dword [0x690158]
imul eax, edx
shl eax, 2
mov dword [0xa167d4], eax
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov edx, dword [eax + 0xc]
mov eax, dword [0xa167d4]
cmp edx, eax
jge 0x4972f8
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa166b4]
mov eax, dword [0xa167d4]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x67f5f0
mov dword [edx], eax
mov edx, dword [0xa166b4]
mov eax, dword [0xa167d4]
shl edx, 5
add edx, 0x67f5f0
mov dword [edx + 0xc], eax
mov edx, dword [0xa166b4]
mov eax, dword [0x690154]
shl edx, 5
add edx, 0x67f5f0
mov dword [edx + 4], eax
mov edx, dword [0xa166b4]
mov eax, dword [0x690158]
shl edx, 5
add edx, 0x67f5f0
mov dword [edx + 8], eax
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax]
mov dword [0x690138], eax
mov eax, dword [0xa166c0]
mov ecx, eax
mov eax, dword [0x690134]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa15c54]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa16738]
shl eax, 2
mov edx, eax
mov eax, dword [0x690134]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa15c60
call sub.msvcrt.dll_memcpy
movzx eax, byte [0xa166b0]
test al, al
je 0x497394
call fcn.004956f2
mov eax, dword [0xa15c54]
mov dword [0xa167d8], eax
mov eax, dword [0x690138]
mov dword [0xa167dc], eax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa16750], eax
mov eax, dword [0x690134]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa1674c], eax
mov dword [0xa166dc], 0
jmp 0x49743b
mov dword [0xa166d8], 0
jmp 0x49741a
mov edx, dword [0xa167dc]
mov eax, dword [0xa167d8]
movzx ecx, byte [eax]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0xa15c60]
mov dword [edx], ecx
add edx, 4
mov dword [0xa167dc], edx
add eax, 1
mov dword [0xa167d8], eax
mov eax, dword [0xa166d8]
add eax, 1
mov dword [0xa166d8], eax
mov edx, dword [0xa166d8]
mov eax, dword [0xa16750]
cmp edx, eax
setl al
test al, al
jne 0x4973e2
mov eax, dword [0xa166dc]
add eax, 1
mov dword [0xa166dc], eax
mov edx, dword [0xa166dc]
mov eax, dword [0xa1674c]
cmp edx, eax
setl al
test al, al
jne 0x4973d6
movzx eax, byte [0xa166b0]
test al, al
je 0x497464
call fcn.004956f2
jmp 0x497464
nop
jmp 0x497465
nop
mov dword [0x67f55c], 0
mov dword [0x699ee0], 1
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5e0
mov dword [eax], 3
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5e0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x67f648], eax
mov dword [0x67f64c], edx
mov eax, dword [0x67ab4c]
test eax, eax
je 0x49766a
mov eax, dword [0x67f6c0]
test eax, eax
je 0x49766a
mov eax, dword [0xa167e0]
test eax, eax
jne 0x497513
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 [0xa167e0], eax
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax + 4]
mov dword [0xa167e4], eax
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov eax, dword [eax + 8]
mov dword [0xa167e8], eax
mov eax, dword [0xa167ec]
add eax, 1
mov dword [0xa167ec], eax
mov eax, dword [0xa167ec]
mov dword [0xa167f0], eax
mov eax, dword [0xa167e4]
mov dword [0xa167f4], eax
mov eax, dword [0xa167e8]
mov dword [0xa167f8], eax
mov eax, dword [0xa167e0]
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 [0xa167e4]
mov eax, dword [0xa167e8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5f0
mov edx, dword [eax]
mov eax, dword [0xa167e0]
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 [0xa167e0]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call eax
sub esp, 4
mov eax, dword [0xa167e0]
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 [0xa167e0]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0xa167f0
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x49766a
nop
jmp 0x49766a
nop
jmp 0x49766a
nop
jmp 0x49766a
nop
jmp 0x49766a
nop
jmp 0x49766a
nop
jmp 0x49766a
nop
jmp 0x49766a
nop
jmp 0x49766a
nop
jmp 0x49766a
nop
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5e0
mov eax, dword [eax]
cmp eax, 2
jne 0x4976af
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5e0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x67f648], eax
mov dword [0x67f64c], edx
mov eax, dword [0xa166b4]
shl eax, 5
add eax, 0x67f5e0
mov dword [eax], 1
mov eax, dword [0x699ef4]
cmp eax, 1
jne 0x4976d4
mov dword [0x699ef4], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x51e2d8]
cmp eax, 0xffffffff
jne 0x4976e8
mov dword [0x51e2d8], 0
mov dword [0xa15c00], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret