Function at 0x4c2352
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov byte [0xa450f0], 0
mov eax, dword [0x6a8b4c]
test eax, eax
je 0x4c2372
mov byte [0xa450f0], 1
mov eax, dword [0x6c8934]
cmp eax, 1
jne 0x4c2397
mov dword [0x6c8934], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x6a8b4c]
test eax, eax
jne 0x4c23b8
mov eax, dword [0x6ae184]
test eax, eax
je 0x4c23b8
mov dword [0xa44640], 1
jmp 0x4c42d7
mov eax, dword [0x6c8934]
test eax, eax
jne 0x4c4293
mov dword [0xa450f4], 0xffffffff
mov eax, dword [0x54b0a0]
mov edx, dword [0x54b0a4]
mov dword [0xa450f8], eax
mov dword [0xa450fc], edx
mov dword [0xa45100], 0
jmp 0x4c2464
mov eax, dword [0xa45100]
shl eax, 5
add eax, 0x6ae020
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa450f8]
mov edx, dword [0xa450fc]
cmp ebx, edx
jg 0x4c2457
cmp ebx, edx
jl 0x4c241b
cmp ecx, eax
jae 0x4c2457
mov eax, dword [0xa45100]
shl eax, 5
add eax, 0x6ae020
mov eax, dword [eax]
cmp eax, 3
jne 0x4c2457
mov eax, dword [0xa45100]
shl eax, 5
add eax, 0x6ae020
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa450f8], eax
mov dword [0xa450fc], edx
mov eax, dword [0xa45100]
mov dword [0xa450f4], eax
mov eax, dword [0xa45100]
add eax, 1
mov dword [0xa45100], eax
mov eax, dword [0xa45100]
cmp eax, 2
setle al
test al, al
jne 0x4c23f1
mov dword [0xa45100], 0
jmp 0x4c24ae
mov eax, dword [0xa45100]
shl eax, 5
add eax, 0x6ae020
mov eax, dword [eax]
cmp eax, 1
jne 0x4c24a1
mov eax, dword [0xa45100]
mov dword [0xa450f4], eax
mov eax, dword [0xa45100]
add eax, 1
mov dword [0xa45100], eax
mov eax, dword [0xa45100]
cmp eax, 2
setle al
test al, al
jne 0x4c2483
mov eax, dword [0xa450f4]
cmp eax, 0xffffffff
jne 0x4c24d8
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.00468b5b
jmp 0x4c42d7
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae020
mov dword [eax], 2
mov ecx, dword [0xa450f4]
mov eax, dword [0x54b0a0]
mov edx, dword [0x54b0a4]
shl ecx, 5
add ecx, 0x6ae020
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add eax, 1
adc edx, 0
mov dword [0x54b0a0], eax
mov dword [0x54b0a4], edx
mov eax, dword [0x6a8b4c]
test eax, eax
je 0x4c256d
mov dword [esp + 8], 1
fld qword [0x57b328]
fstp qword [esp]
call fcn.0048a2e2
fstp qword [0xa45108]
fld qword [0xa45110]
fld qword [0xa45108]
fsubp st(1)
fabs
fld qword [0x57b4b0]
fucompi st(1)
fstp st(0)
ja 0x4c4232
fld qword [0xa45108]
fstp qword [0xa45110]
mov eax, dword [0x6beb74]
test eax, eax
je 0x4c4235
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa45118], eax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa4511c], eax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4c25fc
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x6ae194]
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa45118], eax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x6ae190]
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa4511c], eax
mov eax, dword [0xa45118]
cmp eax, 0x200
jg 0x4c262c
mov eax, dword [0xa4511c]
cmp eax, 0x180
jg 0x4c262c
mov eax, dword [0xa45118]
add eax, eax
mov dword [0xa45118], eax
mov eax, dword [0xa4511c]
add eax, eax
mov dword [0xa4511c], eax
mov dword [0xa45120], 0xffffffff
mov dword [0xa45124], 0xffffffff
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa45118], eax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa4511c], eax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4c26c2
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x6ae194]
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa45118], eax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x6ae190]
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa4511c], eax
mov eax, dword [0xa45118]
mov dword [0x6beb94], eax
mov eax, dword [0xa4511c]
mov dword [0x6beb98], eax
mov dword [0xa45128], 0
mov dword [0x6beb9c], 0
mov eax, dword [0x6beb78]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4c386e
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x30]
mov dword [0xa4512c], eax
mov eax, dword [0x6ae194]
mov edx, dword [0xa4512c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa45130], eax
mov eax, dword [0x6ae190]
mov edx, dword [0xa4512c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa45134], eax
mov eax, dword [0x6c8920]
mov dword [0xa45138], eax
mov dword [0xa4513c], 0
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
add eax, eax
mov dword [0xa45100], eax
mov eax, dword [0xa45100]
mov edx, eax
mov eax, dword [0x54b560]
cmp edx, eax
je 0x4c27b8
mov eax, dword [0x6c8924]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa45100]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x6c8924], eax
mov eax, dword [0xa45100]
mov dword [0x54b560], eax
mov dword [0xa45138], 0
mov eax, dword [0x54b854]
test eax, eax
jne 0x4c27cf
mov eax, dword [0xa45138]
cmp eax, 1
je 0x4c4238
mov eax, dword [0xa45138]
test eax, eax
jne 0x4c27fa
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa446a0
call sub.msvcrt.dll_memcpy
jmp 0x4c2848
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa446a0
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4c2848
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa446a0
call sub.msvcrt.dll_memcpy
mov dword [0xa45138], 0
mov eax, dword [0xa45138]
test eax, eax
je 0x4c2882
mov ecx, dword [0x54b560]
mov eax, dword [0x6beb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0x6c8924]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4c2882
mov dword [0xa4513c], 1
mov eax, dword [0x6c880c]
and eax, 8
test eax, eax
je 0x4c289a
mov dword [0xa45140], 1
jmp 0x4c28a4
mov dword [0xa45140], 0
mov eax, dword [0x6c880c]
and eax, 8
test eax, eax
je 0x4c28bc
mov dword [0xa45144], 1
jmp 0x4c28c6
mov dword [0xa45144], 0
mov eax, dword [0x6a8b4c]
test eax, eax
je 0x4c2992
mov dword [esp + 8], 1
fld qword [0x57b328]
fstp qword [esp]
call fcn.0048a2e2
fld qword [0x57b2b0]
fdivp st(1)
fstp qword [0xa45148]
fld qword [0xa45148]
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 [0xa45150], eax
mov dword [0xa45154], edx
mov eax, dword [0xa45150]
mov edx, dword [0xa45154]
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 0x4c2955
mov dword [0xa45140], 1
jmp 0x4c295f
mov dword [0xa45140], 0
mov eax, dword [0xa45150]
mov edx, dword [0xa45154]
mov esi, eax
and esi, 1
mov edi, edx
and edi, 0
mov eax, edi
or eax, esi
test eax, eax
je 0x4c2988
mov dword [0xa45144], 1
jmp 0x4c2992
mov dword [0xa45144], 0
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x38]
cwde
sub eax, 1
mov dword [0xa45158], eax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x3a]
cwde
sub eax, 1
mov dword [0xa4515c], eax
mov eax, dword [0x6beb74]
movzx eax, byte [eax + 0x51]
cmp al, 2
jne 0x4c29f2
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa4515c]
cmp edx, eax
jle 0x4c29f2
mov eax, dword [0xa4515c]
add eax, 1
mov dword [0xa4515c], eax
mov dword [0xa45158], 0
mov eax, dword [0xa45138]
test eax, eax
je 0x4c2a55
mov edx, dword [0xa45144]
mov eax, dword [0xa45160]
cmp edx, eax
je 0x4c2a14
mov dword [0xa4513c], 1
mov edx, dword [0xa45140]
mov eax, dword [0xa45164]
cmp edx, eax
je 0x4c2a2d
mov dword [0xa4513c], 1
mov edx, dword [0xa45158]
mov eax, dword [0x54b874]
cmp edx, eax
jne 0x4c2a4b
mov edx, dword [0xa4515c]
mov eax, dword [0x54b878]
cmp edx, eax
je 0x4c2a55
mov dword [0xa4513c], 1
mov eax, dword [0xa45138]
test eax, eax
jne 0x4c2a68
mov dword [0xa4513c], 1
mov eax, dword [0xa4513c]
test eax, eax
je 0x4c423b
mov edx, dword [0x6beb94]
mov eax, dword [0x6beb98]
imul eax, edx
shl eax, 2
mov dword [0xa45168], eax
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov edx, dword [eax + 0xc]
mov eax, dword [0xa45168]
cmp edx, eax
jge 0x4c2af2
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa450f4]
mov eax, dword [0xa45168]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6ae030
mov dword [edx], eax
mov edx, dword [0xa450f4]
mov eax, dword [0xa45168]
shl edx, 5
add edx, 0x6ae030
mov dword [edx + 0xc], eax
mov edx, dword [0xa450f4]
mov eax, dword [0x6beb94]
shl edx, 5
add edx, 0x6ae030
mov dword [edx + 4], eax
mov edx, dword [0xa450f4]
mov eax, dword [0x6beb98]
shl edx, 5
add edx, 0x6ae030
mov dword [edx + 8], eax
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax]
mov dword [0x6beb78], eax
mov eax, dword [0xa45138]
test eax, eax
je 0x4c2c80
mov dword [0xa45170], 0
mov dword [0xa45174], 0
mov dword [0xa45178], 0xffffffff
mov dword [0xa4517c], 0
jmp 0x4c2bf5
mov eax, dword [0xa4517c]
shl eax, 5
add eax, 0x6ae020
mov eax, dword [eax]
cmp eax, 4
je 0x4c2b96
mov eax, dword [0xa4517c]
shl eax, 5
add eax, 0x6ae020
mov eax, dword [eax]
cmp eax, 3
jne 0x4c2be8
mov eax, dword [0xa4517c]
shl eax, 5
add eax, 0x6ae020
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa45170]
mov edx, dword [0xa45174]
cmp ebx, edx
jl 0x4c2be8
cmp ebx, edx
jg 0x4c2bc0
cmp ecx, eax
jbe 0x4c2be8
mov eax, dword [0xa4517c]
shl eax, 5
add eax, 0x6ae020
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa45170], eax
mov dword [0xa45174], edx
mov eax, dword [0xa4517c]
mov dword [0xa45178], eax
mov eax, dword [0xa4517c]
add eax, 1
mov dword [0xa4517c], eax
mov eax, dword [0xa4517c]
cmp eax, 2
setle al
test al, al
jne 0x4c2b6e
mov eax, dword [0xa45178]
cmp eax, 0xffffffff
je 0x4c2c6a
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov edx, dword [eax + 4]
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa45178]
shl eax, 5
add eax, 0x6ae030
mov edx, dword [eax]
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4c2c80
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.00468b5b
mov dword [0xa45138], 0
mov dword [0xa45180], 0
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x40]
mov dword [0xa45184], eax
mov eax, dword [0x6c8924]
mov dword [0xa45188], eax
movzx eax, byte [0xa450f0]
test al, al
je 0x4c2cb1
call fcn.004c22d6
mov dword [0xa4518c], 0
mov dword [0xa4511c], 0
jmp 0x4c37f4
mov dword [0xa45190], 0
mov dword [0xa45118], 0
jmp 0x4c37a8
mov eax, dword [0xa45184]
movzx eax, byte [eax]
mov byte [0xa45194], al
mov eax, dword [0xa45184]
add eax, 1
mov dword [0xa45184], eax
mov eax, dword [0xa45184]
movzx eax, byte [eax]
mov byte [0xa45195], al
mov eax, dword [0xa45184]
add eax, 1
mov dword [0xa45184], eax
mov eax, dword [0xa45188]
movzx eax, byte [eax]
mov byte [0xa45196], al
mov eax, dword [0xa45188]
add eax, 1
mov dword [0xa45188], eax
mov eax, dword [0xa45188]
movzx eax, byte [eax]
mov byte [0xa45197], al
mov eax, dword [0xa45188]
add eax, 1
mov dword [0xa45188], eax
mov eax, dword [0xa45138]
test eax, eax
je 0x4c2e19
movzx edx, byte [0xa45194]
movzx eax, byte [0xa45196]
cmp dl, al
jne 0x4c2e19
movzx edx, byte [0xa45195]
movzx eax, byte [0xa45197]
cmp dl, al
jne 0x4c2e19
movzx eax, byte [0xa45195]
test al, al
jns 0x4c2d9e
mov edx, dword [0xa45144]
mov eax, dword [0xa45160]
cmp edx, eax
jne 0x4c2e15
mov edx, dword [0xa45118]
mov eax, dword [0xa45158]
cmp edx, eax
jne 0x4c2dcb
mov edx, dword [0xa4511c]
mov eax, dword [0xa4515c]
cmp edx, eax
jne 0x4c2dcb
mov edx, dword [0xa45140]
mov eax, dword [0xa45164]
cmp edx, eax
jne 0x4c2e18
mov edx, dword [0xa45118]
mov eax, dword [0x54b874]
cmp edx, eax
jne 0x4c3776
mov edx, dword [0xa4511c]
mov eax, dword [0x54b878]
cmp edx, eax
jne 0x4c3776
mov edx, dword [0xa45158]
mov eax, dword [0x54b874]
cmp edx, eax
jne 0x4c2e19
mov edx, dword [0xa4515c]
mov eax, dword [0x54b878]
cmp edx, eax
je 0x4c3776
jmp 0x4c2e19
nop
jmp 0x4c2e19
nop
mov eax, dword [0xa45188]
sub eax, 2
mov dword [0xa45188], eax
mov eax, dword [0xa45188]
movzx edx, byte [0xa45194]
mov byte [eax], dl
mov eax, dword [0xa45188]
add eax, 1
mov dword [0xa45188], eax
mov eax, dword [0xa45188]
movzx edx, byte [0xa45195]
mov byte [eax], dl
mov eax, dword [0xa45188]
add eax, 1
mov dword [0xa45188], eax
mov dword [0xa45198], 0
mov eax, dword [0xa4512c]
cmp eax, 0x1f
jle 0x4c2f32
movzx eax, byte [0xa45194]
movzx eax, al
movzx eax, word [eax + eax + 0x54b0c0]
movzx eax, ax
mov dword [0xa4519c], eax
mov dword [0xa451a0], 1
mov eax, dword [0xa451a4]
test eax, eax
je 0x4c2eae
mov eax, dword [0xa451a4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [0xa451a0]
mov eax, dword [0x6ae18c]
mov ecx, dword [0xa4512c]
shl ecx, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x20], 0xa451b8
mov dword [esp + 0x1c], 0xa451b4
mov dword [esp + 0x18], 0xa451b0
mov dword [esp + 0x14], 0xa451ac
mov dword [esp + 0x10], 0xa451a8
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa4519c
mov dword [esp], eax
call fcn.004680a9
mov dword [0xa451bc], eax
mov eax, dword [0xa451a8]
mov dword [0xa451a4], eax
mov eax, dword [0xa451a8]
mov dword [0xa451c0], eax
mov dword [0xa451c4], 0
jmp 0x4c3026
mov dword [0xa451c4], 0
mov eax, dword [0xa4512c]
cmp eax, 8
jne 0x4c2f5d
movzx eax, byte [0xa45194]
movzx eax, al
shl eax, 6
add eax, 0xa37140
mov dword [0xa451c0], eax
mov eax, dword [0xa4512c]
cmp eax, 0xe
jne 0x4c2f81
movzx eax, byte [0xa45194]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa3b140
mov dword [0xa451c0], eax
mov eax, dword [0xa4512c]
cmp eax, 0x10
jne 0x4c2fa2
movzx eax, byte [0xa45194]
movzx eax, al
shl eax, 7
add eax, 0xa3b140
mov dword [0xa451c0], eax
mov eax, dword [0xa4512c]
cmp eax, 9
jne 0x4c2fcd
movzx eax, byte [0xa45194]
movzx eax, al
shl eax, 6
add eax, 0xa37140
mov dword [0xa451c0], eax
mov dword [0xa45198], 1
mov eax, dword [0xa4512c]
cmp eax, 0xf
jne 0x4c2ffb
movzx eax, byte [0xa45194]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa3b140
mov dword [0xa451c0], eax
mov dword [0xa45198], 1
mov eax, dword [0xa4512c]
cmp eax, 0x11
jne 0x4c3026
movzx eax, byte [0xa45194]
movzx eax, al
shl eax, 7
add eax, 0xa3b140
mov dword [0xa451c0], eax
mov dword [0xa45198], 1
movzx eax, byte [0xa45195]
and eax, 0xf
mov byte [0xa451c8], al
mov eax, dword [0x54b650]
test eax, eax
je 0x4c3067
movzx eax, byte [0xa45195]
movzx eax, al
sar eax, 4
and eax, 7
mov byte [0xa451c9], al
movzx eax, byte [0xa45195]
movzx eax, al
sar eax, 7
mov byte [0xa451ca], al
jmp 0x4c3079
movzx eax, byte [0xa45195]
movzx eax, al
sar eax, 4
mov byte [0xa451c9], al
movzx eax, byte [0xa451ca]
test al, al
je 0x4c30a2
mov eax, dword [0xa45144]
test eax, eax
je 0x4c30a2
mov eax, dword [0x54b650]
test eax, eax
je 0x4c30a2
movzx eax, byte [0xa451c9]
mov byte [0xa451c8], al
movzx eax, byte [0xa451c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa446a0]
mov dword [0xa45178], eax
movzx eax, byte [0xa451c9]
movzx eax, al
mov eax, dword [eax*4 + 0xa446a0]
mov dword [0xa4517c], eax
mov eax, dword [0x6beb78]
mov ecx, dword [0xa4518c]
mov edx, dword [0x6beb94]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa45180]
add ecx, edx
mov edx, dword [0xa45190]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa451cc], eax
mov edx, dword [0x6beb94]
mov ecx, dword [0x6ae194]
mov eax, dword [0x6beb74]
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 [0xa45128], eax
mov dword [0xa451d0], 0
jmp 0x4c3203
mov dword [0xa451d4], 0
jmp 0x4c31b7
mov eax, dword [0xa451c0]
movzx eax, byte [eax]
test al, al
je 0x4c315a
mov eax, dword [0xa451cc]
mov edx, dword [0xa45178]
mov dword [eax], edx
jmp 0x4c3167
mov eax, dword [0xa451cc]
mov edx, dword [0xa4517c]
mov dword [eax], edx
mov eax, dword [0xa45198]
test eax, eax
je 0x4c3190
mov edx, dword [0xa451d4]
mov eax, dword [0xa45198]
and eax, edx
test eax, eax
je 0x4c319d
mov eax, dword [0xa451c0]
add eax, 1
mov dword [0xa451c0], eax
jmp 0x4c319d
mov eax, dword [0xa451c0]
add eax, 1
mov dword [0xa451c0], eax
mov eax, dword [0xa451cc]
add eax, 4
mov dword [0xa451cc], eax
mov eax, dword [0xa451d4]
add eax, 1
mov dword [0xa451d4], eax
mov edx, dword [0xa451d4]
mov eax, dword [0xa45130]
cmp edx, eax
setl al
test al, al
jne 0x4c313f
mov eax, dword [0xa451cc]
mov edx, dword [0xa45128]
shl edx, 2
add eax, edx
mov dword [0xa451cc], eax
mov edx, dword [0xa451c0]
mov eax, dword [0xa451c4]
add eax, edx
mov dword [0xa451c0], eax
mov eax, dword [0xa451d0]
add eax, 1
mov dword [0xa451d0], eax
mov edx, dword [0xa451d0]
mov eax, dword [0xa45134]
cmp edx, eax
setl al
test al, al
jne 0x4c3133
mov eax, dword [0x6beb74]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x4c377a
mov eax, dword [0xa45140]
test eax, eax
je 0x4c377a
mov edx, dword [0xa45158]
mov eax, dword [0xa45118]
cmp edx, eax
jne 0x4c377a
mov edx, dword [0xa4515c]
mov eax, dword [0xa4511c]
cmp edx, eax
jne 0x4c377a
mov eax, dword [0x6beb74]
movzx eax, byte [eax + 0x3d]
movzx eax, al
mov dword [0xa451d8], eax
mov eax, dword [0x6beb74]
movzx eax, byte [eax + 0x3e]
movzx eax, al
mov dword [0xa451dc], eax
mov byte [0xa451e0], 0
mov byte [0xa451e1], 0
mov byte [0xa451e2], 0
mov byte [0xa451e3], 0
mov eax, dword [0xa451dc]
test eax, eax
jne 0x4c32bf
mov eax, dword [0xa451d8]
test eax, eax
jne 0x4c3779
mov byte [0xa451e2], 1
jmp 0x4c341d
mov edx, dword [0xa451dc]
mov eax, dword [0xa451d8]
cmp edx, eax
jge 0x4c32e4
mov eax, dword [0xa451dc]
mov byte [0xa451e3], al
mov byte [0xa451e2], 0xff
jmp 0x4c341d
mov edx, dword [0xa451d8]
mov eax, dword [0xa451dc]
cmp edx, eax
jne 0x4c3326
mov eax, dword [0xa451d8]
cmp eax, 3
jg 0x4c3313
mov eax, dword [0xa451d8]
mov byte [0xa451e3], al
mov byte [0xa451e2], 1
jmp 0x4c341d
mov byte [0xa451e0], 1
mov byte [0xa451e2], 1
jmp 0x4c341d
mov eax, dword [0xa451d8]
cmp eax, 2
jle 0x4c338e
mov edx, dword [0xa451dc]
mov eax, dword [0xa451d8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x4c3359
mov byte [0xa451e0], 1
mov byte [0xa451e2], 2
jmp 0x4c341d
mov edx, dword [0xa451dc]
mov eax, dword [0xa451d8]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x4c3382
mov byte [0xa451e0], 1
mov byte [0xa451e2], 3
jmp 0x4c341d
mov byte [0xa451e1], 1
jmp 0x4c341d
mov eax, dword [0xa451d8]
cmp eax, 1
jg 0x4c33db
mov eax, dword [0xa451dc]
cmp eax, 3
jg 0x4c33c8
mov eax, dword [0xa451d8]
mov byte [0xa451e3], al
mov eax, dword [0xa451dc]
mov edx, eax
mov eax, dword [0xa451d8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
add eax, 1
mov byte [0xa451e2], al
jmp 0x4c341d
mov eax, dword [0xa451d8]
mov byte [0xa451e3], al
mov byte [0xa451e2], 0xff
jmp 0x4c341d
mov eax, dword [0xa451dc]
cmp eax, 3
jne 0x4c33f5
mov byte [0xa451e3], 2
mov byte [0xa451e2], 2
jmp 0x4c341d
mov eax, dword [0xa451dc]
cmp eax, 4
jne 0x4c340f
mov byte [0xa451e0], 1
mov byte [0xa451e2], 3
jmp 0x4c341d
mov byte [0xa451e3], 2
mov byte [0xa451e2], 0xff
mov edx, dword [0x6ae194]
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa451e4], eax
mov edx, dword [0x6ae190]
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa451e8], eax
movzx eax, byte [0xa451e1]
test al, al
je 0x4c3554
mov eax, dword [0xa451e8]
sub eax, 1
mov dword [0xa451d0], eax
mov eax, dword [0xa451e8]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov byte [0xa451e2], al
movzx eax, byte [0xa45195]
and eax, 0xf
mov byte [0xa451c8], al
movzx eax, byte [0xa451c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa446a0]
mov dword [0xa45178], eax
mov eax, dword [0x6beb78]
mov ecx, dword [0xa4518c]
mov edx, dword [0xa451d0]
add ecx, edx
mov edx, dword [0x6beb94]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa45180]
add ecx, edx
mov edx, dword [0xa45190]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa451cc], eax
mov dword [0xa451d4], 0
jmp 0x4c3510
mov eax, dword [0xa451cc]
mov edx, dword [0xa45178]
mov dword [eax], edx
mov eax, dword [0xa451cc]
add eax, 4
mov dword [0xa451cc], eax
mov eax, dword [0xa451d4]
add eax, 1
mov dword [0xa451d4], eax
mov edx, dword [0xa451d4]
mov eax, dword [0xa451e4]
cmp edx, eax
setl al
test al, al
jne 0x4c34e9
mov eax, dword [0xa451d0]
sub eax, 1
mov dword [0xa451d0], eax
movzx eax, byte [0xa451e2]
sub eax, 1
mov byte [0xa451e2], al
movzx eax, byte [0xa451e2]
test al, al
je 0x4c377a
jmp 0x4c34a5
movzx eax, byte [0xa451e0]
test al, al
je 0x4c3658
mov eax, dword [0xa451e8]
sub eax, 1
mov dword [0xa451d0], eax
mov eax, dword [0xa451d0]
cmp eax, 0xf
jne 0x4c3584
mov dword [0xa451d0], 0xe
movzx eax, byte [0xa45195]
and eax, 0xf
mov byte [0xa451c8], al
movzx eax, byte [0xa451c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa446a0]
mov dword [0xa45178], eax
mov eax, dword [0x6beb78]
mov ecx, dword [0xa4518c]
mov edx, dword [0xa451d0]
add ecx, edx
mov edx, dword [0x6beb94]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa45180]
add ecx, edx
mov edx, dword [0xa45190]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa451cc], eax
mov dword [0xa451d4], 0
jmp 0x4c3614
mov eax, dword [0xa451cc]
mov edx, dword [0xa45178]
mov dword [eax], edx
mov eax, dword [0xa451cc]
add eax, 4
mov dword [0xa451cc], eax
mov eax, dword [0xa451d4]
add eax, 1
mov dword [0xa451d4], eax
mov edx, dword [0xa451d4]
mov eax, dword [0xa451e4]
cmp edx, eax
setl al
test al, al
jne 0x4c35ed
mov eax, dword [0xa451d0]
sub eax, 1
mov dword [0xa451d0], eax
movzx eax, byte [0xa451e2]
sub eax, 1
mov byte [0xa451e2], al
movzx eax, byte [0xa451e2]
test al, al
je 0x4c377a
jmp 0x4c35a9
movzx eax, byte [0xa451e3]
movzx edx, al
mov eax, dword [0xa451e8]
cmp edx, eax
jge 0x4c377a
movzx eax, byte [0xa451e3]
movzx eax, al
mov dword [0xa451d0], eax
movzx eax, byte [0xa45195]
and eax, 0xf
mov byte [0xa451c8], al
movzx eax, byte [0xa451c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa446a0]
mov dword [0xa45178], eax
movzx eax, byte [0xa451e2]
cmp al, 0xff
jne 0x4c36ca
mov eax, dword [0xa451e8]
mov edx, eax
movzx eax, byte [0xa451e3]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov byte [0xa451e2], al
jmp 0x4c36ca
nop
mov eax, dword [0x6beb78]
mov ecx, dword [0xa4518c]
mov edx, dword [0xa451d0]
add ecx, edx
mov edx, dword [0x6beb94]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa45180]
add ecx, edx
mov edx, dword [0xa45190]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa451cc], eax
mov dword [0xa451d4], 0
jmp 0x4c3735
mov eax, dword [0xa451cc]
mov edx, dword [0xa45178]
mov dword [eax], edx
mov eax, dword [0xa451cc]
add eax, 4
mov dword [0xa451cc], eax
mov eax, dword [0xa451d4]
add eax, 1
mov dword [0xa451d4], eax
mov edx, dword [0xa451d4]
mov eax, dword [0xa451e4]
cmp edx, eax
setl al
test al, al
jne 0x4c370e
mov eax, dword [0xa451d0]
add eax, 1
mov dword [0xa451d0], eax
movzx eax, byte [0xa451e2]
sub eax, 1
mov byte [0xa451e2], al
movzx eax, byte [0xa451e2]
test al, al
jne 0x4c36c9
jmp 0x4c377a
nop
jmp 0x4c377a
nop
mov edx, dword [0x6ae194]
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa45190]
add eax, edx
mov dword [0xa45190], eax
mov eax, dword [0xa45118]
add eax, 1
mov dword [0xa45118], eax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0xa45118]
cmp edx, eax
setg al
test al, al
jne 0x4c2ce3
mov edx, dword [0x6ae190]
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa4518c]
add eax, edx
mov dword [0xa4518c], eax
mov eax, dword [0xa4511c]
add eax, 1
mov dword [0xa4511c], eax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov eax, dword [0xa4511c]
cmp edx, eax
setg al
test al, al
jne 0x4c2cca
mov eax, dword [0xa45144]
mov dword [0xa45160], eax
mov eax, dword [0xa45140]
mov dword [0xa45164], eax
mov eax, dword [0xa45158]
mov dword [0x54b874], eax
mov eax, dword [0xa4515c]
mov dword [0x54b878], eax
mov dword [0x6c8920], 1
movzx eax, byte [0xa450f0]
test al, al
je 0x4c3854
call fcn.004c22d6
mov eax, dword [0xa450f4]
mov edx, eax
sar edx, 0x1f
mov dword [0xa451f0], eax
mov dword [0xa451f4], edx
jmp 0x4c4049
mov eax, dword [0x6beb74]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x4c3cc8
movzx eax, byte [0xa450f0]
test al, al
jne 0x4c3a1f
mov dword [0xa451f8], 0
mov dword [0xa451fc], 0
mov dword [0xa45178], 0xffffffff
mov dword [0xa4517c], 0
jmp 0x4c3942
mov eax, dword [0xa4517c]
shl eax, 5
add eax, 0x6ae020
mov eax, dword [eax]
cmp eax, 4
je 0x4c38e3
mov eax, dword [0xa4517c]
shl eax, 5
add eax, 0x6ae020
mov eax, dword [eax]
cmp eax, 3
jne 0x4c3935
mov eax, dword [0xa4517c]
shl eax, 5
add eax, 0x6ae020
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa451f8]
mov edx, dword [0xa451fc]
cmp ebx, edx
jl 0x4c3935
cmp ebx, edx
jg 0x4c390d
cmp ecx, eax
jbe 0x4c3935
mov eax, dword [0xa4517c]
shl eax, 5
add eax, 0x6ae020
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa451f8], eax
mov dword [0xa451fc], edx
mov eax, dword [0xa4517c]
mov dword [0xa45178], eax
mov eax, dword [0xa4517c]
add eax, 1
mov dword [0xa4517c], eax
mov eax, dword [0xa4517c]
cmp eax, 2
setle al
test al, al
jne 0x4c38bb
mov eax, dword [0x6adf9c]
test eax, eax
jne 0x4c3af3
mov eax, dword [0xa45178]
cmp eax, 0xffffffff
je 0x4c3afa
mov eax, dword [0x6c8920]
test eax, eax
je 0x4c3af6
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa45100], eax
mov eax, dword [0xa45178]
shl eax, 5
add eax, 0x6ae030
mov edx, dword [eax + 4]
mov eax, dword [0xa45178]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax + 8]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [0xa45100]
cmp edx, eax
jne 0x4c3af9
mov eax, dword [0x54b854]
test eax, eax
je 0x4c423e
mov eax, dword [0xa45100]
mov ecx, eax
mov eax, dword [0x6beb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa45178]
shl eax, 5
add eax, 0x6ae030
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 0x4c4241
jmp 0x4c3afa
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa45100], eax
mov edx, dword [0xa45100]
mov eax, dword [0x54b86c]
cmp edx, eax
je 0x4c3a7c
mov eax, dword [0xa44694]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa45100]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa44694], eax
mov eax, dword [0xa45100]
mov dword [0x54b86c], eax
jmp 0x4c3acd
mov eax, dword [0x6adf9c]
test eax, eax
jne 0x4c3ac9
mov eax, dword [0x54b854]
test eax, eax
je 0x4c4244
mov eax, dword [0xa45100]
mov ecx, eax
mov eax, dword [0x6beb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa44694]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4c3acc
mov eax, dword [0x6c8920]
test eax, eax
jne 0x4c4247
jmp 0x4c3acd
nop
jmp 0x4c3acd
nop
mov eax, dword [0xa45100]
mov ecx, eax
mov eax, dword [0x6beb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa44694]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4c3afa
nop
jmp 0x4c3afa
nop
jmp 0x4c3afa
nop
mov edx, dword [0x6beb94]
mov eax, dword [0x6beb98]
imul eax, edx
shl eax, 2
mov dword [0xa45200], eax
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov edx, dword [eax + 0xc]
mov eax, dword [0xa45200]
cmp edx, eax
jge 0x4c3b77
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa450f4]
mov eax, dword [0xa45200]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6ae030
mov dword [edx], eax
mov edx, dword [0xa450f4]
mov eax, dword [0xa45200]
shl edx, 5
add edx, 0x6ae030
mov dword [edx + 0xc], eax
mov edx, dword [0xa450f4]
mov eax, dword [0x6beb94]
shl edx, 5
add edx, 0x6ae030
mov dword [edx + 4], eax
mov edx, dword [0xa450f4]
mov eax, dword [0x6beb98]
shl edx, 5
add edx, 0x6ae030
mov dword [edx + 8], eax
movzx eax, byte [0xa450f0]
test al, al
jne 0x4c3c04
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov edx, dword [eax + 4]
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0x6beb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4c4045
mov eax, dword [0xa44694]
mov dword [0xa45204], eax
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax]
mov dword [0xa45208], eax
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov edx, dword [eax + 4]
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax + 8]
imul eax, edx
mov dword [0xa4520c], eax
mov eax, dword [0xa4520c]
test eax, eax
jle 0x4c4045
jmp 0x4c3cad
mov eax, dword [0xa45204]
mov edx, dword [eax]
mov dword [0xa45210], edx
add eax, 4
mov dword [0xa45204], eax
mov eax, dword [0xa45208]
mov edx, dword [0xa45210]
mov ecx, edx
and ecx, 0xff00ff00
mov edx, dword [0xa45210]
and edx, 0xff0000
shr edx, 0x10
or ecx, edx
mov edx, dword [0xa45210]
and edx, 0xff
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
add eax, 4
mov dword [0xa45208], eax
mov eax, dword [0xa4520c]
test eax, eax
setne dl
sub eax, 1
mov dword [0xa4520c], eax
test dl, dl
jne 0x4c3c59
jmp 0x4c4045
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x4c3d69
call fcn.004680d7
and eax, 0x200
mov dword [0xa45178], eax
mov eax, dword [0xa45178]
test eax, eax
je 0x4c3cfd
mov dword [0xa45178], 1
mov dword [0xa45100], 0
jmp 0x4c3d5a
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x48]
mov edx, dword [0xa45100]
shl edx, 2
lea ecx, [eax + edx]
mov edx, dword [0xa45178]
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x48]
mov ebx, dword [0xa45100]
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 + 0xa370e0]
mov dword [ecx], eax
mov eax, dword [0xa45100]
add eax, 1
mov dword [0xa45100], eax
mov eax, dword [0xa45100]
cmp eax, 3
setle al
test al, al
jne 0x4c3d09
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
mov dword [0xa45100], eax
mov eax, dword [0x6beb74]
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 [0xa45178], eax
mov edx, dword [0xa45100]
mov eax, dword [0x54b86c]
cmp edx, eax
je 0x4c3de1
mov eax, dword [0xa44694]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa45100]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa44694], eax
mov eax, dword [0xa45100]
mov dword [0x54b86c], eax
jmp 0x4c3e5f
mov eax, dword [0x6adf9c]
test eax, eax
jne 0x4c3e58
mov eax, dword [0x54b854]
test eax, eax
je 0x4c424a
mov eax, dword [0xa45100]
mov ecx, eax
mov eax, dword [0x6beb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa44694]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4c3e5b
mov eax, dword [0xa45178]
shl eax, 2
mov edx, eax
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa446a0
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4c3e5e
mov eax, dword [0x6c8920]
test eax, eax
jne 0x4c424d
jmp 0x4c3e5f
nop
jmp 0x4c3e5f
nop
jmp 0x4c3e5f
nop
mov edx, dword [0x6beb94]
mov eax, dword [0x6beb98]
imul eax, edx
shl eax, 2
mov dword [0xa45214], eax
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov edx, dword [eax + 0xc]
mov eax, dword [0xa45214]
cmp edx, eax
jge 0x4c3edc
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa450f4]
mov eax, dword [0xa45214]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6ae030
mov dword [edx], eax
mov edx, dword [0xa450f4]
mov eax, dword [0xa45214]
shl edx, 5
add edx, 0x6ae030
mov dword [edx + 0xc], eax
mov edx, dword [0xa450f4]
mov eax, dword [0x6beb94]
shl edx, 5
add edx, 0x6ae030
mov dword [edx + 4], eax
mov edx, dword [0xa450f4]
mov eax, dword [0x6beb98]
shl edx, 5
add edx, 0x6ae030
mov dword [edx + 8], eax
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax]
mov dword [0x6beb78], eax
mov eax, dword [0xa45100]
mov ecx, eax
mov eax, dword [0x6beb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa44694]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa45178]
shl eax, 2
mov edx, eax
mov eax, dword [0x6beb74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa446a0
call sub.msvcrt.dll_memcpy
movzx eax, byte [0xa450f0]
test al, al
je 0x4c3f78
call fcn.004c22d6
mov eax, dword [0xa44694]
mov dword [0xa45218], eax
mov eax, dword [0x6beb78]
mov dword [0xa4521c], eax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa45190], eax
mov eax, dword [0x6beb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa4518c], eax
mov dword [0xa4511c], 0
jmp 0x4c401f
mov dword [0xa45118], 0
jmp 0x4c3ffe
mov edx, dword [0xa4521c]
mov eax, dword [0xa45218]
movzx ecx, byte [eax]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0xa446a0]
mov dword [edx], ecx
add edx, 4
mov dword [0xa4521c], edx
add eax, 1
mov dword [0xa45218], eax
mov eax, dword [0xa45118]
add eax, 1
mov dword [0xa45118], eax
mov edx, dword [0xa45118]
mov eax, dword [0xa45190]
cmp edx, eax
setl al
test al, al
jne 0x4c3fc6
mov eax, dword [0xa4511c]
add eax, 1
mov dword [0xa4511c], eax
mov edx, dword [0xa4511c]
mov eax, dword [0xa4518c]
cmp edx, eax
setl al
test al, al
jne 0x4c3fba
movzx eax, byte [0xa450f0]
test al, al
je 0x4c4048
call fcn.004c22d6
jmp 0x4c4048
nop
jmp 0x4c4049
nop
mov dword [0x6adf9c], 0
mov dword [0x6c8920], 1
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae020
mov dword [eax], 3
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae020
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x6ae088], eax
mov dword [0x6ae08c], edx
mov eax, dword [0x6a8b4c]
test eax, eax
je 0x4c424e
mov eax, dword [0x6ae100]
test eax, eax
je 0x4c424e
mov eax, dword [0xa45220]
test eax, eax
jne 0x4c40f7
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 [0xa45220], eax
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax + 4]
mov dword [0xa45224], eax
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov eax, dword [eax + 8]
mov dword [0xa45228], eax
mov eax, dword [0xa4522c]
add eax, 1
mov dword [0xa4522c], eax
mov eax, dword [0xa4522c]
mov dword [0xa45230], eax
mov eax, dword [0xa45224]
mov dword [0xa45234], eax
mov eax, dword [0xa45228]
mov dword [0xa45238], eax
mov eax, dword [0xa45220]
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 [0xa45224]
mov eax, dword [0xa45228]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae030
mov edx, dword [eax]
mov eax, dword [0xa45220]
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 [0xa45220]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call eax
sub esp, 4
mov eax, dword [0xa45220]
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 [0xa45220]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0xa45230
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x4c424e
nop
jmp 0x4c424e
nop
jmp 0x4c424e
nop
jmp 0x4c424e
nop
jmp 0x4c424e
nop
jmp 0x4c424e
nop
jmp 0x4c424e
nop
jmp 0x4c424e
nop
jmp 0x4c424e
nop
jmp 0x4c424e
nop
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae020
mov eax, dword [eax]
cmp eax, 2
jne 0x4c4293
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae020
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x6ae088], eax
mov dword [0x6ae08c], edx
mov eax, dword [0xa450f4]
shl eax, 5
add eax, 0x6ae020
mov dword [eax], 1
mov eax, dword [0x6c8934]
cmp eax, 1
jne 0x4c42b8
mov dword [0x6c8934], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x54b2d8]
cmp eax, 0xffffffff
jne 0x4c42cc
mov dword [0x54b2d8], 0
mov dword [0xa44640], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret