Function at 0x4ca212
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov byte [0xa4d1f0], 0
mov eax, dword [0x6b0b4c]
test eax, eax
je 0x4ca232
mov byte [0xa4d1f0], 1
mov eax, dword [0x6d0a34]
cmp eax, 1
jne 0x4ca257
mov dword [0x6d0a34], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x6b0b4c]
test eax, eax
jne 0x4ca278
mov eax, dword [0x6b6284]
test eax, eax
je 0x4ca278
mov dword [0xa4c740], 1
jmp 0x4cc197
mov eax, dword [0x6d0a34]
test eax, eax
jne 0x4cc153
mov dword [0xa4d1f4], 0xffffffff
mov eax, dword [0x5530a0]
mov edx, dword [0x5530a4]
mov dword [0xa4d1f8], eax
mov dword [0xa4d1fc], edx
mov dword [0xa4d200], 0
jmp 0x4ca324
mov eax, dword [0xa4d200]
shl eax, 5
add eax, 0x6b6120
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa4d1f8]
mov edx, dword [0xa4d1fc]
cmp ebx, edx
jg 0x4ca317
cmp ebx, edx
jl 0x4ca2db
cmp ecx, eax
jae 0x4ca317
mov eax, dword [0xa4d200]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 3
jne 0x4ca317
mov eax, dword [0xa4d200]
shl eax, 5
add eax, 0x6b6120
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa4d1f8], eax
mov dword [0xa4d1fc], edx
mov eax, dword [0xa4d200]
mov dword [0xa4d1f4], eax
mov eax, dword [0xa4d200]
add eax, 1
mov dword [0xa4d200], eax
mov eax, dword [0xa4d200]
cmp eax, 2
setle al
test al, al
jne 0x4ca2b1
mov dword [0xa4d200], 0
jmp 0x4ca36e
mov eax, dword [0xa4d200]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 1
jne 0x4ca361
mov eax, dword [0xa4d200]
mov dword [0xa4d1f4], eax
mov eax, dword [0xa4d200]
add eax, 1
mov dword [0xa4d200], eax
mov eax, dword [0xa4d200]
cmp eax, 2
setle al
test al, al
jne 0x4ca343
mov eax, dword [0xa4d1f4]
cmp eax, 0xffffffff
jne 0x4ca398
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.00470a1b
jmp 0x4cc197
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6120
mov dword [eax], 2
mov ecx, dword [0xa4d1f4]
mov eax, dword [0x5530a0]
mov edx, dword [0x5530a4]
shl ecx, 5
add ecx, 0x6b6120
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add eax, 1
adc edx, 0
mov dword [0x5530a0], eax
mov dword [0x5530a4], edx
mov eax, dword [0x6b0b4c]
test eax, eax
je 0x4ca42d
mov dword [esp + 8], 1
fld qword [0x583408]
fstp qword [esp]
call fcn.004921a2
fstp qword [0xa4d208]
fld qword [0xa4d210]
fld qword [0xa4d208]
fsubp st(1)
fabs
fld qword [0x583590]
fucompi st(1)
fstp st(0)
ja 0x4cc0f2
fld qword [0xa4d208]
fstp qword [0xa4d210]
mov eax, dword [0x6c6c74]
test eax, eax
je 0x4cc0f5
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa4d218], eax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa4d21c], eax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4ca4bc
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x6b6294]
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa4d218], eax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x6b6290]
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa4d21c], eax
mov eax, dword [0xa4d218]
cmp eax, 0x200
jg 0x4ca4ec
mov eax, dword [0xa4d21c]
cmp eax, 0x180
jg 0x4ca4ec
mov eax, dword [0xa4d218]
add eax, eax
mov dword [0xa4d218], eax
mov eax, dword [0xa4d21c]
add eax, eax
mov dword [0xa4d21c], eax
mov dword [0xa4d220], 0xffffffff
mov dword [0xa4d224], 0xffffffff
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa4d218], eax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa4d21c], eax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4ca582
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x6b6294]
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa4d218], eax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x6b6290]
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa4d21c], eax
mov eax, dword [0xa4d218]
mov dword [0x6c6c94], eax
mov eax, dword [0xa4d21c]
mov dword [0x6c6c98], eax
mov dword [0xa4d228], 0
mov dword [0x6c6c9c], 0
mov eax, dword [0x6c6c78]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4cb72e
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x30]
mov dword [0xa4d22c], eax
mov eax, dword [0x6b6294]
mov edx, dword [0xa4d22c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa4d230], eax
mov eax, dword [0x6b6290]
mov edx, dword [0xa4d22c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa4d234], eax
mov eax, dword [0x6d0a20]
mov dword [0xa4d238], eax
mov dword [0xa4d23c], 0
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
add eax, eax
mov dword [0xa4d200], eax
mov eax, dword [0xa4d200]
mov edx, eax
mov eax, dword [0x553560]
cmp edx, eax
je 0x4ca678
mov eax, dword [0x6d0a24]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa4d200]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x6d0a24], eax
mov eax, dword [0xa4d200]
mov dword [0x553560], eax
mov dword [0xa4d238], 0
mov eax, dword [0x553854]
test eax, eax
jne 0x4ca68f
mov eax, dword [0xa4d238]
cmp eax, 1
je 0x4cc0f8
mov eax, dword [0xa4d238]
test eax, eax
jne 0x4ca6ba
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa4c7a0
call sub.msvcrt.dll_memcpy
jmp 0x4ca708
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa4c7a0
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4ca708
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa4c7a0
call sub.msvcrt.dll_memcpy
mov dword [0xa4d238], 0
mov eax, dword [0xa4d238]
test eax, eax
je 0x4ca742
mov ecx, dword [0x553560]
mov eax, dword [0x6c6c74]
mov edx, dword [eax + 0x40]
mov eax, dword [0x6d0a24]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4ca742
mov dword [0xa4d23c], 1
mov eax, dword [0x6d090c]
and eax, 8
test eax, eax
je 0x4ca75a
mov dword [0xa4d240], 1
jmp 0x4ca764
mov dword [0xa4d240], 0
mov eax, dword [0x6d090c]
and eax, 8
test eax, eax
je 0x4ca77c
mov dword [0xa4d244], 1
jmp 0x4ca786
mov dword [0xa4d244], 0
mov eax, dword [0x6b0b4c]
test eax, eax
je 0x4ca852
mov dword [esp + 8], 1
fld qword [0x583408]
fstp qword [esp]
call fcn.004921a2
fld qword [0x583390]
fdivp st(1)
fstp qword [0xa4d248]
fld qword [0xa4d248]
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 [0xa4d250], eax
mov dword [0xa4d254], edx
mov eax, dword [0xa4d250]
mov edx, dword [0xa4d254]
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 0x4ca815
mov dword [0xa4d240], 1
jmp 0x4ca81f
mov dword [0xa4d240], 0
mov eax, dword [0xa4d250]
mov edx, dword [0xa4d254]
mov esi, eax
and esi, 1
mov edi, edx
and edi, 0
mov eax, edi
or eax, esi
test eax, eax
je 0x4ca848
mov dword [0xa4d244], 1
jmp 0x4ca852
mov dword [0xa4d244], 0
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x38]
cwde
sub eax, 1
mov dword [0xa4d258], eax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x3a]
cwde
sub eax, 1
mov dword [0xa4d25c], eax
mov eax, dword [0x6c6c74]
movzx eax, byte [eax + 0x51]
cmp al, 2
jne 0x4ca8b2
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa4d25c]
cmp edx, eax
jle 0x4ca8b2
mov eax, dword [0xa4d25c]
add eax, 1
mov dword [0xa4d25c], eax
mov dword [0xa4d258], 0
mov eax, dword [0xa4d238]
test eax, eax
je 0x4ca915
mov edx, dword [0xa4d244]
mov eax, dword [0xa4d260]
cmp edx, eax
je 0x4ca8d4
mov dword [0xa4d23c], 1
mov edx, dword [0xa4d240]
mov eax, dword [0xa4d264]
cmp edx, eax
je 0x4ca8ed
mov dword [0xa4d23c], 1
mov edx, dword [0xa4d258]
mov eax, dword [0x553874]
cmp edx, eax
jne 0x4ca90b
mov edx, dword [0xa4d25c]
mov eax, dword [0x553878]
cmp edx, eax
je 0x4ca915
mov dword [0xa4d23c], 1
mov eax, dword [0xa4d238]
test eax, eax
jne 0x4ca928
mov dword [0xa4d23c], 1
mov eax, dword [0xa4d23c]
test eax, eax
je 0x4cc0fb
mov edx, dword [0x6c6c94]
mov eax, dword [0x6c6c98]
imul eax, edx
shl eax, 2
mov dword [0xa4d268], eax
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov edx, dword [eax + 0xc]
mov eax, dword [0xa4d268]
cmp edx, eax
jge 0x4ca9b2
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa4d1f4]
mov eax, dword [0xa4d268]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6b6130
mov dword [edx], eax
mov edx, dword [0xa4d1f4]
mov eax, dword [0xa4d268]
shl edx, 5
add edx, 0x6b6130
mov dword [edx + 0xc], eax
mov edx, dword [0xa4d1f4]
mov eax, dword [0x6c6c94]
shl edx, 5
add edx, 0x6b6130
mov dword [edx + 4], eax
mov edx, dword [0xa4d1f4]
mov eax, dword [0x6c6c98]
shl edx, 5
add edx, 0x6b6130
mov dword [edx + 8], eax
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax]
mov dword [0x6c6c78], eax
mov eax, dword [0xa4d238]
test eax, eax
je 0x4cab40
mov dword [0xa4d270], 0
mov dword [0xa4d274], 0
mov dword [0xa4d278], 0xffffffff
mov dword [0xa4d27c], 0
jmp 0x4caab5
mov eax, dword [0xa4d27c]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 4
je 0x4caa56
mov eax, dword [0xa4d27c]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 3
jne 0x4caaa8
mov eax, dword [0xa4d27c]
shl eax, 5
add eax, 0x6b6120
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa4d270]
mov edx, dword [0xa4d274]
cmp ebx, edx
jl 0x4caaa8
cmp ebx, edx
jg 0x4caa80
cmp ecx, eax
jbe 0x4caaa8
mov eax, dword [0xa4d27c]
shl eax, 5
add eax, 0x6b6120
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa4d270], eax
mov dword [0xa4d274], edx
mov eax, dword [0xa4d27c]
mov dword [0xa4d278], eax
mov eax, dword [0xa4d27c]
add eax, 1
mov dword [0xa4d27c], eax
mov eax, dword [0xa4d27c]
cmp eax, 2
setle al
test al, al
jne 0x4caa2e
mov eax, dword [0xa4d278]
cmp eax, 0xffffffff
je 0x4cab2a
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov edx, dword [eax + 4]
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa4d278]
shl eax, 5
add eax, 0x6b6130
mov edx, dword [eax]
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4cab40
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.00470a1b
mov dword [0xa4d238], 0
mov dword [0xa4d280], 0
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x40]
mov dword [0xa4d284], eax
mov eax, dword [0x6d0a24]
mov dword [0xa4d288], eax
movzx eax, byte [0xa4d1f0]
test al, al
je 0x4cab71
call fcn.004ca196
mov dword [0xa4d28c], 0
mov dword [0xa4d21c], 0
jmp 0x4cb6b4
mov dword [0xa4d290], 0
mov dword [0xa4d218], 0
jmp 0x4cb668
mov eax, dword [0xa4d284]
movzx eax, byte [eax]
mov byte [0xa4d294], al
mov eax, dword [0xa4d284]
add eax, 1
mov dword [0xa4d284], eax
mov eax, dword [0xa4d284]
movzx eax, byte [eax]
mov byte [0xa4d295], al
mov eax, dword [0xa4d284]
add eax, 1
mov dword [0xa4d284], eax
mov eax, dword [0xa4d288]
movzx eax, byte [eax]
mov byte [0xa4d296], al
mov eax, dword [0xa4d288]
add eax, 1
mov dword [0xa4d288], eax
mov eax, dword [0xa4d288]
movzx eax, byte [eax]
mov byte [0xa4d297], al
mov eax, dword [0xa4d288]
add eax, 1
mov dword [0xa4d288], eax
mov eax, dword [0xa4d238]
test eax, eax
je 0x4cacd9
movzx edx, byte [0xa4d294]
movzx eax, byte [0xa4d296]
cmp dl, al
jne 0x4cacd9
movzx edx, byte [0xa4d295]
movzx eax, byte [0xa4d297]
cmp dl, al
jne 0x4cacd9
movzx eax, byte [0xa4d295]
test al, al
jns 0x4cac5e
mov edx, dword [0xa4d244]
mov eax, dword [0xa4d260]
cmp edx, eax
jne 0x4cacd5
mov edx, dword [0xa4d218]
mov eax, dword [0xa4d258]
cmp edx, eax
jne 0x4cac8b
mov edx, dword [0xa4d21c]
mov eax, dword [0xa4d25c]
cmp edx, eax
jne 0x4cac8b
mov edx, dword [0xa4d240]
mov eax, dword [0xa4d264]
cmp edx, eax
jne 0x4cacd8
mov edx, dword [0xa4d218]
mov eax, dword [0x553874]
cmp edx, eax
jne 0x4cb636
mov edx, dword [0xa4d21c]
mov eax, dword [0x553878]
cmp edx, eax
jne 0x4cb636
mov edx, dword [0xa4d258]
mov eax, dword [0x553874]
cmp edx, eax
jne 0x4cacd9
mov edx, dword [0xa4d25c]
mov eax, dword [0x553878]
cmp edx, eax
je 0x4cb636
jmp 0x4cacd9
nop
jmp 0x4cacd9
nop
mov eax, dword [0xa4d288]
sub eax, 2
mov dword [0xa4d288], eax
mov eax, dword [0xa4d288]
movzx edx, byte [0xa4d294]
mov byte [eax], dl
mov eax, dword [0xa4d288]
add eax, 1
mov dword [0xa4d288], eax
mov eax, dword [0xa4d288]
movzx edx, byte [0xa4d295]
mov byte [eax], dl
mov eax, dword [0xa4d288]
add eax, 1
mov dword [0xa4d288], eax
mov dword [0xa4d298], 0
mov eax, dword [0xa4d22c]
cmp eax, 0x1f
jle 0x4cadf2
movzx eax, byte [0xa4d294]
movzx eax, al
movzx eax, word [eax + eax + 0x5530c0]
movzx eax, ax
mov dword [0xa4d29c], eax
mov dword [0xa4d2a0], 1
mov eax, dword [0xa4d2a4]
test eax, eax
je 0x4cad6e
mov eax, dword [0xa4d2a4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [0xa4d2a0]
mov eax, dword [0x6b628c]
mov ecx, dword [0xa4d22c]
shl ecx, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x20], 0xa4d2b8
mov dword [esp + 0x1c], 0xa4d2b4
mov dword [esp + 0x18], 0xa4d2b0
mov dword [esp + 0x14], 0xa4d2ac
mov dword [esp + 0x10], 0xa4d2a8
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa4d29c
mov dword [esp], eax
call fcn.0046ff69
mov dword [0xa4d2bc], eax
mov eax, dword [0xa4d2a8]
mov dword [0xa4d2a4], eax
mov eax, dword [0xa4d2a8]
mov dword [0xa4d2c0], eax
mov dword [0xa4d2c4], 0
jmp 0x4caee6
mov dword [0xa4d2c4], 0
mov eax, dword [0xa4d22c]
cmp eax, 8
jne 0x4cae1d
movzx eax, byte [0xa4d294]
movzx eax, al
shl eax, 6
add eax, 0xa3f240
mov dword [0xa4d2c0], eax
mov eax, dword [0xa4d22c]
cmp eax, 0xe
jne 0x4cae41
movzx eax, byte [0xa4d294]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa43240
mov dword [0xa4d2c0], eax
mov eax, dword [0xa4d22c]
cmp eax, 0x10
jne 0x4cae62
movzx eax, byte [0xa4d294]
movzx eax, al
shl eax, 7
add eax, 0xa43240
mov dword [0xa4d2c0], eax
mov eax, dword [0xa4d22c]
cmp eax, 9
jne 0x4cae8d
movzx eax, byte [0xa4d294]
movzx eax, al
shl eax, 6
add eax, 0xa3f240
mov dword [0xa4d2c0], eax
mov dword [0xa4d298], 1
mov eax, dword [0xa4d22c]
cmp eax, 0xf
jne 0x4caebb
movzx eax, byte [0xa4d294]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa43240
mov dword [0xa4d2c0], eax
mov dword [0xa4d298], 1
mov eax, dword [0xa4d22c]
cmp eax, 0x11
jne 0x4caee6
movzx eax, byte [0xa4d294]
movzx eax, al
shl eax, 7
add eax, 0xa43240
mov dword [0xa4d2c0], eax
mov dword [0xa4d298], 1
movzx eax, byte [0xa4d295]
and eax, 0xf
mov byte [0xa4d2c8], al
mov eax, dword [0x553650]
test eax, eax
je 0x4caf27
movzx eax, byte [0xa4d295]
movzx eax, al
sar eax, 4
and eax, 7
mov byte [0xa4d2c9], al
movzx eax, byte [0xa4d295]
movzx eax, al
sar eax, 7
mov byte [0xa4d2ca], al
jmp 0x4caf39
movzx eax, byte [0xa4d295]
movzx eax, al
sar eax, 4
mov byte [0xa4d2c9], al
movzx eax, byte [0xa4d2ca]
test al, al
je 0x4caf62
mov eax, dword [0xa4d244]
test eax, eax
je 0x4caf62
mov eax, dword [0x553650]
test eax, eax
je 0x4caf62
movzx eax, byte [0xa4d2c9]
mov byte [0xa4d2c8], al
movzx eax, byte [0xa4d2c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa4c7a0]
mov dword [0xa4d278], eax
movzx eax, byte [0xa4d2c9]
movzx eax, al
mov eax, dword [eax*4 + 0xa4c7a0]
mov dword [0xa4d27c], eax
mov eax, dword [0x6c6c78]
mov ecx, dword [0xa4d28c]
mov edx, dword [0x6c6c94]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa4d280]
add ecx, edx
mov edx, dword [0xa4d290]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa4d2cc], eax
mov edx, dword [0x6c6c94]
mov ecx, dword [0x6b6294]
mov eax, dword [0x6c6c74]
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 [0xa4d228], eax
mov dword [0xa4d2d0], 0
jmp 0x4cb0c3
mov dword [0xa4d2d4], 0
jmp 0x4cb077
mov eax, dword [0xa4d2c0]
movzx eax, byte [eax]
test al, al
je 0x4cb01a
mov eax, dword [0xa4d2cc]
mov edx, dword [0xa4d278]
mov dword [eax], edx
jmp 0x4cb027
mov eax, dword [0xa4d2cc]
mov edx, dword [0xa4d27c]
mov dword [eax], edx
mov eax, dword [0xa4d298]
test eax, eax
je 0x4cb050
mov edx, dword [0xa4d2d4]
mov eax, dword [0xa4d298]
and eax, edx
test eax, eax
je 0x4cb05d
mov eax, dword [0xa4d2c0]
add eax, 1
mov dword [0xa4d2c0], eax
jmp 0x4cb05d
mov eax, dword [0xa4d2c0]
add eax, 1
mov dword [0xa4d2c0], eax
mov eax, dword [0xa4d2cc]
add eax, 4
mov dword [0xa4d2cc], eax
mov eax, dword [0xa4d2d4]
add eax, 1
mov dword [0xa4d2d4], eax
mov edx, dword [0xa4d2d4]
mov eax, dword [0xa4d230]
cmp edx, eax
setl al
test al, al
jne 0x4cafff
mov eax, dword [0xa4d2cc]
mov edx, dword [0xa4d228]
shl edx, 2
add eax, edx
mov dword [0xa4d2cc], eax
mov edx, dword [0xa4d2c0]
mov eax, dword [0xa4d2c4]
add eax, edx
mov dword [0xa4d2c0], eax
mov eax, dword [0xa4d2d0]
add eax, 1
mov dword [0xa4d2d0], eax
mov edx, dword [0xa4d2d0]
mov eax, dword [0xa4d234]
cmp edx, eax
setl al
test al, al
jne 0x4caff3
mov eax, dword [0x6c6c74]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x4cb63a
mov eax, dword [0xa4d240]
test eax, eax
je 0x4cb63a
mov edx, dword [0xa4d258]
mov eax, dword [0xa4d218]
cmp edx, eax
jne 0x4cb63a
mov edx, dword [0xa4d25c]
mov eax, dword [0xa4d21c]
cmp edx, eax
jne 0x4cb63a
mov eax, dword [0x6c6c74]
movzx eax, byte [eax + 0x3d]
movzx eax, al
mov dword [0xa4d2d8], eax
mov eax, dword [0x6c6c74]
movzx eax, byte [eax + 0x3e]
movzx eax, al
mov dword [0xa4d2dc], eax
mov byte [0xa4d2e0], 0
mov byte [0xa4d2e1], 0
mov byte [0xa4d2e2], 0
mov byte [0xa4d2e3], 0
mov eax, dword [0xa4d2dc]
test eax, eax
jne 0x4cb17f
mov eax, dword [0xa4d2d8]
test eax, eax
jne 0x4cb639
mov byte [0xa4d2e2], 1
jmp 0x4cb2dd
mov edx, dword [0xa4d2dc]
mov eax, dword [0xa4d2d8]
cmp edx, eax
jge 0x4cb1a4
mov eax, dword [0xa4d2dc]
mov byte [0xa4d2e3], al
mov byte [0xa4d2e2], 0xff
jmp 0x4cb2dd
mov edx, dword [0xa4d2d8]
mov eax, dword [0xa4d2dc]
cmp edx, eax
jne 0x4cb1e6
mov eax, dword [0xa4d2d8]
cmp eax, 3
jg 0x4cb1d3
mov eax, dword [0xa4d2d8]
mov byte [0xa4d2e3], al
mov byte [0xa4d2e2], 1
jmp 0x4cb2dd
mov byte [0xa4d2e0], 1
mov byte [0xa4d2e2], 1
jmp 0x4cb2dd
mov eax, dword [0xa4d2d8]
cmp eax, 2
jle 0x4cb24e
mov edx, dword [0xa4d2dc]
mov eax, dword [0xa4d2d8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x4cb219
mov byte [0xa4d2e0], 1
mov byte [0xa4d2e2], 2
jmp 0x4cb2dd
mov edx, dword [0xa4d2dc]
mov eax, dword [0xa4d2d8]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x4cb242
mov byte [0xa4d2e0], 1
mov byte [0xa4d2e2], 3
jmp 0x4cb2dd
mov byte [0xa4d2e1], 1
jmp 0x4cb2dd
mov eax, dword [0xa4d2d8]
cmp eax, 1
jg 0x4cb29b
mov eax, dword [0xa4d2dc]
cmp eax, 3
jg 0x4cb288
mov eax, dword [0xa4d2d8]
mov byte [0xa4d2e3], al
mov eax, dword [0xa4d2dc]
mov edx, eax
mov eax, dword [0xa4d2d8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
add eax, 1
mov byte [0xa4d2e2], al
jmp 0x4cb2dd
mov eax, dword [0xa4d2d8]
mov byte [0xa4d2e3], al
mov byte [0xa4d2e2], 0xff
jmp 0x4cb2dd
mov eax, dword [0xa4d2dc]
cmp eax, 3
jne 0x4cb2b5
mov byte [0xa4d2e3], 2
mov byte [0xa4d2e2], 2
jmp 0x4cb2dd
mov eax, dword [0xa4d2dc]
cmp eax, 4
jne 0x4cb2cf
mov byte [0xa4d2e0], 1
mov byte [0xa4d2e2], 3
jmp 0x4cb2dd
mov byte [0xa4d2e3], 2
mov byte [0xa4d2e2], 0xff
mov edx, dword [0x6b6294]
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa4d2e4], eax
mov edx, dword [0x6b6290]
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa4d2e8], eax
movzx eax, byte [0xa4d2e1]
test al, al
je 0x4cb414
mov eax, dword [0xa4d2e8]
sub eax, 1
mov dword [0xa4d2d0], eax
mov eax, dword [0xa4d2e8]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov byte [0xa4d2e2], al
movzx eax, byte [0xa4d295]
and eax, 0xf
mov byte [0xa4d2c8], al
movzx eax, byte [0xa4d2c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa4c7a0]
mov dword [0xa4d278], eax
mov eax, dword [0x6c6c78]
mov ecx, dword [0xa4d28c]
mov edx, dword [0xa4d2d0]
add ecx, edx
mov edx, dword [0x6c6c94]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa4d280]
add ecx, edx
mov edx, dword [0xa4d290]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa4d2cc], eax
mov dword [0xa4d2d4], 0
jmp 0x4cb3d0
mov eax, dword [0xa4d2cc]
mov edx, dword [0xa4d278]
mov dword [eax], edx
mov eax, dword [0xa4d2cc]
add eax, 4
mov dword [0xa4d2cc], eax
mov eax, dword [0xa4d2d4]
add eax, 1
mov dword [0xa4d2d4], eax
mov edx, dword [0xa4d2d4]
mov eax, dword [0xa4d2e4]
cmp edx, eax
setl al
test al, al
jne 0x4cb3a9
mov eax, dword [0xa4d2d0]
sub eax, 1
mov dword [0xa4d2d0], eax
movzx eax, byte [0xa4d2e2]
sub eax, 1
mov byte [0xa4d2e2], al
movzx eax, byte [0xa4d2e2]
test al, al
je 0x4cb63a
jmp 0x4cb365
movzx eax, byte [0xa4d2e0]
test al, al
je 0x4cb518
mov eax, dword [0xa4d2e8]
sub eax, 1
mov dword [0xa4d2d0], eax
mov eax, dword [0xa4d2d0]
cmp eax, 0xf
jne 0x4cb444
mov dword [0xa4d2d0], 0xe
movzx eax, byte [0xa4d295]
and eax, 0xf
mov byte [0xa4d2c8], al
movzx eax, byte [0xa4d2c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa4c7a0]
mov dword [0xa4d278], eax
mov eax, dword [0x6c6c78]
mov ecx, dword [0xa4d28c]
mov edx, dword [0xa4d2d0]
add ecx, edx
mov edx, dword [0x6c6c94]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa4d280]
add ecx, edx
mov edx, dword [0xa4d290]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa4d2cc], eax
mov dword [0xa4d2d4], 0
jmp 0x4cb4d4
mov eax, dword [0xa4d2cc]
mov edx, dword [0xa4d278]
mov dword [eax], edx
mov eax, dword [0xa4d2cc]
add eax, 4
mov dword [0xa4d2cc], eax
mov eax, dword [0xa4d2d4]
add eax, 1
mov dword [0xa4d2d4], eax
mov edx, dword [0xa4d2d4]
mov eax, dword [0xa4d2e4]
cmp edx, eax
setl al
test al, al
jne 0x4cb4ad
mov eax, dword [0xa4d2d0]
sub eax, 1
mov dword [0xa4d2d0], eax
movzx eax, byte [0xa4d2e2]
sub eax, 1
mov byte [0xa4d2e2], al
movzx eax, byte [0xa4d2e2]
test al, al
je 0x4cb63a
jmp 0x4cb469
movzx eax, byte [0xa4d2e3]
movzx edx, al
mov eax, dword [0xa4d2e8]
cmp edx, eax
jge 0x4cb63a
movzx eax, byte [0xa4d2e3]
movzx eax, al
mov dword [0xa4d2d0], eax
movzx eax, byte [0xa4d295]
and eax, 0xf
mov byte [0xa4d2c8], al
movzx eax, byte [0xa4d2c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa4c7a0]
mov dword [0xa4d278], eax
movzx eax, byte [0xa4d2e2]
cmp al, 0xff
jne 0x4cb58a
mov eax, dword [0xa4d2e8]
mov edx, eax
movzx eax, byte [0xa4d2e3]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov byte [0xa4d2e2], al
jmp 0x4cb58a
nop
mov eax, dword [0x6c6c78]
mov ecx, dword [0xa4d28c]
mov edx, dword [0xa4d2d0]
add ecx, edx
mov edx, dword [0x6c6c94]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa4d280]
add ecx, edx
mov edx, dword [0xa4d290]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa4d2cc], eax
mov dword [0xa4d2d4], 0
jmp 0x4cb5f5
mov eax, dword [0xa4d2cc]
mov edx, dword [0xa4d278]
mov dword [eax], edx
mov eax, dword [0xa4d2cc]
add eax, 4
mov dword [0xa4d2cc], eax
mov eax, dword [0xa4d2d4]
add eax, 1
mov dword [0xa4d2d4], eax
mov edx, dword [0xa4d2d4]
mov eax, dword [0xa4d2e4]
cmp edx, eax
setl al
test al, al
jne 0x4cb5ce
mov eax, dword [0xa4d2d0]
add eax, 1
mov dword [0xa4d2d0], eax
movzx eax, byte [0xa4d2e2]
sub eax, 1
mov byte [0xa4d2e2], al
movzx eax, byte [0xa4d2e2]
test al, al
jne 0x4cb589
jmp 0x4cb63a
nop
jmp 0x4cb63a
nop
mov edx, dword [0x6b6294]
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa4d290]
add eax, edx
mov dword [0xa4d290], eax
mov eax, dword [0xa4d218]
add eax, 1
mov dword [0xa4d218], eax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0xa4d218]
cmp edx, eax
setg al
test al, al
jne 0x4caba3
mov edx, dword [0x6b6290]
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa4d28c]
add eax, edx
mov dword [0xa4d28c], eax
mov eax, dword [0xa4d21c]
add eax, 1
mov dword [0xa4d21c], eax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov eax, dword [0xa4d21c]
cmp edx, eax
setg al
test al, al
jne 0x4cab8a
mov eax, dword [0xa4d244]
mov dword [0xa4d260], eax
mov eax, dword [0xa4d240]
mov dword [0xa4d264], eax
mov eax, dword [0xa4d258]
mov dword [0x553874], eax
mov eax, dword [0xa4d25c]
mov dword [0x553878], eax
mov dword [0x6d0a20], 1
movzx eax, byte [0xa4d1f0]
test al, al
je 0x4cb714
call fcn.004ca196
mov eax, dword [0xa4d1f4]
mov edx, eax
sar edx, 0x1f
mov dword [0xa4d2f0], eax
mov dword [0xa4d2f4], edx
jmp 0x4cbf09
mov eax, dword [0x6c6c74]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x4cbb88
movzx eax, byte [0xa4d1f0]
test al, al
jne 0x4cb8df
mov dword [0xa4d2f8], 0
mov dword [0xa4d2fc], 0
mov dword [0xa4d278], 0xffffffff
mov dword [0xa4d27c], 0
jmp 0x4cb802
mov eax, dword [0xa4d27c]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 4
je 0x4cb7a3
mov eax, dword [0xa4d27c]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 3
jne 0x4cb7f5
mov eax, dword [0xa4d27c]
shl eax, 5
add eax, 0x6b6120
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa4d2f8]
mov edx, dword [0xa4d2fc]
cmp ebx, edx
jl 0x4cb7f5
cmp ebx, edx
jg 0x4cb7cd
cmp ecx, eax
jbe 0x4cb7f5
mov eax, dword [0xa4d27c]
shl eax, 5
add eax, 0x6b6120
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa4d2f8], eax
mov dword [0xa4d2fc], edx
mov eax, dword [0xa4d27c]
mov dword [0xa4d278], eax
mov eax, dword [0xa4d27c]
add eax, 1
mov dword [0xa4d27c], eax
mov eax, dword [0xa4d27c]
cmp eax, 2
setle al
test al, al
jne 0x4cb77b
mov eax, dword [0x6b609c]
test eax, eax
jne 0x4cb9b3
mov eax, dword [0xa4d278]
cmp eax, 0xffffffff
je 0x4cb9ba
mov eax, dword [0x6d0a20]
test eax, eax
je 0x4cb9b6
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa4d200], eax
mov eax, dword [0xa4d278]
shl eax, 5
add eax, 0x6b6130
mov edx, dword [eax + 4]
mov eax, dword [0xa4d278]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax + 8]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [0xa4d200]
cmp edx, eax
jne 0x4cb9b9
mov eax, dword [0x553854]
test eax, eax
je 0x4cc0fe
mov eax, dword [0xa4d200]
mov ecx, eax
mov eax, dword [0x6c6c74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa4d278]
shl eax, 5
add eax, 0x6b6130
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 0x4cc101
jmp 0x4cb9ba
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa4d200], eax
mov edx, dword [0xa4d200]
mov eax, dword [0x55386c]
cmp edx, eax
je 0x4cb93c
mov eax, dword [0xa4c794]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa4d200]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa4c794], eax
mov eax, dword [0xa4d200]
mov dword [0x55386c], eax
jmp 0x4cb98d
mov eax, dword [0x6b609c]
test eax, eax
jne 0x4cb989
mov eax, dword [0x553854]
test eax, eax
je 0x4cc104
mov eax, dword [0xa4d200]
mov ecx, eax
mov eax, dword [0x6c6c74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa4c794]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4cb98c
mov eax, dword [0x6d0a20]
test eax, eax
jne 0x4cc107
jmp 0x4cb98d
nop
jmp 0x4cb98d
nop
mov eax, dword [0xa4d200]
mov ecx, eax
mov eax, dword [0x6c6c74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa4c794]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4cb9ba
nop
jmp 0x4cb9ba
nop
jmp 0x4cb9ba
nop
mov edx, dword [0x6c6c94]
mov eax, dword [0x6c6c98]
imul eax, edx
shl eax, 2
mov dword [0xa4d300], eax
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov edx, dword [eax + 0xc]
mov eax, dword [0xa4d300]
cmp edx, eax
jge 0x4cba37
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa4d1f4]
mov eax, dword [0xa4d300]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6b6130
mov dword [edx], eax
mov edx, dword [0xa4d1f4]
mov eax, dword [0xa4d300]
shl edx, 5
add edx, 0x6b6130
mov dword [edx + 0xc], eax
mov edx, dword [0xa4d1f4]
mov eax, dword [0x6c6c94]
shl edx, 5
add edx, 0x6b6130
mov dword [edx + 4], eax
mov edx, dword [0xa4d1f4]
mov eax, dword [0x6c6c98]
shl edx, 5
add edx, 0x6b6130
mov dword [edx + 8], eax
movzx eax, byte [0xa4d1f0]
test al, al
jne 0x4cbac4
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov edx, dword [eax + 4]
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0x6c6c74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4cbf05
mov eax, dword [0xa4c794]
mov dword [0xa4d304], eax
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax]
mov dword [0xa4d308], eax
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov edx, dword [eax + 4]
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax + 8]
imul eax, edx
mov dword [0xa4d30c], eax
mov eax, dword [0xa4d30c]
test eax, eax
jle 0x4cbf05
jmp 0x4cbb6d
mov eax, dword [0xa4d304]
mov edx, dword [eax]
mov dword [0xa4d310], edx
add eax, 4
mov dword [0xa4d304], eax
mov eax, dword [0xa4d308]
mov edx, dword [0xa4d310]
mov ecx, edx
and ecx, 0xff00ff00
mov edx, dword [0xa4d310]
and edx, 0xff0000
shr edx, 0x10
or ecx, edx
mov edx, dword [0xa4d310]
and edx, 0xff
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
add eax, 4
mov dword [0xa4d308], eax
mov eax, dword [0xa4d30c]
test eax, eax
setne dl
sub eax, 1
mov dword [0xa4d30c], eax
test dl, dl
jne 0x4cbb19
jmp 0x4cbf05
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x4cbc29
call fcn.0046ff97
and eax, 0x200
mov dword [0xa4d278], eax
mov eax, dword [0xa4d278]
test eax, eax
je 0x4cbbbd
mov dword [0xa4d278], 1
mov dword [0xa4d200], 0
jmp 0x4cbc1a
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x48]
mov edx, dword [0xa4d200]
shl edx, 2
lea ecx, [eax + edx]
mov edx, dword [0xa4d278]
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x48]
mov ebx, dword [0xa4d200]
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 + 0xa3f1e0]
mov dword [ecx], eax
mov eax, dword [0xa4d200]
add eax, 1
mov dword [0xa4d200], eax
mov eax, dword [0xa4d200]
cmp eax, 3
setle al
test al, al
jne 0x4cbbc9
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
mov dword [0xa4d200], eax
mov eax, dword [0x6c6c74]
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 [0xa4d278], eax
mov edx, dword [0xa4d200]
mov eax, dword [0x55386c]
cmp edx, eax
je 0x4cbca1
mov eax, dword [0xa4c794]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa4d200]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa4c794], eax
mov eax, dword [0xa4d200]
mov dword [0x55386c], eax
jmp 0x4cbd1f
mov eax, dword [0x6b609c]
test eax, eax
jne 0x4cbd18
mov eax, dword [0x553854]
test eax, eax
je 0x4cc10a
mov eax, dword [0xa4d200]
mov ecx, eax
mov eax, dword [0x6c6c74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa4c794]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4cbd1b
mov eax, dword [0xa4d278]
shl eax, 2
mov edx, eax
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa4c7a0
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4cbd1e
mov eax, dword [0x6d0a20]
test eax, eax
jne 0x4cc10d
jmp 0x4cbd1f
nop
jmp 0x4cbd1f
nop
jmp 0x4cbd1f
nop
mov edx, dword [0x6c6c94]
mov eax, dword [0x6c6c98]
imul eax, edx
shl eax, 2
mov dword [0xa4d314], eax
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov edx, dword [eax + 0xc]
mov eax, dword [0xa4d314]
cmp edx, eax
jge 0x4cbd9c
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa4d1f4]
mov eax, dword [0xa4d314]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6b6130
mov dword [edx], eax
mov edx, dword [0xa4d1f4]
mov eax, dword [0xa4d314]
shl edx, 5
add edx, 0x6b6130
mov dword [edx + 0xc], eax
mov edx, dword [0xa4d1f4]
mov eax, dword [0x6c6c94]
shl edx, 5
add edx, 0x6b6130
mov dword [edx + 4], eax
mov edx, dword [0xa4d1f4]
mov eax, dword [0x6c6c98]
shl edx, 5
add edx, 0x6b6130
mov dword [edx + 8], eax
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax]
mov dword [0x6c6c78], eax
mov eax, dword [0xa4d200]
mov ecx, eax
mov eax, dword [0x6c6c74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa4c794]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa4d278]
shl eax, 2
mov edx, eax
mov eax, dword [0x6c6c74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa4c7a0
call sub.msvcrt.dll_memcpy
movzx eax, byte [0xa4d1f0]
test al, al
je 0x4cbe38
call fcn.004ca196
mov eax, dword [0xa4c794]
mov dword [0xa4d318], eax
mov eax, dword [0x6c6c78]
mov dword [0xa4d31c], eax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa4d290], eax
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa4d28c], eax
mov dword [0xa4d21c], 0
jmp 0x4cbedf
mov dword [0xa4d218], 0
jmp 0x4cbebe
mov edx, dword [0xa4d31c]
mov eax, dword [0xa4d318]
movzx ecx, byte [eax]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0xa4c7a0]
mov dword [edx], ecx
add edx, 4
mov dword [0xa4d31c], edx
add eax, 1
mov dword [0xa4d318], eax
mov eax, dword [0xa4d218]
add eax, 1
mov dword [0xa4d218], eax
mov edx, dword [0xa4d218]
mov eax, dword [0xa4d290]
cmp edx, eax
setl al
test al, al
jne 0x4cbe86
mov eax, dword [0xa4d21c]
add eax, 1
mov dword [0xa4d21c], eax
mov edx, dword [0xa4d21c]
mov eax, dword [0xa4d28c]
cmp edx, eax
setl al
test al, al
jne 0x4cbe7a
movzx eax, byte [0xa4d1f0]
test al, al
je 0x4cbf08
call fcn.004ca196
jmp 0x4cbf08
nop
jmp 0x4cbf09
nop
mov dword [0x6b609c], 0
mov dword [0x6d0a20], 1
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6120
mov dword [eax], 3
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6120
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x6b6188], eax
mov dword [0x6b618c], edx
mov eax, dword [0x6b0b4c]
test eax, eax
je 0x4cc10e
mov eax, dword [0x6b6200]
test eax, eax
je 0x4cc10e
mov eax, dword [0xa4d320]
test eax, eax
jne 0x4cbfb7
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 [0xa4d320], eax
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax + 4]
mov dword [0xa4d324], eax
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov eax, dword [eax + 8]
mov dword [0xa4d328], eax
mov eax, dword [0xa4d32c]
add eax, 1
mov dword [0xa4d32c], eax
mov eax, dword [0xa4d32c]
mov dword [0xa4d330], eax
mov eax, dword [0xa4d324]
mov dword [0xa4d334], eax
mov eax, dword [0xa4d328]
mov dword [0xa4d338], eax
mov eax, dword [0xa4d320]
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 [0xa4d324]
mov eax, dword [0xa4d328]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6130
mov edx, dword [eax]
mov eax, dword [0xa4d320]
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 [0xa4d320]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call eax
sub esp, 4
mov eax, dword [0xa4d320]
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 [0xa4d320]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0xa4d330
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x4cc10e
nop
jmp 0x4cc10e
nop
jmp 0x4cc10e
nop
jmp 0x4cc10e
nop
jmp 0x4cc10e
nop
jmp 0x4cc10e
nop
jmp 0x4cc10e
nop
jmp 0x4cc10e
nop
jmp 0x4cc10e
nop
jmp 0x4cc10e
nop
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 2
jne 0x4cc153
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6120
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x6b6188], eax
mov dword [0x6b618c], edx
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6120
mov dword [eax], 1
mov eax, dword [0x6d0a34]
cmp eax, 1
jne 0x4cc178
mov dword [0x6d0a34], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x5532d8]
cmp eax, 0xffffffff
jne 0x4cc18c
mov dword [0x5532d8], 0
mov dword [0xa4c740], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret