Function at 0x42dcd0
Capabilities:
Create thread
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4702a0
mov eax, dword fs:[0]
push eax
mov eax, 0x8184
call fcn.0045a240
mov eax, dword [0x487b30]
xor eax, ebp
mov dword [ebp - 0x18], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x8164], ecx
push 1
push 0x1c0
push 0x284
push 0
push 0
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fe90
push 0
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fc20
push 0
push 0xc
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push eax
push 0xb
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push eax
push 1
push 0x80
mov ecx, 0x48de64
call fcn.0040fbf0
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [ebp - 0x14], eax
push 1
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fbc0
push 0
push 0x32
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push eax
push 0x31
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push eax
push 1
push 0x80
mov ecx, 0x48de64
call fcn.0040fbf0
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [ebp - 0x228], eax
push 0
mov ecx, dword [ebp - 0x228]
push ecx
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fbc0
push 0x104
lea edx, [ebp - 0x224]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov ecx, dword [ebp - 0x8164]
call fcn.00431290
mov eax, dword [ebp - 0x8164]
mov dword [eax + 0xf8], 0
push 0x47746c
lea ecx, [ebp - 0x10]
call fcn.004053d0
mov dword [ebp - 4], 0
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
lea ecx, [ebp - 0x224]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x7984], eax
push 0
push 0
push 0x2f88d0
mov edx, dword [ebp - 0x7984]
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x7990]
push eax
push 0x7730
lea ecx, [ebp - 0x7964]
push ecx
mov edx, dword [ebp - 0x7984]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [ebp - 0x7964]
push eax
call fcn.0043f630
add esp, 4
test eax, eax
jne 0x42debd
push 0x10
push 0x477470
push str.This_file_is_damaged.
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fa00
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.00431ed0
mov dword [ebp - 0x8128], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443990
mov eax, dword [ebp - 0x8128]
jmp 0x430256
mov ecx, dword [ebp - 0xb54]
add ecx, 4
push ecx
call fcn.0044c542
add esp, 4
mov dword [ebp - 0x812c], eax
mov edx, dword [ebp - 0x812c]
mov dword [ebp - 0x7998], edx
mov dword [ebp - 0x79b0], 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x7984]
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea ecx, [ebp - 0x79b0]
push ecx
mov edx, dword [ebp - 0xb54]
push edx
mov eax, dword [ebp - 0x7998]
push eax
mov ecx, dword [ebp - 0x7984]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [ebp - 0x7984]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x7998]
add eax, dword [ebp - 0xb54]
mov cl, byte [ebp - 0xb54]
mov byte [eax], cl
mov edx, dword [ebp - 0x7998]
add edx, dword [ebp - 0xb54]
mov al, byte [ebp - 0xb53]
mov byte [edx + 1], al
mov ecx, dword [ebp - 0x7998]
add ecx, dword [ebp - 0xb54]
mov dl, byte [ebp - 0xb52]
mov byte [ecx + 2], dl
mov eax, dword [ebp - 0x7998]
add eax, dword [ebp - 0xb54]
mov cl, byte [ebp - 0xb51]
mov byte [eax + 3], cl
mov edx, dword [ebp - 0xb54]
add edx, 4
push edx
mov eax, dword [ebp - 0x7998]
push eax
lea ecx, [ebp - 0x79ac]
push ecx
call fcn.00443200
add esp, 0xc
mov edx, dword [ebp - 0x7998]
mov dword [ebp - 0x8130], edx
mov eax, dword [ebp - 0x8130]
push eax
call fcn.0044c54d
add esp, 4
mov dword [ebp - 0x79b4], 0
jmp 0x42dfd8
mov ecx, dword [ebp - 0x79b4]
add ecx, 1
mov dword [ebp - 0x79b4], ecx
cmp dword [ebp - 0x79b4], 0x10
jge 0x42e034
mov edx, dword [ebp - 0x79b4]
movzx eax, byte [ebp + edx - 0x79ac]
mov ecx, dword [ebp - 0x79b4]
movzx edx, byte [ebp + ecx - 0xb4c]
cmp eax, edx
je 0x42e032
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.00431ed0
mov dword [ebp - 0x8134], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443990
mov eax, dword [ebp - 0x8134]
jmp 0x430256
jmp 0x42dfc9
push 0
push 0
push 0
push 0x42dcb0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x798c], eax
lea eax, [ebp - 0x2b8]
push eax
mov ecx, dword [ebp - 0x8164]
add ecx, 0x388
call fcn.00443af0
mov ecx, dword [ebp - 0x8164]
mov edx, dword [ebp - 0x43ec]
mov dword [ecx + 0xf8], edx
mov eax, dword [ebp - 0x8164]
mov ecx, dword [ebp - 0xb58]
mov dword [eax + 0x2fc], ecx
mov edx, dword [ebp - 0x8164]
mov eax, dword [ebp - 0x43e4]
mov dword [edx + 0x390], eax
mov ecx, dword [ebp - 0x8164]
mov edx, dword [ebp - 0x43e8]
mov dword [ecx + 0x38c], edx
mov eax, dword [ebp - 0x8164]
cmp dword [eax + 0x38c], 0
je 0x42e108
call fcn.00443350
test eax, eax
je 0x42e108
mov ecx, dword [ebp - 0x8164]
mov dword [ecx + 0x3a0], 1
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.00431ed0
mov dword [ebp - 0x8138], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443990
mov eax, dword [ebp - 0x8138]
jmp 0x430256
cmp dword [ebp - 0x47dc], 2
je 0x42e11e
cmp dword [ebp - 0x47dc], 3
jne 0x42e384
mov edx, dword [ebp - 0x8164]
mov eax, dword [edx + 0xf8]
push eax
lea ecx, [ebp - 0x7964]
push ecx
push 1
lea ecx, [ebp - 0x7c6c]
call fcn.00409970
mov byte [ebp - 4], 1
lea edx, [ebp - 0x47d8]
push edx
lea ecx, [ebp - 0x7c6c]
call fcn.0040cb60
mov eax, dword [ebp - 0x8164]
cmp dword [eax + 0x398], 0
je 0x42e26e
lea ecx, [ebp - 0x7c70]
push ecx
lea ecx, [ebp - 0x7c6c]
call fcn.0040ac10
mov byte [ebp - 4], 2
push 0
push 0x80
push 2
push 0
push 2
push 0x40000000
mov ecx, dword [ebp - 0x8164]
add ecx, 0x394
call fcn.00419920
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x7c74], eax
cmp dword [ebp - 0x7c74], 0xffffffff
je 0x42e21f
mov edx, 0xfeff
mov word [ebp - 0x7c78], dx
push 0
lea eax, [ebp - 0x7c7c]
push eax
push 2
lea ecx, [ebp - 0x7c78]
push ecx
mov edx, dword [ebp - 0x7c74]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
lea eax, [ebp - 0x7c7c]
push eax
lea ecx, [ebp - 0x7c70]
call fcn.00405880
shl eax, 1
push eax
lea ecx, [ebp - 0x7c70]
call fcn.00431370
push eax
mov ecx, dword [ebp - 0x7c74]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edx, dword [ebp - 0x7c74]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x7c70]
call fcn.00443990
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.00431ed0
mov dword [ebp - 0x813c], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7c6c]
call fcn.00409b80
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443990
mov eax, dword [ebp - 0x813c]
jmp 0x430256
mov eax, dword [ebp - 0x8164]
add eax, 0xfc
push eax
call fcn.00443260
add esp, 4
test eax, eax
jg 0x42e2f0
push 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x7c6c]
call fcn.00431550
cmp eax, 2
jne 0x42e2df
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.00431ed0
mov dword [ebp - 0x8140], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7c6c]
call fcn.00409b80
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443990
mov eax, dword [ebp - 0x8140]
jmp 0x430256
lea ecx, [ebp - 0x7b48]
push ecx
lea ecx, [ebp - 0x10]
call fcn.00443af0
jmp 0x42e34c
mov edx, dword [ebp - 0x8164]
add edx, 0xfc
push edx
lea ecx, [ebp - 0x7c6c]
call fcn.0040b3c0
test eax, eax
jne 0x42e34c
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.00431ed0
mov dword [ebp - 0x8144], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7c6c]
call fcn.00409b80
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443990
mov eax, dword [ebp - 0x8144]
jmp 0x430256
lea eax, [ebp - 0x7a84]
push eax
mov ecx, dword [ebp - 0x8164]
call fcn.00430d50
mov ecx, dword [ebp - 0x8164]
mov edx, dword [ebp - 0x7a88]
mov dword [ecx + 0xf8], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7c6c]
call fcn.00409b80
jmp 0x42e4c7
cmp dword [ebp - 0x47dc], 1
jne 0x42e4c7
mov eax, dword [ebp - 0x8164]
mov ecx, dword [eax + 0xf8]
push ecx
lea edx, [ebp - 0x7964]
push edx
push 0
lea ecx, [ebp - 0x7f34]
call fcn.00409970
mov byte [ebp - 4], 3
lea eax, [ebp - 0x47d8]
push eax
lea ecx, [ebp - 0x7f34]
call fcn.0040cb60
mov ecx, dword [ebp - 0x8164]
add ecx, 0xfc
push ecx
call fcn.00443260
add esp, 4
test eax, eax
jg 0x42e44b
push 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x7f34]
call fcn.00431550
cmp eax, 2
jne 0x42e43a
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.00431ed0
mov dword [ebp - 0x8148], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7f34]
call fcn.00409b80
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443990
mov eax, dword [ebp - 0x8148]
jmp 0x430256
lea edx, [ebp - 0x7e10]
push edx
lea ecx, [ebp - 0x10]
call fcn.00443af0
jmp 0x42e4a6
mov eax, dword [ebp - 0x8164]
add eax, 0xfc
push eax
lea ecx, [ebp - 0x7f34]
call fcn.0040b3c0
test eax, eax
jne 0x42e4a6
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.00431ed0
mov dword [ebp - 0x814c], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7f34]
call fcn.00409b80
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443990
mov eax, dword [ebp - 0x814c]
jmp 0x430256
mov ecx, dword [ebp - 0x8164]
mov edx, dword [ebp - 0x7d50]
mov dword [ecx + 0xf8], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7f34]
call fcn.00409b80
mov dword [ebp - 0x7f3c], 0
mov dword [ebp - 0x7f38], 0
lea eax, [ebp - 0x45b8]
mov dword [ebp - 0x7f44], eax
mov ecx, dword [ebp - 0x45bc]
mov dword [ebp - 0x7f5c], ecx
mov dword [ebp - 0x7f40], 0x4774a8
mov dword [ebp - 0x7f58], 0x4774bc
mov edx, dword [ebp - 0x7f40]
mov al, byte [edx + 1]
mov byte [ebp - 0x7f54], al
mov ecx, dword [ebp - 0x7f40]
mov dl, byte [ecx + 5]
mov byte [ebp - 0x7f53], dl
mov eax, dword [ebp - 0x7f40]
mov cl, byte [eax + 2]
mov byte [ebp - 0x7f52], cl
mov edx, dword [ebp - 0x7f40]
mov al, byte [edx + 9]
mov byte [ebp - 0x7f51], al
mov ecx, dword [ebp - 0x7f40]
mov dl, byte [ecx + 3]
mov byte [ebp - 0x7f50], dl
mov eax, dword [ebp - 0x7f40]
mov cl, byte [eax + 0xa]
mov byte [ebp - 0x7f4f], cl
mov edx, dword [ebp - 0x7f40]
mov al, byte [edx + 4]
mov byte [ebp - 0x7f4e], al
mov ecx, dword [ebp - 0x7f40]
mov dl, byte [ecx + 7]
mov byte [ebp - 0x7f4d], dl
mov eax, dword [ebp - 0x7f40]
mov cl, byte [eax + 8]
mov byte [ebp - 0x7f4c], cl
mov edx, dword [ebp - 0x7f40]
mov al, byte [edx + 6]
mov byte [ebp - 0x7f4b], al
mov ecx, dword [ebp - 0x7f40]
mov dl, byte [ecx + 0xb]
mov byte [ebp - 0x7f4a], dl
mov eax, dword [ebp - 0x7f40]
mov cl, byte [eax + 0xc]
mov byte [ebp - 0x7f49], cl
mov edx, dword [ebp - 0x7f40]
mov al, byte [edx]
mov byte [ebp - 0x7f48], al
mov ecx, dword [ebp - 0x7f40]
mov dl, byte [ecx + 0xe]
mov byte [ebp - 0x7f47], dl
mov eax, dword [ebp - 0x7f40]
mov cl, byte [eax + 0xf]
mov byte [ebp - 0x7f46], cl
mov edx, dword [ebp - 0x7f40]
mov al, byte [edx + 0xd]
mov byte [ebp - 0x7f45], al
mov ecx, dword [ebp - 0x7f58]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x7f6c], dl
mov eax, dword [ebp - 0x7f58]
mov cl, byte [eax + 7]
mov byte [ebp - 0x7f6b], cl
mov edx, dword [ebp - 0x7f58]
mov al, byte [edx + 9]
mov byte [ebp - 0x7f6a], al
mov ecx, dword [ebp - 0x7f58]
mov dl, byte [ecx + 2]
mov byte [ebp - 0x7f69], dl
mov eax, dword [ebp - 0x7f58]
mov cl, byte [eax]
mov byte [ebp - 0x7f68], cl
mov edx, dword [ebp - 0x7f58]
mov al, byte [edx + 0xa]
mov byte [ebp - 0x7f67], al
mov ecx, dword [ebp - 0x7f58]
mov dl, byte [ecx + 4]
mov byte [ebp - 0x7f66], dl
mov eax, dword [ebp - 0x7f58]
mov cl, byte [eax + 5]
mov byte [ebp - 0x7f65], cl
mov edx, dword [ebp - 0x7f58]
mov al, byte [edx + 3]
mov byte [ebp - 0x7f64], al
mov ecx, dword [ebp - 0x7f58]
mov dl, byte [ecx + 6]
mov byte [ebp - 0x7f63], dl
mov eax, dword [ebp - 0x7f58]
mov cl, byte [eax + 0xc]
mov byte [ebp - 0x7f62], cl
mov edx, dword [ebp - 0x7f58]
mov al, byte [edx + 0xf]
mov byte [ebp - 0x7f61], al
mov ecx, dword [ebp - 0x7f58]
mov dl, byte [ecx + 8]
mov byte [ebp - 0x7f60], dl
mov eax, dword [ebp - 0x7f58]
mov cl, byte [eax + 0xe]
mov byte [ebp - 0x7f5f], cl
mov edx, dword [ebp - 0x7f58]
mov al, byte [edx + 0xb]
mov byte [ebp - 0x7f5e], al
mov ecx, dword [ebp - 0x7f58]
mov dl, byte [ecx + 0xd]
mov byte [ebp - 0x7f5d], dl
push 0
push 0x10000
mov eax, dword [ebp - 0x7f38]
push eax
mov ecx, dword [ebp - 0x7f3c]
push ecx
call fcn.0046cb30
mov ecx, 0x10000
sub ecx, eax
mov eax, 0
sbb eax, edx
mov dword [ebp - 0x7f78], ecx
mov ecx, dword [ebp - 0x7f78]
cmp ecx, dword [ebp - 0x7f5c]
jle 0x42e72d
mov edx, dword [ebp - 0x7f5c]
mov dword [ebp - 0x7f78], edx
cmp dword [ebp - 0x7f78], 0
jg 0x42e73b
jmp 0x42efd6
push 0
push 0x10000
mov eax, dword [ebp - 0x7f38]
push eax
mov ecx, dword [ebp - 0x7f3c]
push ecx
call fcn.0045f580
mov dword [ebp - 0x7f74], eax
mov dword [ebp - 0x7f70], edx
push 0
push 4
mov edx, dword [ebp - 0x7f70]
push edx
mov eax, dword [ebp - 0x7f74]
push eax
call fcn.0045f4c0
mov dword [ebp - 0x7f7c], eax
cmp dword [ebp - 0x7f7c], 0
jne 0x42e984
mov ecx, dword [ebp - 0x7f3c]
mov dword [ebp - 0x7f94], ecx
mov edx, dword [ebp - 0x7f38]
mov dword [ebp - 0x7f90], edx
mov eax, dword [ebp - 0x7f44]
mov dword [ebp - 0x7f88], eax
mov ecx, dword [ebp - 0x7f78]
mov dword [ebp - 0x7f98], ecx
push 0
push 0x10
mov edx, dword [ebp - 0x7f90]
push edx
mov eax, dword [ebp - 0x7f94]
push eax
call fcn.0046cb30
mov dword [ebp - 0x7f84], eax
mov ecx, dword [ebp - 0x7f40]
mov dword [ebp - 0x7f80], ecx
cmp dword [ebp - 0x7f84], 0
jle 0x42e8d9
mov edx, 0x10
sub edx, dword [ebp - 0x7f84]
mov dword [ebp - 0x7f9c], edx
mov dword [ebp - 0x7fa0], 0
jmp 0x42e81d
mov eax, dword [ebp - 0x7fa0]
add eax, 1
mov dword [ebp - 0x7fa0], eax
mov ecx, dword [ebp - 0x7fa0]
cmp ecx, dword [ebp - 0x7f9c]
jge 0x42e8a7
mov edx, dword [ebp - 0x7fa0]
cmp edx, dword [ebp - 0x7f98]
jge 0x42e8a7
mov eax, dword [ebp - 0x7f88]
add eax, dword [ebp - 0x7fa0]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x7f84]
add edx, dword [ebp - 0x7fa0]
mov eax, dword [ebp - 0x7f80]
movzx edx, byte [eax + edx]
xor ecx, edx
mov eax, dword [ebp - 0x7f88]
add eax, dword [ebp - 0x7fa0]
mov byte [eax], cl
mov ecx, dword [ebp - 0x7f88]
add ecx, dword [ebp - 0x7fa0]
movzx edx, byte [ecx]
shl edx, 5
mov eax, dword [ebp - 0x7f88]
add eax, dword [ebp - 0x7fa0]
movzx ecx, byte [eax]
sar ecx, 3
or edx, ecx
mov eax, dword [ebp - 0x7f88]
add eax, dword [ebp - 0x7fa0]
mov byte [eax], dl
jmp 0x42e80e
mov ecx, dword [ebp - 0x7f98]
sub ecx, dword [ebp - 0x7f9c]
mov dword [ebp - 0x7f98], ecx
cmp dword [ebp - 0x7f98], 0
jg 0x42e8c7
jmp 0x42e97f
mov edx, dword [ebp - 0x7f88]
add edx, dword [ebp - 0x7f9c]
mov dword [ebp - 0x7f88], edx
mov dword [ebp - 0x7fa4], 0
jmp 0x42e8f4
mov eax, dword [ebp - 0x7fa4]
add eax, 1
mov dword [ebp - 0x7fa4], eax
mov ecx, dword [ebp - 0x7fa4]
cmp ecx, dword [ebp - 0x7f98]
jge 0x42e977
mov edx, dword [ebp - 0x7f88]
add edx, dword [ebp - 0x7fa4]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x7fa4]
and ecx, 0x8000000f
jns 0x42e924
dec ecx
or ecx, 0xfffffff0
inc ecx
mov edx, dword [ebp - 0x7f80]
movzx ecx, byte [edx + ecx]
xor eax, ecx
mov edx, dword [ebp - 0x7f88]
add edx, dword [ebp - 0x7fa4]
mov byte [edx], al
mov eax, dword [ebp - 0x7f88]
add eax, dword [ebp - 0x7fa4]
movzx ecx, byte [eax]
shl ecx, 5
mov edx, dword [ebp - 0x7f88]
add edx, dword [ebp - 0x7fa4]
movzx eax, byte [edx]
sar eax, 3
or ecx, eax
mov edx, dword [ebp - 0x7f88]
add edx, dword [ebp - 0x7fa4]
mov byte [edx], cl
jmp 0x42e8e5
xor eax, eax
jne 0x42e78b
jmp 0x42ef84
cmp dword [ebp - 0x7f7c], 1
jne 0x42eb8a
mov ecx, dword [ebp - 0x7f3c]
mov dword [ebp - 0x7fbc], ecx
mov edx, dword [ebp - 0x7f38]
mov dword [ebp - 0x7fb8], edx
mov eax, dword [ebp - 0x7f44]
mov dword [ebp - 0x7fb0], eax
mov ecx, dword [ebp - 0x7f78]
mov dword [ebp - 0x7fc0], ecx
push 0
push 0x10
mov edx, dword [ebp - 0x7fb8]
push edx
mov eax, dword [ebp - 0x7fbc]
push eax
call fcn.0046cb30
mov dword [ebp - 0x7fac], eax
mov ecx, dword [ebp - 0x7f58]
mov dword [ebp - 0x7fa8], ecx
cmp dword [ebp - 0x7fac], 0
jle 0x42eadf
mov edx, 0x10
sub edx, dword [ebp - 0x7fac]
mov dword [ebp - 0x7fc4], edx
mov dword [ebp - 0x7fc8], 0
jmp 0x42ea23
mov eax, dword [ebp - 0x7fc8]
add eax, 1
mov dword [ebp - 0x7fc8], eax
mov ecx, dword [ebp - 0x7fc8]
cmp ecx, dword [ebp - 0x7fc4]
jge 0x42eaad
mov edx, dword [ebp - 0x7fc8]
cmp edx, dword [ebp - 0x7fc0]
jge 0x42eaad
mov eax, dword [ebp - 0x7fb0]
add eax, dword [ebp - 0x7fc8]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x7fac]
add edx, dword [ebp - 0x7fc8]
mov eax, dword [ebp - 0x7fa8]
movzx edx, byte [eax + edx]
xor ecx, edx
mov eax, dword [ebp - 0x7fb0]
add eax, dword [ebp - 0x7fc8]
mov byte [eax], cl
mov ecx, dword [ebp - 0x7fb0]
add ecx, dword [ebp - 0x7fc8]
movzx edx, byte [ecx]
shl edx, 5
mov eax, dword [ebp - 0x7fb0]
add eax, dword [ebp - 0x7fc8]
movzx ecx, byte [eax]
sar ecx, 3
or edx, ecx
mov eax, dword [ebp - 0x7fb0]
add eax, dword [ebp - 0x7fc8]
mov byte [eax], dl
jmp 0x42ea14
mov ecx, dword [ebp - 0x7fc0]
sub ecx, dword [ebp - 0x7fc4]
mov dword [ebp - 0x7fc0], ecx
cmp dword [ebp - 0x7fc0], 0
jg 0x42eacd
jmp 0x42eb85
mov edx, dword [ebp - 0x7fb0]
add edx, dword [ebp - 0x7fc4]
mov dword [ebp - 0x7fb0], edx
mov dword [ebp - 0x7fcc], 0
jmp 0x42eafa
mov eax, dword [ebp - 0x7fcc]
add eax, 1
mov dword [ebp - 0x7fcc], eax
mov ecx, dword [ebp - 0x7fcc]
cmp ecx, dword [ebp - 0x7fc0]
jge 0x42eb7d
mov edx, dword [ebp - 0x7fb0]
add edx, dword [ebp - 0x7fcc]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x7fcc]
and ecx, 0x8000000f
jns 0x42eb2a
dec ecx
or ecx, 0xfffffff0
inc ecx
mov edx, dword [ebp - 0x7fa8]
movzx ecx, byte [edx + ecx]
xor eax, ecx
mov edx, dword [ebp - 0x7fb0]
add edx, dword [ebp - 0x7fcc]
mov byte [edx], al
mov eax, dword [ebp - 0x7fb0]
add eax, dword [ebp - 0x7fcc]
movzx ecx, byte [eax]
shl ecx, 5
mov edx, dword [ebp - 0x7fb0]
add edx, dword [ebp - 0x7fcc]
movzx eax, byte [edx]
sar eax, 3
or ecx, eax
mov edx, dword [ebp - 0x7fb0]
add edx, dword [ebp - 0x7fcc]
mov byte [edx], cl
jmp 0x42eaeb
xor eax, eax
jne 0x42e991
jmp 0x42ef84
cmp dword [ebp - 0x7f7c], 2
jne 0x42ed90
mov ecx, dword [ebp - 0x7f3c]
mov dword [ebp - 0x7fe4], ecx
mov edx, dword [ebp - 0x7f38]
mov dword [ebp - 0x7fe0], edx
mov eax, dword [ebp - 0x7f44]
mov dword [ebp - 0x7fd8], eax
mov ecx, dword [ebp - 0x7f78]
mov dword [ebp - 0x7fe8], ecx
push 0
push 0x10
mov edx, dword [ebp - 0x7fe0]
push edx
mov eax, dword [ebp - 0x7fe4]
push eax
call fcn.0046cb30
mov dword [ebp - 0x7fd4], eax
lea ecx, [ebp - 0x7f54]
mov dword [ebp - 0x7fd0], ecx
cmp dword [ebp - 0x7fd4], 0
jle 0x42ece5
mov edx, 0x10
sub edx, dword [ebp - 0x7fd4]
mov dword [ebp - 0x7fec], edx
mov dword [ebp - 0x7ff0], 0
jmp 0x42ec29
mov eax, dword [ebp - 0x7ff0]
add eax, 1
mov dword [ebp - 0x7ff0], eax
mov ecx, dword [ebp - 0x7ff0]
cmp ecx, dword [ebp - 0x7fec]
jge 0x42ecb3
mov edx, dword [ebp - 0x7ff0]
cmp edx, dword [ebp - 0x7fe8]
jge 0x42ecb3
mov eax, dword [ebp - 0x7fd8]
add eax, dword [ebp - 0x7ff0]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x7fd4]
add edx, dword [ebp - 0x7ff0]
mov eax, dword [ebp - 0x7fd0]
movzx edx, byte [eax + edx]
xor ecx, edx
mov eax, dword [ebp - 0x7fd8]
add eax, dword [ebp - 0x7ff0]
mov byte [eax], cl
mov ecx, dword [ebp - 0x7fd8]
add ecx, dword [ebp - 0x7ff0]
movzx edx, byte [ecx]
shl edx, 5
mov eax, dword [ebp - 0x7fd8]
add eax, dword [ebp - 0x7ff0]
movzx ecx, byte [eax]
sar ecx, 3
or edx, ecx
mov eax, dword [ebp - 0x7fd8]
add eax, dword [ebp - 0x7ff0]
mov byte [eax], dl
jmp 0x42ec1a
mov ecx, dword [ebp - 0x7fe8]
sub ecx, dword [ebp - 0x7fec]
mov dword [ebp - 0x7fe8], ecx
cmp dword [ebp - 0x7fe8], 0
jg 0x42ecd3
jmp 0x42ed8b
mov edx, dword [ebp - 0x7fd8]
add edx, dword [ebp - 0x7fec]
mov dword [ebp - 0x7fd8], edx
mov dword [ebp - 0x7ff4], 0
jmp 0x42ed00
mov eax, dword [ebp - 0x7ff4]
add eax, 1
mov dword [ebp - 0x7ff4], eax
mov ecx, dword [ebp - 0x7ff4]
cmp ecx, dword [ebp - 0x7fe8]
jge 0x42ed83
mov edx, dword [ebp - 0x7fd8]
add edx, dword [ebp - 0x7ff4]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x7ff4]
and ecx, 0x8000000f
jns 0x42ed30
dec ecx
or ecx, 0xfffffff0
inc ecx
mov edx, dword [ebp - 0x7fd0]
movzx ecx, byte [edx + ecx]
xor eax, ecx
mov edx, dword [ebp - 0x7fd8]
add edx, dword [ebp - 0x7ff4]
mov byte [edx], al
mov eax, dword [ebp - 0x7fd8]
add eax, dword [ebp - 0x7ff4]
movzx ecx, byte [eax]
shl ecx, 5
mov edx, dword [ebp - 0x7fd8]
add edx, dword [ebp - 0x7ff4]
movzx eax, byte [edx]
sar eax, 3
or ecx, eax
mov edx, dword [ebp - 0x7fd8]
add edx, dword [ebp - 0x7ff4]
mov byte [edx], cl
jmp 0x42ecf1
xor eax, eax
jne 0x42eb97
jmp 0x42ef84
mov ecx, dword [ebp - 0x7f3c]
mov dword [ebp - 0x800c], ecx
mov edx, dword [ebp - 0x7f38]
mov dword [ebp - 0x8008], edx
mov eax, dword [ebp - 0x7f44]
mov dword [ebp - 0x8000], eax
mov ecx, dword [ebp - 0x7f78]
mov dword [ebp - 0x8010], ecx
push 0
push 0x10
mov edx, dword [ebp - 0x8008]
push edx
mov eax, dword [ebp - 0x800c]
push eax
call fcn.0046cb30
mov dword [ebp - 0x7ffc], eax
lea ecx, [ebp - 0x7f6c]
mov dword [ebp - 0x7ff8], ecx
cmp dword [ebp - 0x7ffc], 0
jle 0x42eede
mov edx, 0x10
sub edx, dword [ebp - 0x7ffc]
mov dword [ebp - 0x8014], edx
mov dword [ebp - 0x8018], 0
jmp 0x42ee22
mov eax, dword [ebp - 0x8018]
add eax, 1
mov dword [ebp - 0x8018], eax
mov ecx, dword [ebp - 0x8018]
cmp ecx, dword [ebp - 0x8014]
jge 0x42eeac
mov edx, dword [ebp - 0x8018]
cmp edx, dword [ebp - 0x8010]
jge 0x42eeac
mov eax, dword [ebp - 0x8000]
add eax, dword [ebp - 0x8018]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x7ffc]
add edx, dword [ebp - 0x8018]
mov eax, dword [ebp - 0x7ff8]
movzx edx, byte [eax + edx]
xor ecx, edx
mov eax, dword [ebp - 0x8000]
add eax, dword [ebp - 0x8018]
mov byte [eax], cl
mov ecx, dword [ebp - 0x8000]
add ecx, dword [ebp - 0x8018]
movzx edx, byte [ecx]
shl edx, 5
mov eax, dword [ebp - 0x8000]
add eax, dword [ebp - 0x8018]
movzx ecx, byte [eax]
sar ecx, 3
or edx, ecx
mov eax, dword [ebp - 0x8000]
add eax, dword [ebp - 0x8018]
mov byte [eax], dl
jmp 0x42ee13
mov ecx, dword [ebp - 0x8010]
sub ecx, dword [ebp - 0x8014]
mov dword [ebp - 0x8010], ecx
cmp dword [ebp - 0x8010], 0
jg 0x42eecc
jmp 0x42ef84
mov edx, dword [ebp - 0x8000]
add edx, dword [ebp - 0x8014]
mov dword [ebp - 0x8000], edx
mov dword [ebp - 0x801c], 0
jmp 0x42eef9
mov eax, dword [ebp - 0x801c]
add eax, 1
mov dword [ebp - 0x801c], eax
mov ecx, dword [ebp - 0x801c]
cmp ecx, dword [ebp - 0x8010]
jge 0x42ef7c
mov edx, dword [ebp - 0x8000]
add edx, dword [ebp - 0x801c]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x801c]
and ecx, 0x8000000f
jns 0x42ef29
dec ecx
or ecx, 0xfffffff0
inc ecx
mov edx, dword [ebp - 0x7ff8]
movzx ecx, byte [edx + ecx]
xor eax, ecx
mov edx, dword [ebp - 0x8000]
add edx, dword [ebp - 0x801c]
mov byte [edx], al
mov eax, dword [ebp - 0x8000]
add eax, dword [ebp - 0x801c]
movzx ecx, byte [eax]
shl ecx, 5
mov edx, dword [ebp - 0x8000]
add edx, dword [ebp - 0x801c]
movzx eax, byte [edx]
sar eax, 3
or ecx, eax
mov edx, dword [ebp - 0x8000]
add edx, dword [ebp - 0x801c]
mov byte [edx], cl
jmp 0x42eeea
xor eax, eax
jne 0x42ed90
mov eax, dword [ebp - 0x7f78]
cdq
add eax, dword [ebp - 0x7f3c]
mov ecx, dword [ebp - 0x7f38]
adc ecx, edx
mov dword [ebp - 0x7f3c], eax
mov dword [ebp - 0x7f38], ecx
mov edx, dword [ebp - 0x7f44]
add edx, dword [ebp - 0x7f78]
mov dword [ebp - 0x7f44], edx
mov eax, dword [ebp - 0x7f5c]
sub eax, dword [ebp - 0x7f78]
mov dword [ebp - 0x7f5c], eax
mov ecx, 1
test ecx, ecx
jne 0x42e6e5
xor edx, edx
jne 0x42e4c7
mov dword [ebp - 0x8024], 0
mov dword [ebp - 0x8020], 0
lea eax, [ebp - 0x44b4]
mov dword [ebp - 0x802c], eax
mov ecx, dword [ebp - 0x44b8]
mov dword [ebp - 0x8044], ecx
mov dword [ebp - 0x8028], 0x4774d0
mov dword [ebp - 0x8040], 0x4774e4
mov edx, dword [ebp - 0x8028]
mov al, byte [edx + 1]
mov byte [ebp - 0x803c], al
mov ecx, dword [ebp - 0x8028]
mov dl, byte [ecx + 5]
mov byte [ebp - 0x803b], dl
mov eax, dword [ebp - 0x8028]
mov cl, byte [eax + 2]
mov byte [ebp - 0x803a], cl
mov edx, dword [ebp - 0x8028]
mov al, byte [edx + 9]
mov byte [ebp - 0x8039], al
mov ecx, dword [ebp - 0x8028]
mov dl, byte [ecx + 3]
mov byte [ebp - 0x8038], dl
mov eax, dword [ebp - 0x8028]
mov cl, byte [eax + 0xa]
mov byte [ebp - 0x8037], cl
mov edx, dword [ebp - 0x8028]
mov al, byte [edx + 4]
mov byte [ebp - 0x8036], al
mov ecx, dword [ebp - 0x8028]
mov dl, byte [ecx + 7]
mov byte [ebp - 0x8035], dl
mov eax, dword [ebp - 0x8028]
mov cl, byte [eax + 8]
mov byte [ebp - 0x8034], cl
mov edx, dword [ebp - 0x8028]
mov al, byte [edx + 6]
mov byte [ebp - 0x8033], al
mov ecx, dword [ebp - 0x8028]
mov dl, byte [ecx + 0xb]
mov byte [ebp - 0x8032], dl
mov eax, dword [ebp - 0x8028]
mov cl, byte [eax + 0xc]
mov byte [ebp - 0x8031], cl
mov edx, dword [ebp - 0x8028]
mov al, byte [edx]
mov byte [ebp - 0x8030], al
mov ecx, dword [ebp - 0x8028]
mov dl, byte [ecx + 0xe]
mov byte [ebp - 0x802f], dl
mov eax, dword [ebp - 0x8028]
mov cl, byte [eax + 0xf]
mov byte [ebp - 0x802e], cl
mov edx, dword [ebp - 0x8028]
mov al, byte [edx + 0xd]
mov byte [ebp - 0x802d], al
mov ecx, dword [ebp - 0x8040]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x8054], dl
mov eax, dword [ebp - 0x8040]
mov cl, byte [eax + 7]
mov byte [ebp - 0x8053], cl
mov edx, dword [ebp - 0x8040]
mov al, byte [edx + 9]
mov byte [ebp - 0x8052], al
mov ecx, dword [ebp - 0x8040]
mov dl, byte [ecx + 2]
mov byte [ebp - 0x8051], dl
mov eax, dword [ebp - 0x8040]
mov cl, byte [eax]
mov byte [ebp - 0x8050], cl
mov edx, dword [ebp - 0x8040]
mov al, byte [edx + 0xa]
mov byte [ebp - 0x804f], al
mov ecx, dword [ebp - 0x8040]
mov dl, byte [ecx + 4]
mov byte [ebp - 0x804e], dl
mov eax, dword [ebp - 0x8040]
mov cl, byte [eax + 5]
mov byte [ebp - 0x804d], cl
mov edx, dword [ebp - 0x8040]
mov al, byte [edx + 3]
mov byte [ebp - 0x804c], al
mov ecx, dword [ebp - 0x8040]
mov dl, byte [ecx + 6]
mov byte [ebp - 0x804b], dl
mov eax, dword [ebp - 0x8040]
mov cl, byte [eax + 0xc]
mov byte [ebp - 0x804a], cl
mov edx, dword [ebp - 0x8040]
mov al, byte [edx + 0xf]
mov byte [ebp - 0x8049], al
mov ecx, dword [ebp - 0x8040]
mov dl, byte [ecx + 8]
mov byte [ebp - 0x8048], dl
mov eax, dword [ebp - 0x8040]
mov cl, byte [eax + 0xe]
mov byte [ebp - 0x8047], cl
mov edx, dword [ebp - 0x8040]
mov al, byte [edx + 0xb]
mov byte [ebp - 0x8046], al
mov ecx, dword [ebp - 0x8040]
mov dl, byte [ecx + 0xd]
mov byte [ebp - 0x8045], dl
push 0
push 0x10000
mov eax, dword [ebp - 0x8020]
push eax
mov ecx, dword [ebp - 0x8024]
push ecx
call fcn.0046cb30
mov ecx, 0x10000
sub ecx, eax
mov eax, 0
sbb eax, edx
mov dword [ebp - 0x8060], ecx
mov ecx, dword [ebp - 0x8060]
cmp ecx, dword [ebp - 0x8044]
jle 0x42f244
mov edx, dword [ebp - 0x8044]
mov dword [ebp - 0x8060], edx
cmp dword [ebp - 0x8060], 0
jg 0x42f252
jmp 0x42faed
push 0
push 0x10000
mov eax, dword [ebp - 0x8020]
push eax
mov ecx, dword [ebp - 0x8024]
push ecx
call fcn.0045f580
mov dword [ebp - 0x805c], eax
mov dword [ebp - 0x8058], edx
push 0
push 4
mov edx, dword [ebp - 0x8058]
push edx
mov eax, dword [ebp - 0x805c]
push eax
call fcn.0045f4c0
mov dword [ebp - 0x8064], eax
cmp dword [ebp - 0x8064], 0
jne 0x42f49b
mov ecx, dword [ebp - 0x8024]
mov dword [ebp - 0x807c], ecx
mov edx, dword [ebp - 0x8020]
mov dword [ebp - 0x8078], edx
mov eax, dword [ebp - 0x802c]
mov dword [ebp - 0x8070], eax
mov ecx, dword [ebp - 0x8060]
mov dword [ebp - 0x8080], ecx
push 0
push 0x10
mov edx, dword [ebp - 0x8078]
push edx
mov eax, dword [ebp - 0x807c]
push eax
call fcn.0046cb30
mov dword [ebp - 0x806c], eax
mov ecx, dword [ebp - 0x8028]
mov dword [ebp - 0x8068], ecx
cmp dword [ebp - 0x806c], 0
jle 0x42f3f0
mov edx, 0x10
sub edx, dword [ebp - 0x806c]
mov dword [ebp - 0x8084], edx
mov dword [ebp - 0x8088], 0
jmp 0x42f334
mov eax, dword [ebp - 0x8088]
add eax, 1
mov dword [ebp - 0x8088], eax
mov ecx, dword [ebp - 0x8088]
cmp ecx, dword [ebp - 0x8084]
jge 0x42f3be
mov edx, dword [ebp - 0x8088]
cmp edx, dword [ebp - 0x8080]
jge 0x42f3be
mov eax, dword [ebp - 0x8070]
add eax, dword [ebp - 0x8088]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x806c]
add edx, dword [ebp - 0x8088]
mov eax, dword [ebp - 0x8068]
movzx edx, byte [eax + edx]
xor ecx, edx
mov eax, dword [ebp - 0x8070]
add eax, dword [ebp - 0x8088]
mov byte [eax], cl
mov ecx, dword [ebp - 0x8070]
add ecx, dword [ebp - 0x8088]
movzx edx, byte [ecx]
shl edx, 5
mov eax, dword [ebp - 0x8070]
add eax, dword [ebp - 0x8088]
movzx ecx, byte [eax]
sar ecx, 3
or edx, ecx
mov eax, dword [ebp - 0x8070]
add eax, dword [ebp - 0x8088]
mov byte [eax], dl
jmp 0x42f325
mov ecx, dword [ebp - 0x8080]
sub ecx, dword [ebp - 0x8084]
mov dword [ebp - 0x8080], ecx
cmp dword [ebp - 0x8080], 0
jg 0x42f3de
jmp 0x42f496
mov edx, dword [ebp - 0x8070]
add edx, dword [ebp - 0x8084]
mov dword [ebp - 0x8070], edx
mov dword [ebp - 0x808c], 0
jmp 0x42f40b
mov eax, dword [ebp - 0x808c]
add eax, 1
mov dword [ebp - 0x808c], eax
mov ecx, dword [ebp - 0x808c]
cmp ecx, dword [ebp - 0x8080]
jge 0x42f48e
mov edx, dword [ebp - 0x8070]
add edx, dword [ebp - 0x808c]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x808c]
and ecx, 0x8000000f
jns 0x42f43b
dec ecx
or ecx, 0xfffffff0
inc ecx
mov edx, dword [ebp - 0x8068]
movzx ecx, byte [edx + ecx]
xor eax, ecx
mov edx, dword [ebp - 0x8070]
add edx, dword [ebp - 0x808c]
mov byte [edx], al
mov eax, dword [ebp - 0x8070]
add eax, dword [ebp - 0x808c]
movzx ecx, byte [eax]
shl ecx, 5
mov edx, dword [ebp - 0x8070]
add edx, dword [ebp - 0x808c]
movzx eax, byte [edx]
sar eax, 3
or ecx, eax
mov edx, dword [ebp - 0x8070]
add edx, dword [ebp - 0x808c]
mov byte [edx], cl
jmp 0x42f3fc
xor eax, eax
jne 0x42f2a2
jmp 0x42fa9b
cmp dword [ebp - 0x8064], 1
jne 0x42f6a1
mov ecx, dword [ebp - 0x8024]
mov dword [ebp - 0x80a4], ecx
mov edx, dword [ebp - 0x8020]
mov dword [ebp - 0x80a0], edx
mov eax, dword [ebp - 0x802c]
mov dword [ebp - 0x8098], eax
mov ecx, dword [ebp - 0x8060]
mov dword [ebp - 0x80a8], ecx
push 0
push 0x10
mov edx, dword [ebp - 0x80a0]
push edx
mov eax, dword [ebp - 0x80a4]
push eax
call fcn.0046cb30
mov dword [ebp - 0x8094], eax
mov ecx, dword [ebp - 0x8040]
mov dword [ebp - 0x8090], ecx
cmp dword [ebp - 0x8094], 0
jle 0x42f5f6
mov edx, 0x10
sub edx, dword [ebp - 0x8094]
mov dword [ebp - 0x80ac], edx
mov dword [ebp - 0x80b0], 0
jmp 0x42f53a
mov eax, dword [ebp - 0x80b0]
add eax, 1
mov dword [ebp - 0x80b0], eax
mov ecx, dword [ebp - 0x80b0]
cmp ecx, dword [ebp - 0x80ac]
jge 0x42f5c4
mov edx, dword [ebp - 0x80b0]
cmp edx, dword [ebp - 0x80a8]
jge 0x42f5c4
mov eax, dword [ebp - 0x8098]
add eax, dword [ebp - 0x80b0]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x8094]
add edx, dword [ebp - 0x80b0]
mov eax, dword [ebp - 0x8090]
movzx edx, byte [eax + edx]
xor ecx, edx
mov eax, dword [ebp - 0x8098]
add eax, dword [ebp - 0x80b0]
mov byte [eax], cl
mov ecx, dword [ebp - 0x8098]
add ecx, dword [ebp - 0x80b0]
movzx edx, byte [ecx]
shl edx, 5
mov eax, dword [ebp - 0x8098]
add eax, dword [ebp - 0x80b0]
movzx ecx, byte [eax]
sar ecx, 3
or edx, ecx
mov eax, dword [ebp - 0x8098]
add eax, dword [ebp - 0x80b0]
mov byte [eax], dl
jmp 0x42f52b
mov ecx, dword [ebp - 0x80a8]
sub ecx, dword [ebp - 0x80ac]
mov dword [ebp - 0x80a8], ecx
cmp dword [ebp - 0x80a8], 0
jg 0x42f5e4
jmp 0x42f69c
mov edx, dword [ebp - 0x8098]
add edx, dword [ebp - 0x80ac]
mov dword [ebp - 0x8098], edx
mov dword [ebp - 0x80b4], 0
jmp 0x42f611
mov eax, dword [ebp - 0x80b4]
add eax, 1
mov dword [ebp - 0x80b4], eax
mov ecx, dword [ebp - 0x80b4]
cmp ecx, dword [ebp - 0x80a8]
jge 0x42f694
mov edx, dword [ebp - 0x8098]
add edx, dword [ebp - 0x80b4]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x80b4]
and ecx, 0x8000000f
jns 0x42f641
dec ecx
or ecx, 0xfffffff0
inc ecx
mov edx, dword [ebp - 0x8090]
movzx ecx, byte [edx + ecx]
xor eax, ecx
mov edx, dword [ebp - 0x8098]
add edx, dword [ebp - 0x80b4]
mov byte [edx], al
mov eax, dword [ebp - 0x8098]
add eax, dword [ebp - 0x80b4]
movzx ecx, byte [eax]
shl ecx, 5
mov edx, dword [ebp - 0x8098]
add edx, dword [ebp - 0x80b4]
movzx eax, byte [edx]
sar eax, 3
or ecx, eax
mov edx, dword [ebp - 0x8098]
add edx, dword [ebp - 0x80b4]
mov byte [edx], cl
jmp 0x42f602
xor eax, eax
jne 0x42f4a8
jmp 0x42fa9b
cmp dword [ebp - 0x8064], 2
jne 0x42f8a7
mov ecx, dword [ebp - 0x8024]
mov dword [ebp - 0x80cc], ecx
mov edx, dword [ebp - 0x8020]
mov dword [ebp - 0x80c8], edx
mov eax, dword [ebp - 0x802c]
mov dword [ebp - 0x80c0], eax
mov ecx, dword [ebp - 0x8060]
mov dword [ebp - 0x80d0], ecx
push 0
push 0x10
mov edx, dword [ebp - 0x80c8]
push edx
mov eax, dword [ebp - 0x80cc]
push eax
call fcn.0046cb30
mov dword [ebp - 0x80bc], eax
lea ecx, [ebp - 0x803c]
mov dword [ebp - 0x80b8], ecx
cmp dword [ebp - 0x80bc], 0
jle 0x42f7fc
mov edx, 0x10
sub edx, dword [ebp - 0x80bc]
mov dword [ebp - 0x80d4], edx
mov dword [ebp - 0x80d8], 0
jmp 0x42f740
mov eax, dword [ebp - 0x80d8]
add eax, 1
mov dword [ebp - 0x80d8], eax
mov ecx, dword [ebp - 0x80d8]
cmp ecx, dword [ebp - 0x80d4]
jge 0x42f7ca
mov edx, dword [ebp - 0x80d8]
cmp edx, dword [ebp - 0x80d0]
jge 0x42f7ca
mov eax, dword [ebp - 0x80c0]
add eax, dword [ebp - 0x80d8]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x80bc]
add edx, dword [ebp - 0x80d8]
mov eax, dword [ebp - 0x80b8]
movzx edx, byte [eax + edx]
xor ecx, edx
mov eax, dword [ebp - 0x80c0]
add eax, dword [ebp - 0x80d8]
mov byte [eax], cl
mov ecx, dword [ebp - 0x80c0]
add ecx, dword [ebp - 0x80d8]
movzx edx, byte [ecx]
shl edx, 5
mov eax, dword [ebp - 0x80c0]
add eax, dword [ebp - 0x80d8]
movzx ecx, byte [eax]
sar ecx, 3
or edx, ecx
mov eax, dword [ebp - 0x80c0]
add eax, dword [ebp - 0x80d8]
mov byte [eax], dl
jmp 0x42f731
mov ecx, dword [ebp - 0x80d0]
sub ecx, dword [ebp - 0x80d4]
mov dword [ebp - 0x80d0], ecx
cmp dword [ebp - 0x80d0], 0
jg 0x42f7ea
jmp 0x42f8a2
mov edx, dword [ebp - 0x80c0]
add edx, dword [ebp - 0x80d4]
mov dword [ebp - 0x80c0], edx
mov dword [ebp - 0x80dc], 0
jmp 0x42f817
mov eax, dword [ebp - 0x80dc]
add eax, 1
mov dword [ebp - 0x80dc], eax
mov ecx, dword [ebp - 0x80dc]
cmp ecx, dword [ebp - 0x80d0]
jge 0x42f89a
mov edx, dword [ebp - 0x80c0]
add edx, dword [ebp - 0x80dc]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x80dc]
and ecx, 0x8000000f
jns 0x42f847
dec ecx
or ecx, 0xfffffff0
inc ecx
mov edx, dword [ebp - 0x80b8]
movzx ecx, byte [edx + ecx]
xor eax, ecx
mov edx, dword [ebp - 0x80c0]
add edx, dword [ebp - 0x80dc]
mov byte [edx], al
mov eax, dword [ebp - 0x80c0]
add eax, dword [ebp - 0x80dc]
movzx ecx, byte [eax]
shl ecx, 5
mov edx, dword [ebp - 0x80c0]
add edx, dword [ebp - 0x80dc]
movzx eax, byte [edx]
sar eax, 3
or ecx, eax
mov edx, dword [ebp - 0x80c0]
add edx, dword [ebp - 0x80dc]
mov byte [edx], cl
jmp 0x42f808
xor eax, eax
jne 0x42f6ae
jmp 0x42fa9b
mov ecx, dword [ebp - 0x8024]
mov dword [ebp - 0x80f4], ecx
mov edx, dword [ebp - 0x8020]
mov dword [ebp - 0x80f0], edx
mov eax, dword [ebp - 0x802c]
mov dword [ebp - 0x80e8], eax
mov ecx, dword [ebp - 0x8060]
mov dword [ebp - 0x80f8], ecx
push 0
push 0x10
mov edx, dword [ebp - 0x80f0]
push edx
mov eax, dword [ebp - 0x80f4]
push eax
call fcn.0046cb30
mov dword [ebp - 0x80e4], eax
lea ecx, [ebp - 0x8054]
mov dword [ebp - 0x80e0], ecx
cmp dword [ebp - 0x80e4], 0
jle 0x42f9f5
mov edx, 0x10
sub edx, dword [ebp - 0x80e4]
mov dword [ebp - 0x80fc], edx
mov dword [ebp - 0x8100], 0
jmp 0x42f939
mov eax, dword [ebp - 0x8100]
add eax, 1
mov dword [ebp - 0x8100], eax
mov ecx, dword [ebp - 0x8100]
cmp ecx, dword [ebp - 0x80fc]
jge 0x42f9c3
mov edx, dword [ebp - 0x8100]
cmp edx, dword [ebp - 0x80f8]
jge 0x42f9c3
mov eax, dword [ebp - 0x80e8]
add eax, dword [ebp - 0x8100]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x80e4]
add edx, dword [ebp - 0x8100]
mov eax, dword [ebp - 0x80e0]
movzx edx, byte [eax + edx]
xor ecx, edx
mov eax, dword [ebp - 0x80e8]
add eax, dword [ebp - 0x8100]
mov byte [eax], cl
mov ecx, dword [ebp - 0x80e8]
add ecx, dword [ebp - 0x8100]
movzx edx, byte [ecx]
shl edx, 5
mov eax, dword [ebp - 0x80e8]
add eax, dword [ebp - 0x8100]
movzx ecx, byte [eax]
sar ecx, 3
or edx, ecx
mov eax, dword [ebp - 0x80e8]
add eax, dword [ebp - 0x8100]
mov byte [eax], dl
jmp 0x42f92a
mov ecx, dword [ebp - 0x80f8]
sub ecx, dword [ebp - 0x80fc]
mov dword [ebp - 0x80f8], ecx
cmp dword [ebp - 0x80f8], 0
jg 0x42f9e3
jmp 0x42fa9b
mov edx, dword [ebp - 0x80e8]
add edx, dword [ebp - 0x80fc]
mov dword [ebp - 0x80e8], edx
mov dword [ebp - 0x8104], 0
jmp 0x42fa10
mov eax, dword [ebp - 0x8104]
add eax, 1
mov dword [ebp - 0x8104], eax
mov ecx, dword [ebp - 0x8104]
cmp ecx, dword [ebp - 0x80f8]
jge 0x42fa93
mov edx, dword [ebp - 0x80e8]
add edx, dword [ebp - 0x8104]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x8104]
and ecx, 0x8000000f
jns 0x42fa40
dec ecx
or ecx, 0xfffffff0
inc ecx
mov edx, dword [ebp - 0x80e0]
movzx ecx, byte [edx + ecx]
xor eax, ecx
mov edx, dword [ebp - 0x80e8]
add edx, dword [ebp - 0x8104]
mov byte [edx], al
mov eax, dword [ebp - 0x80e8]
add eax, dword [ebp - 0x8104]
movzx ecx, byte [eax]
shl ecx, 5
mov edx, dword [ebp - 0x80e8]
add edx, dword [ebp - 0x8104]
movzx eax, byte [edx]
sar eax, 3
or ecx, eax
mov edx, dword [ebp - 0x80e8]
add edx, dword [ebp - 0x8104]
mov byte [edx], cl
jmp 0x42fa01
xor eax, eax
jne 0x42f8a7
mov eax, dword [ebp - 0x8060]
cdq
add eax, dword [ebp - 0x8024]
mov ecx, dword [ebp - 0x8020]
adc ecx, edx
mov dword [ebp - 0x8024], eax
mov dword [ebp - 0x8020], ecx
mov edx, dword [ebp - 0x802c]
add edx, dword [ebp - 0x8060]
mov dword [ebp - 0x802c], edx
mov eax, dword [ebp - 0x8044]
sub eax, dword [ebp - 0x8060]
mov dword [ebp - 0x8044], eax
mov ecx, 1
test ecx, ecx
jne 0x42f1fc
xor edx, edx
jne 0x42efde
mov eax, dword [ebp - 0x44b8]
cdq
sub eax, edx
sar eax, 1
xor ecx, ecx
mov word [ebp + eax*2 - 0x44b4], cx
lea edx, [ebp - 0x44b4]
push edx
lea eax, [ebp - 0x4764]
push eax
call fcn.00443260
add esp, 4
push eax
lea ecx, [ebp - 0x4764]
push ecx
mov eax, dword [ebp - 0x45bc]
cdq
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x45b8]
push edx
call fcn.004426c0
add esp, 0x14
mov ecx, dword [ebp - 0x8164]
mov dword [ecx + 0x74], eax
mov edx, dword [ebp - 0x8164]
cmp dword [edx + 0x74], 0
je 0x42fc3b
mov dword [ebp - 0x8108], 1
lea eax, [ebp - 0x4764]
mov dword [ebp - 0x8114], eax
mov dword [ebp - case.0x44fcf7.5004], str.3E57D6B23F87120B1ED756AEB27AE36151EE869194CBDD3120CDE66BF48043D1
mov ecx, dword [ebp - 0x8114]
push ecx
call fcn.00443260
add esp, 4
mov dword [ebp - 0x810c], eax
mov edx, dword [ebp - 0x8110]
push edx
call fcn.00443260
add esp, 4
mov dword [ebp - 0x8118], eax
mov dword [ebp - 0x8108], 1
mov eax, dword [ebp - 0x810c]
cmp eax, dword [ebp - 0x8118]
je 0x42fbca
mov dword [ebp - 0x8108], 0
jmp 0x42fc25
mov dword [ebp - 0x811c], 0
jmp 0x42fbe5
mov ecx, dword [ebp - 0x811c]
add ecx, 1
mov dword [ebp - 0x811c], ecx
mov edx, dword [ebp - 0x811c]
cmp edx, dword [ebp - 0x810c]
jge 0x42fc25
mov eax, dword [ebp - 0x811c]
mov ecx, dword [ebp - 0x8114]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x811c]
mov ecx, dword [ebp - 0x8110]
movzx eax, word [ecx + eax*2]
cmp edx, eax
je 0x42fc23
mov dword [ebp - 0x8108], 0
jmp 0x42fc25
jmp 0x42fbd6
cmp dword [ebp - 0x8108], 0
je 0x42fc3b
mov ecx, dword [ebp - 0x8164]
mov dword [ecx + 0x74], 0
mov dword [ebp - 0x7988], 0
mov dword [ebp - 0x7994], 0
mov dword [ebp - 0x8120], 0
jmp 0x42fc6a
mov edx, dword [ebp - 0x8120]
add edx, 1
mov dword [ebp - 0x8120], edx
mov eax, dword [ebp - 0x45bc]
cdq
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x8120], eax
jge 0x42fcbb
mov eax, dword [ebp - 0x8120]
movzx ecx, word [ebp + eax*2 - 0x45b8]
cmp ecx, 0x40
jne 0x42fc9c
mov dword [ebp - 0x7988], 1
jmp 0x42fcb9
mov edx, dword [ebp - 0x8120]
movzx eax, word [ebp + edx*2 - 0x45b8]
cmp eax, 0x2e
jne 0x42fcb9
mov dword [ebp - 0x7994], 1
jmp 0x42fc5b
cmp dword [ebp - 0x7988], 0
je 0x42fccd
cmp dword [ebp - 0x7994], 0
jne 0x42fce4
push 0
push 0
push 0
push 0x431060
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
jmp 0x42fd01
push 0
push 0
mov ecx, dword [ebp - 0x8164]
mov edx, dword [ecx + 0x74]
push edx
push 0x431060
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0xffffffffffffffff
mov eax, dword [ebp - 0x798c]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [ebp - 0x798c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edx, [ebp - 0x4764]
push edx
call fcn.00443260
add esp, 4
shl eax, 1
push eax
lea eax, [ebp - 0x4764]
push eax
push 0x48a18c
call fcn.00443200
add esp, 0xc
lea ecx, [ebp - 0x224]
push ecx
lea ecx, [ebp - 0x7980]
call fcn.004053d0
mov byte [ebp - 4], 4
push 0x5c
lea ecx, [ebp - 0x7980]
call fcn.0040dbd0
mov dword [ebp - 0x7968], eax
mov edx, dword [ebp - 0x7968]
add edx, 1
push edx
lea eax, [ebp - 0x8150]
push eax
lea ecx, [ebp - 0x7980]
call fcn.00405580
mov dword [ebp - 0x8168], eax
mov ecx, dword [ebp - 0x8168]
mov dword [ebp - 0x816c], ecx
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x816c]
push edx
lea ecx, [ebp - 0x7980]
call fcn.00443890
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x8150]
call fcn.00443990
push 0x2e
lea ecx, [ebp - 0x7980]
call fcn.0040dbd0
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x22c], 0
jle 0x42fe2b
mov eax, dword [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x8154]
push ecx
lea ecx, [ebp - 0x7980]
call fcn.0040dcd0
mov dword [ebp - 0x8170], eax
mov edx, dword [ebp - 0x8170]
mov dword [ebp - 0x8174], edx
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x8174]
push eax
lea ecx, [ebp - 0x7980]
call fcn.00443890
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x8154]
call fcn.00443990
lea ecx, [ebp - 0x48e4]
mov dword [ebp - 0x8178], ecx
mov edx, dword [ebp - 0x8178]
add edx, 2
mov dword [ebp - 0x817c], edx
mov eax, dword [ebp - 0x8178]
mov cx, word [eax]
mov word [ebp - 0x817e], cx
add dword [ebp - 0x8178], 2
cmp word [ebp - 0x817e], 0
jne 0x42fe46
mov edx, dword [ebp - 0x8178]
sub edx, dword [ebp - 0x817c]
sar edx, 1
mov dword [ebp - 0x8184], edx
je 0x42fe9f
push 0x47757c
lea ecx, [ebp - 0x7980]
call fcn.00405450
lea eax, [ebp - 0x48e4]
push eax
lea ecx, [ebp - 0x7980]
call fcn.00405450
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0x7980]
push edx
lea eax, [ebp - 0x8158]
push eax
call fcn.004313b0
add esp, 0xc
mov dword [ebp - 0x8188], eax
mov ecx, dword [ebp - 0x8188]
call fcn.00419920
push eax
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fb70
lea ecx, [ebp - 0x8158]
call fcn.00443990
cmp dword [ebp - 0x47e4], 0
jle 0x42ff48
cmp dword [ebp - 0x47e0], 0
jle 0x42ff48
cmp dword [ebp - 0x47e4], 0x280
je 0x42ff48
cmp dword [ebp - 0x47e0], 0x168
je 0x42ff48
push 1
mov ecx, dword [ebp - 0x47e0]
add ecx, 0x58
push ecx
mov edx, dword [ebp - 0x47e4]
add edx, 4
push edx
push 0
push 0
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fe90
push 0
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fc20
jmp 0x42ff58
push 3
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fab0
lea eax, [ebp - 0x224]
push eax
lea ecx, [ebp - 0x230]
call fcn.004053d0
mov byte [ebp - 4], 7
cmp dword [ebp - 0xb60], 0
jne 0x42ffa9
lea ecx, [ebp - 0x4796]
push ecx
lea ecx, [ebp - 0x230]
call fcn.00405450
mov edx, dword [ebp - 0xb5c]
push edx
lea ecx, [ebp - 0x230]
call fcn.00431370
push eax
call fcn.0042b070
add esp, 8
jmp 0x430049
push 0x2e
lea ecx, [ebp - 0x230]
call fcn.0040dbd0
mov dword [ebp - 0x8124], eax
mov eax, dword [ebp - 0x8124]
push eax
lea ecx, [ebp - 0x815c]
push ecx
lea ecx, [ebp - 0x230]
call fcn.0040dcd0
mov dword [ebp - 0x818c], eax
mov edx, dword [ebp - 0x818c]
mov dword [ebp - 0x8190], edx
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x8190]
push eax
lea ecx, [ebp - 0x230]
call fcn.00443890
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x815c]
call fcn.00443990
push str..ppvm
lea ecx, [ebp - 0x230]
call fcn.00405450
lea ecx, [ebp - 0x4796]
push ecx
lea ecx, [ebp - 0x230]
call fcn.00405450
mov edx, dword [ebp - 0xb5c]
push edx
lea ecx, [ebp - 0x230]
call fcn.00431370
push eax
call fcn.0042b070
add esp, 8
lea eax, [ebp - 0x230]
push eax
mov ecx, dword [ebp - 0x8164]
add ecx, 0x78
call fcn.00443890
lea ecx, [ebp - 0x797c]
push ecx
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fb50
push 0x3e8
mov ecx, dword [ebp - 0x8164]
add ecx, 0x20
call fcn.0043ae10
mov dword [ebp - 0x796c], eax
cmp dword [ebp - 0x796c], 0
je 0x4300c1
lea edx, [ebp - 0x797c]
push edx
mov ecx, dword [ebp - 0x796c]
call fcn.00408540
push 0
mov ecx, dword [ebp - 0x796c]
call fcn.0042d5a0
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x796c]
call fcn.00408480
lea eax, [ebp - 0x1b60]
push eax
mov ecx, dword [ebp - 0x8164]
add ecx, 0x7c
call fcn.00443af0
lea ecx, [ebp - 0x4360]
push ecx
mov ecx, dword [ebp - 0x8164]
add ecx, 0x80
call fcn.00401920
cmp dword [ebp - 0x43f4], 0
jle 0x430108
mov ecx, dword [ebp - 0x8164]
add ecx, 0x80
call fcn.00401a60
cmp dword [ebp - 0x43f0], 0
jle 0x430116
call fcn.004436d0
mov edx, dword [ebp - 0x8164]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0x8164]
add ecx, 0x80
call fcn.004047a0
push 0
push 0x2710
push 1
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ae60
push 0
push 0x3e8
push 2
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ae60
mov ecx, dword [ebp - 0x8164]
cmp dword [ecx + 0xf8], 1
jle 0x430185
push 0
push 0x3e8
push 3
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ae60
push 0
push 0x3e8
push 4
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ae60
push 0
push 0x7d0
push 5
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ae60
mov edx, dword [ebp - 0x8164]
cmp dword [edx + 0x390], 0
je 0x4301d9
push 0
push 0x1388
push 7
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ae60
mov eax, dword [ebp - 0x8164]
cmp dword [eax + 0x2fc], 0
jne 0x4301ff
push 0
push 0x7d0
push 8
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ae60
push 0
push 0
mov ecx, dword [ebp - 0x8164]
push ecx
push 0x4310c0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x8160], 1
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x230]
call fcn.00443990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7980]
call fcn.00443990
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443990
mov eax, dword [ebp - 0x8160]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.004567ae
mov esp, ebp
pop ebp
ret 0x10