Function at 0x4ca842
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 0x4ca862
mov byte [0xa4d1f0], 1
mov eax, dword [0x6d0a34]
cmp eax, 1
jne 0x4ca887
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 0x4ca8a8
mov eax, dword [0x6b6284]
test eax, eax
je 0x4ca8a8
mov dword [0xa4c740], 1
jmp 0x4cc7c7
mov eax, dword [0x6d0a34]
test eax, eax
jne 0x4cc783
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 0x4ca954
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 0x4ca947
cmp ebx, edx
jl 0x4ca90b
cmp ecx, eax
jae 0x4ca947
mov eax, dword [0xa4d200]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 3
jne 0x4ca947
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 0x4ca8e1
mov dword [0xa4d200], 0
jmp 0x4ca99e
mov eax, dword [0xa4d200]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 1
jne 0x4ca991
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 0x4ca973
mov eax, dword [0xa4d1f4]
cmp eax, 0xffffffff
jne 0x4ca9c8
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.0047104b
jmp 0x4cc7c7
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 0x4caa5d
mov dword [esp + 8], 1
fld qword [0x583428]
fstp qword [esp]
call fcn.004927d2
fstp qword [0xa4d208]
fld qword [0xa4d210]
fld qword [0xa4d208]
fsubp st(1)
fabs
fld qword [0x5835b0]
fucompi st(1)
fstp st(0)
ja 0x4cc722
fld qword [0xa4d208]
fstp qword [0xa4d210]
mov eax, dword [0x6c6c74]
test eax, eax
je 0x4cc725
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 0x4caaec
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 0x4cab1c
mov eax, dword [0xa4d21c]
cmp eax, 0x180
jg 0x4cab1c
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 0x4cabb2
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 0x4cbd5e
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 0x4caca8
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 0x4cacbf
mov eax, dword [0xa4d238]
cmp eax, 1
je 0x4cc728
mov eax, dword [0xa4d238]
test eax, eax
jne 0x4cacea
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 0x4cad38
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 0x4cad38
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 0x4cad72
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 0x4cad72
mov dword [0xa4d23c], 1
mov eax, dword [0x6d090c]
and eax, 8
test eax, eax
je 0x4cad8a
mov dword [0xa4d240], 1
jmp 0x4cad94
mov dword [0xa4d240], 0
mov eax, dword [0x6d090c]
and eax, 8
test eax, eax
je 0x4cadac
mov dword [0xa4d244], 1
jmp 0x4cadb6
mov dword [0xa4d244], 0
mov eax, dword [0x6b0b4c]
test eax, eax
je 0x4cae82
mov dword [esp + 8], 1
fld qword [0x583428]
fstp qword [esp]
call fcn.004927d2
fld qword [0x5833b0]
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 0x4cae45
mov dword [0xa4d240], 1
jmp 0x4cae4f
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 0x4cae78
mov dword [0xa4d244], 1
jmp 0x4cae82
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 0x4caee2
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa4d25c]
cmp edx, eax
jle 0x4caee2
mov eax, dword [0xa4d25c]
add eax, 1
mov dword [0xa4d25c], eax
mov dword [0xa4d258], 0
mov eax, dword [0xa4d238]
test eax, eax
je 0x4caf45
mov edx, dword [0xa4d244]
mov eax, dword [0xa4d260]
cmp edx, eax
je 0x4caf04
mov dword [0xa4d23c], 1
mov edx, dword [0xa4d240]
mov eax, dword [0xa4d264]
cmp edx, eax
je 0x4caf1d
mov dword [0xa4d23c], 1
mov edx, dword [0xa4d258]
mov eax, dword [0x553874]
cmp edx, eax
jne 0x4caf3b
mov edx, dword [0xa4d25c]
mov eax, dword [0x553878]
cmp edx, eax
je 0x4caf45
mov dword [0xa4d23c], 1
mov eax, dword [0xa4d238]
test eax, eax
jne 0x4caf58
mov dword [0xa4d23c], 1
mov eax, dword [0xa4d23c]
test eax, eax
je 0x4cc72b
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 0x4cafe2
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 0x4cb170
mov dword [0xa4d270], 0
mov dword [0xa4d274], 0
mov dword [0xa4d278], 0xffffffff
mov dword [0xa4d27c], 0
jmp 0x4cb0e5
mov eax, dword [0xa4d27c]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 4
je 0x4cb086
mov eax, dword [0xa4d27c]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 3
jne 0x4cb0d8
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 0x4cb0d8
cmp ebx, edx
jg 0x4cb0b0
cmp ecx, eax
jbe 0x4cb0d8
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 0x4cb05e
mov eax, dword [0xa4d278]
cmp eax, 0xffffffff
je 0x4cb15a
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 0x4cb170
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.0047104b
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 0x4cb1a1
call fcn.004ca7c6
mov dword [0xa4d28c], 0
mov dword [0xa4d21c], 0
jmp 0x4cbce4
mov dword [0xa4d290], 0
mov dword [0xa4d218], 0
jmp 0x4cbc98
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 0x4cb309
movzx edx, byte [0xa4d294]
movzx eax, byte [0xa4d296]
cmp dl, al
jne 0x4cb309
movzx edx, byte [0xa4d295]
movzx eax, byte [0xa4d297]
cmp dl, al
jne 0x4cb309
movzx eax, byte [0xa4d295]
test al, al
jns 0x4cb28e
mov edx, dword [0xa4d244]
mov eax, dword [0xa4d260]
cmp edx, eax
jne 0x4cb305
mov edx, dword [0xa4d218]
mov eax, dword [0xa4d258]
cmp edx, eax
jne 0x4cb2bb
mov edx, dword [0xa4d21c]
mov eax, dword [0xa4d25c]
cmp edx, eax
jne 0x4cb2bb
mov edx, dword [0xa4d240]
mov eax, dword [0xa4d264]
cmp edx, eax
jne 0x4cb308
mov edx, dword [0xa4d218]
mov eax, dword [0x553874]
cmp edx, eax
jne 0x4cbc66
mov edx, dword [0xa4d21c]
mov eax, dword [0x553878]
cmp edx, eax
jne 0x4cbc66
mov edx, dword [0xa4d258]
mov eax, dword [0x553874]
cmp edx, eax
jne 0x4cb309
mov edx, dword [0xa4d25c]
mov eax, dword [0x553878]
cmp edx, eax
je 0x4cbc66
jmp 0x4cb309
nop
jmp 0x4cb309
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 0x4cb422
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 0x4cb39e
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.00470599
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 0x4cb516
mov dword [0xa4d2c4], 0
mov eax, dword [0xa4d22c]
cmp eax, 8
jne 0x4cb44d
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 0x4cb471
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 0x4cb492
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 0x4cb4bd
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 0x4cb4eb
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 0x4cb516
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 0x4cb557
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 0x4cb569
movzx eax, byte [0xa4d295]
movzx eax, al
sar eax, 4
mov byte [0xa4d2c9], al
movzx eax, byte [0xa4d2ca]
test al, al
je 0x4cb592
mov eax, dword [0xa4d244]
test eax, eax
je 0x4cb592
mov eax, dword [0x553650]
test eax, eax
je 0x4cb592
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 0x4cb6f3
mov dword [0xa4d2d4], 0
jmp 0x4cb6a7
mov eax, dword [0xa4d2c0]
movzx eax, byte [eax]
test al, al
je 0x4cb64a
mov eax, dword [0xa4d2cc]
mov edx, dword [0xa4d278]
mov dword [eax], edx
jmp 0x4cb657
mov eax, dword [0xa4d2cc]
mov edx, dword [0xa4d27c]
mov dword [eax], edx
mov eax, dword [0xa4d298]
test eax, eax
je 0x4cb680
mov edx, dword [0xa4d2d4]
mov eax, dword [0xa4d298]
and eax, edx
test eax, eax
je 0x4cb68d
mov eax, dword [0xa4d2c0]
add eax, 1
mov dword [0xa4d2c0], eax
jmp 0x4cb68d
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 0x4cb62f
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 0x4cb623
mov eax, dword [0x6c6c74]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x4cbc6a
mov eax, dword [0xa4d240]
test eax, eax
je 0x4cbc6a
mov edx, dword [0xa4d258]
mov eax, dword [0xa4d218]
cmp edx, eax
jne 0x4cbc6a
mov edx, dword [0xa4d25c]
mov eax, dword [0xa4d21c]
cmp edx, eax
jne 0x4cbc6a
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 0x4cb7af
mov eax, dword [0xa4d2d8]
test eax, eax
jne 0x4cbc69
mov byte [0xa4d2e2], 1
jmp 0x4cb90d
mov edx, dword [0xa4d2dc]
mov eax, dword [0xa4d2d8]
cmp edx, eax
jge 0x4cb7d4
mov eax, dword [0xa4d2dc]
mov byte [0xa4d2e3], al
mov byte [0xa4d2e2], 0xff
jmp 0x4cb90d
mov edx, dword [0xa4d2d8]
mov eax, dword [0xa4d2dc]
cmp edx, eax
jne 0x4cb816
mov eax, dword [0xa4d2d8]
cmp eax, 3
jg 0x4cb803
mov eax, dword [0xa4d2d8]
mov byte [0xa4d2e3], al
mov byte [0xa4d2e2], 1
jmp 0x4cb90d
mov byte [0xa4d2e0], 1
mov byte [0xa4d2e2], 1
jmp 0x4cb90d
mov eax, dword [0xa4d2d8]
cmp eax, 2
jle 0x4cb87e
mov edx, dword [0xa4d2dc]
mov eax, dword [0xa4d2d8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x4cb849
mov byte [0xa4d2e0], 1
mov byte [0xa4d2e2], 2
jmp 0x4cb90d
mov edx, dword [0xa4d2dc]
mov eax, dword [0xa4d2d8]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x4cb872
mov byte [0xa4d2e0], 1
mov byte [0xa4d2e2], 3
jmp 0x4cb90d
mov byte [0xa4d2e1], 1
jmp 0x4cb90d
mov eax, dword [0xa4d2d8]
cmp eax, 1
jg 0x4cb8cb
mov eax, dword [0xa4d2dc]
cmp eax, 3
jg 0x4cb8b8
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 0x4cb90d
mov eax, dword [0xa4d2d8]
mov byte [0xa4d2e3], al
mov byte [0xa4d2e2], 0xff
jmp 0x4cb90d
mov eax, dword [0xa4d2dc]
cmp eax, 3
jne 0x4cb8e5
mov byte [0xa4d2e3], 2
mov byte [0xa4d2e2], 2
jmp 0x4cb90d
mov eax, dword [0xa4d2dc]
cmp eax, 4
jne 0x4cb8ff
mov byte [0xa4d2e0], 1
mov byte [0xa4d2e2], 3
jmp 0x4cb90d
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 0x4cba44
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 0x4cba00
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 0x4cb9d9
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 0x4cbc6a
jmp 0x4cb995
movzx eax, byte [0xa4d2e0]
test al, al
je 0x4cbb48
mov eax, dword [0xa4d2e8]
sub eax, 1
mov dword [0xa4d2d0], eax
mov eax, dword [0xa4d2d0]
cmp eax, 0xf
jne 0x4cba74
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 0x4cbb04
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 0x4cbadd
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 0x4cbc6a
jmp 0x4cba99
movzx eax, byte [0xa4d2e3]
movzx edx, al
mov eax, dword [0xa4d2e8]
cmp edx, eax
jge 0x4cbc6a
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 0x4cbbba
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 0x4cbbba
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 0x4cbc25
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 0x4cbbfe
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 0x4cbbb9
jmp 0x4cbc6a
nop
jmp 0x4cbc6a
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 0x4cb1d3
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 0x4cb1ba
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 0x4cbd44
call fcn.004ca7c6
mov eax, dword [0xa4d1f4]
mov edx, eax
sar edx, 0x1f
mov dword [0xa4d2f0], eax
mov dword [0xa4d2f4], edx
jmp 0x4cc539
mov eax, dword [0x6c6c74]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x4cc1b8
movzx eax, byte [0xa4d1f0]
test al, al
jne 0x4cbf0f
mov dword [0xa4d2f8], 0
mov dword [0xa4d2fc], 0
mov dword [0xa4d278], 0xffffffff
mov dword [0xa4d27c], 0
jmp 0x4cbe32
mov eax, dword [0xa4d27c]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 4
je 0x4cbdd3
mov eax, dword [0xa4d27c]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 3
jne 0x4cbe25
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 0x4cbe25
cmp ebx, edx
jg 0x4cbdfd
cmp ecx, eax
jbe 0x4cbe25
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 0x4cbdab
mov eax, dword [0x6b609c]
test eax, eax
jne 0x4cbfe3
mov eax, dword [0xa4d278]
cmp eax, 0xffffffff
je 0x4cbfea
mov eax, dword [0x6d0a20]
test eax, eax
je 0x4cbfe6
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 0x4cbfe9
mov eax, dword [0x553854]
test eax, eax
je 0x4cc72e
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 0x4cc731
jmp 0x4cbfea
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 0x4cbf6c
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 0x4cbfbd
mov eax, dword [0x6b609c]
test eax, eax
jne 0x4cbfb9
mov eax, dword [0x553854]
test eax, eax
je 0x4cc734
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 0x4cbfbc
mov eax, dword [0x6d0a20]
test eax, eax
jne 0x4cc737
jmp 0x4cbfbd
nop
jmp 0x4cbfbd
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 0x4cbfea
nop
jmp 0x4cbfea
nop
jmp 0x4cbfea
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 0x4cc067
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 0x4cc0f4
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 0x4cc535
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 0x4cc535
jmp 0x4cc19d
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 0x4cc149
jmp 0x4cc535
mov eax, dword [0x6c6c74]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x4cc259
call fcn.004705c7
and eax, 0x200
mov dword [0xa4d278], eax
mov eax, dword [0xa4d278]
test eax, eax
je 0x4cc1ed
mov dword [0xa4d278], 1
mov dword [0xa4d200], 0
jmp 0x4cc24a
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 0x4cc1f9
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 0x4cc2d1
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 0x4cc34f
mov eax, dword [0x6b609c]
test eax, eax
jne 0x4cc348
mov eax, dword [0x553854]
test eax, eax
je 0x4cc73a
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 0x4cc34b
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 0x4cc34e
mov eax, dword [0x6d0a20]
test eax, eax
jne 0x4cc73d
jmp 0x4cc34f
nop
jmp 0x4cc34f
nop
jmp 0x4cc34f
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 0x4cc3cc
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 0x4cc468
call fcn.004ca7c6
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 0x4cc50f
mov dword [0xa4d218], 0
jmp 0x4cc4ee
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 0x4cc4b6
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 0x4cc4aa
movzx eax, byte [0xa4d1f0]
test al, al
je 0x4cc538
call fcn.004ca7c6
jmp 0x4cc538
nop
jmp 0x4cc539
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 0x4cc73e
mov eax, dword [0x6b6200]
test eax, eax
je 0x4cc73e
mov eax, dword [0xa4d320]
test eax, eax
jne 0x4cc5e7
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 0x4cc73e
nop
jmp 0x4cc73e
nop
jmp 0x4cc73e
nop
jmp 0x4cc73e
nop
jmp 0x4cc73e
nop
jmp 0x4cc73e
nop
jmp 0x4cc73e
nop
jmp 0x4cc73e
nop
jmp 0x4cc73e
nop
jmp 0x4cc73e
nop
mov eax, dword [0xa4d1f4]
shl eax, 5
add eax, 0x6b6120
mov eax, dword [eax]
cmp eax, 2
jne 0x4cc783
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 0x4cc7a8
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 0x4cc7bc
mov dword [0x5532d8], 0
mov dword [0xa4c740], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret