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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4701d0
mov eax, dword fs:[0]
push eax
mov eax, 0x8184
call fcn.0045a1f0
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.0040fe40
push 0
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fbd0
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.0040fba0
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.0040fb70
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.0040fba0
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.0040fb70
push 0x104
lea edx, [ebp - 0x224]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov ecx, dword [ebp - 0x8164]
call fcn.004313b0
mov eax, dword [ebp - 0x8164]
mov dword [eax + 0xf8], 0
push 0x47746c
lea ecx, [ebp - 0x10]
call fcn.004052f0
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.0043f730
add esp, 4
test eax, eax
jne 0x42dfbd
push 0x10
push 0x477470
push str.This_file_is_damaged.
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040f9b0
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.004315a0
mov dword [ebp - 0x8128], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443840
mov eax, dword [ebp - 0x8128]
jmp 0x430356
mov ecx, dword [ebp - 0xb54]
add ecx, 4
push ecx
call fcn.0044c4ad
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.00443300
add esp, 0xc
mov edx, dword [ebp - 0x7998]
mov dword [ebp - 0x8130], edx
mov eax, dword [ebp - 0x8130]
push eax
call fcn.0044c4a2
add esp, 4
mov dword [ebp - 0x79b4], 0
jmp 0x42e0d8
mov ecx, dword [ebp - 0x79b4]
add ecx, 1
mov dword [ebp - 0x79b4], ecx
cmp dword [ebp - 0x79b4], 0x10
jge 0x42e134
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 0x42e132
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.004315a0
mov dword [ebp - 0x8134], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443840
mov eax, dword [ebp - 0x8134]
jmp 0x430356
jmp 0x42e0c9
push 0
push 0
push 0
push 0x42ddb0
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.00405370
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 0x42e208
call fcn.00443450
test eax, eax
je 0x42e208
mov ecx, dword [ebp - 0x8164]
mov dword [ecx + 0x3a0], 1
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.004315a0
mov dword [ebp - 0x8138], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443840
mov eax, dword [ebp - 0x8138]
jmp 0x430356
cmp dword [ebp - 0x47dc], 2
je 0x42e21e
cmp dword [ebp - 0x47dc], 3
jne 0x42e484
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.004097d0
mov byte [ebp - 4], 1
lea edx, [ebp - 0x47d8]
push edx
lea ecx, [ebp - 0x7c6c]
call fcn.0040ca40
mov eax, dword [ebp - 0x8164]
cmp dword [eax + 0x398], 0
je 0x42e36e
lea ecx, [ebp - 0x7c70]
push ecx
lea ecx, [ebp - 0x7c6c]
call fcn.0040aaf0
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.00419850
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x7c74], eax
cmp dword [ebp - 0x7c74], 0xffffffff
je 0x42e31f
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.00431490
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.00443840
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.004315a0
mov dword [ebp - 0x813c], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7c6c]
call fcn.00409a60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443840
mov eax, dword [ebp - 0x813c]
jmp 0x430356
mov eax, dword [ebp - 0x8164]
add eax, 0xfc
push eax
call fcn.00443360
add esp, 4
test eax, eax
jg 0x42e3f0
push 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x7c6c]
call fcn.00431690
cmp eax, 2
jne 0x42e3df
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.004315a0
mov dword [ebp - 0x8140], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7c6c]
call fcn.00409a60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443840
mov eax, dword [ebp - 0x8140]
jmp 0x430356
lea ecx, [ebp - 0x7b48]
push ecx
lea ecx, [ebp - 0x10]
call fcn.00405370
jmp 0x42e44c
mov edx, dword [ebp - 0x8164]
add edx, 0xfc
push edx
lea ecx, [ebp - 0x7c6c]
call fcn.0040b2a0
test eax, eax
jne 0x42e44c
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.004315a0
mov dword [ebp - 0x8144], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7c6c]
call fcn.00409a60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443840
mov eax, dword [ebp - 0x8144]
jmp 0x430356
lea eax, [ebp - 0x7a84]
push eax
mov ecx, dword [ebp - 0x8164]
call fcn.00430e70
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.00409a60
jmp 0x42e5c7
cmp dword [ebp - 0x47dc], 1
jne 0x42e5c7
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.004097d0
mov byte [ebp - 4], 3
lea eax, [ebp - 0x47d8]
push eax
lea ecx, [ebp - 0x7f34]
call fcn.0040ca40
mov ecx, dword [ebp - 0x8164]
add ecx, 0xfc
push ecx
call fcn.00443360
add esp, 4
test eax, eax
jg 0x42e54b
push 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x7f34]
call fcn.00431690
cmp eax, 2
jne 0x42e53a
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.004315a0
mov dword [ebp - 0x8148], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7f34]
call fcn.00409a60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443840
mov eax, dword [ebp - 0x8148]
jmp 0x430356
lea edx, [ebp - 0x7e10]
push edx
lea ecx, [ebp - 0x10]
call fcn.00405370
jmp 0x42e5a6
mov eax, dword [ebp - 0x8164]
add eax, 0xfc
push eax
lea ecx, [ebp - 0x7f34]
call fcn.0040b2a0
test eax, eax
jne 0x42e5a6
push 1
mov ecx, dword [ebp - 0x8164]
call fcn.004315a0
mov dword [ebp - 0x814c], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7f34]
call fcn.00409a60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443840
mov eax, dword [ebp - 0x814c]
jmp 0x430356
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.00409a60
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.0046ca80
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 0x42e82d
mov edx, dword [ebp - 0x7f5c]
mov dword [ebp - 0x7f78], edx
cmp dword [ebp - 0x7f78], 0
jg 0x42e83b
jmp 0x42f0d6
push 0
push 0x10000
mov eax, dword [ebp - 0x7f38]
push eax
mov ecx, dword [ebp - 0x7f3c]
push ecx
call fcn.0045f530
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.0045f470
mov dword [ebp - 0x7f7c], eax
cmp dword [ebp - 0x7f7c], 0
jne 0x42ea84
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.0046ca80
mov dword [ebp - 0x7f84], eax
mov ecx, dword [ebp - 0x7f40]
mov dword [ebp - 0x7f80], ecx
cmp dword [ebp - 0x7f84], 0
jle 0x42e9d9
mov edx, 0x10
sub edx, dword [ebp - 0x7f84]
mov dword [ebp - 0x7f9c], edx
mov dword [ebp - 0x7fa0], 0
jmp 0x42e91d
mov eax, dword [ebp - 0x7fa0]
add eax, 1
mov dword [ebp - 0x7fa0], eax
mov ecx, dword [ebp - 0x7fa0]
cmp ecx, dword [ebp - 0x7f9c]
jge 0x42e9a7
mov edx, dword [ebp - 0x7fa0]
cmp edx, dword [ebp - 0x7f98]
jge 0x42e9a7
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 0x42e90e
mov ecx, dword [ebp - 0x7f98]
sub ecx, dword [ebp - 0x7f9c]
mov dword [ebp - 0x7f98], ecx
cmp dword [ebp - 0x7f98], 0
jg 0x42e9c7
jmp 0x42ea7f
mov edx, dword [ebp - 0x7f88]
add edx, dword [ebp - 0x7f9c]
mov dword [ebp - 0x7f88], edx
mov dword [ebp - 0x7fa4], 0
jmp 0x42e9f4
mov eax, dword [ebp - 0x7fa4]
add eax, 1
mov dword [ebp - 0x7fa4], eax
mov ecx, dword [ebp - 0x7fa4]
cmp ecx, dword [ebp - 0x7f98]
jge 0x42ea77
mov edx, dword [ebp - 0x7f88]
add edx, dword [ebp - 0x7fa4]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x7fa4]
and ecx, 0x8000000f
jns 0x42ea24
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 0x42e9e5
xor eax, eax
jne 0x42e88b
jmp 0x42f084
cmp dword [ebp - 0x7f7c], 1
jne 0x42ec8a
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.0046ca80
mov dword [ebp - 0x7fac], eax
mov ecx, dword [ebp - 0x7f58]
mov dword [ebp - 0x7fa8], ecx
cmp dword [ebp - 0x7fac], 0
jle 0x42ebdf
mov edx, 0x10
sub edx, dword [ebp - 0x7fac]
mov dword [ebp - 0x7fc4], edx
mov dword [ebp - 0x7fc8], 0
jmp 0x42eb23
mov eax, dword [ebp - 0x7fc8]
add eax, 1
mov dword [ebp - 0x7fc8], eax
mov ecx, dword [ebp - 0x7fc8]
cmp ecx, dword [ebp - 0x7fc4]
jge 0x42ebad
mov edx, dword [ebp - 0x7fc8]
cmp edx, dword [ebp - 0x7fc0]
jge 0x42ebad
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 0x42eb14
mov ecx, dword [ebp - 0x7fc0]
sub ecx, dword [ebp - 0x7fc4]
mov dword [ebp - 0x7fc0], ecx
cmp dword [ebp - 0x7fc0], 0
jg 0x42ebcd
jmp 0x42ec85
mov edx, dword [ebp - 0x7fb0]
add edx, dword [ebp - 0x7fc4]
mov dword [ebp - 0x7fb0], edx
mov dword [ebp - 0x7fcc], 0
jmp 0x42ebfa
mov eax, dword [ebp - 0x7fcc]
add eax, 1
mov dword [ebp - 0x7fcc], eax
mov ecx, dword [ebp - 0x7fcc]
cmp ecx, dword [ebp - 0x7fc0]
jge 0x42ec7d
mov edx, dword [ebp - 0x7fb0]
add edx, dword [ebp - 0x7fcc]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x7fcc]
and ecx, 0x8000000f
jns 0x42ec2a
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 0x42ebeb
xor eax, eax
jne 0x42ea91
jmp 0x42f084
cmp dword [ebp - 0x7f7c], 2
jne 0x42ee90
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.0046ca80
mov dword [ebp - 0x7fd4], eax
lea ecx, [ebp - 0x7f54]
mov dword [ebp - 0x7fd0], ecx
cmp dword [ebp - 0x7fd4], 0
jle 0x42ede5
mov edx, 0x10
sub edx, dword [ebp - 0x7fd4]
mov dword [ebp - 0x7fec], edx
mov dword [ebp - 0x7ff0], 0
jmp 0x42ed29
mov eax, dword [ebp - 0x7ff0]
add eax, 1
mov dword [ebp - 0x7ff0], eax
mov ecx, dword [ebp - 0x7ff0]
cmp ecx, dword [ebp - 0x7fec]
jge 0x42edb3
mov edx, dword [ebp - 0x7ff0]
cmp edx, dword [ebp - 0x7fe8]
jge 0x42edb3
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 0x42ed1a
mov ecx, dword [ebp - 0x7fe8]
sub ecx, dword [ebp - 0x7fec]
mov dword [ebp - 0x7fe8], ecx
cmp dword [ebp - 0x7fe8], 0
jg 0x42edd3
jmp 0x42ee8b
mov edx, dword [ebp - 0x7fd8]
add edx, dword [ebp - 0x7fec]
mov dword [ebp - 0x7fd8], edx
mov dword [ebp - 0x7ff4], 0
jmp 0x42ee00
mov eax, dword [ebp - 0x7ff4]
add eax, 1
mov dword [ebp - 0x7ff4], eax
mov ecx, dword [ebp - 0x7ff4]
cmp ecx, dword [ebp - 0x7fe8]
jge 0x42ee83
mov edx, dword [ebp - 0x7fd8]
add edx, dword [ebp - 0x7ff4]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x7ff4]
and ecx, 0x8000000f
jns 0x42ee30
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 0x42edf1
xor eax, eax
jne 0x42ec97
jmp 0x42f084
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.0046ca80
mov dword [ebp - 0x7ffc], eax
lea ecx, [ebp - 0x7f6c]
mov dword [ebp - 0x7ff8], ecx
cmp dword [ebp - 0x7ffc], 0
jle 0x42efde
mov edx, 0x10
sub edx, dword [ebp - 0x7ffc]
mov dword [ebp - 0x8014], edx
mov dword [ebp - 0x8018], 0
jmp 0x42ef22
mov eax, dword [ebp - 0x8018]
add eax, 1
mov dword [ebp - 0x8018], eax
mov ecx, dword [ebp - 0x8018]
cmp ecx, dword [ebp - 0x8014]
jge 0x42efac
mov edx, dword [ebp - 0x8018]
cmp edx, dword [ebp - 0x8010]
jge 0x42efac
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 0x42ef13
mov ecx, dword [ebp - 0x8010]
sub ecx, dword [ebp - 0x8014]
mov dword [ebp - 0x8010], ecx
cmp dword [ebp - 0x8010], 0
jg 0x42efcc
jmp 0x42f084
mov edx, dword [ebp - 0x8000]
add edx, dword [ebp - 0x8014]
mov dword [ebp - 0x8000], edx
mov dword [ebp - 0x801c], 0
jmp 0x42eff9
mov eax, dword [ebp - 0x801c]
add eax, 1
mov dword [ebp - 0x801c], eax
mov ecx, dword [ebp - 0x801c]
cmp ecx, dword [ebp - 0x8010]
jge 0x42f07c
mov edx, dword [ebp - 0x8000]
add edx, dword [ebp - 0x801c]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x801c]
and ecx, 0x8000000f
jns 0x42f029
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 0x42efea
xor eax, eax
jne 0x42ee90
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 0x42e7e5
xor edx, edx
jne 0x42e5c7
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.0046ca80
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 0x42f344
mov edx, dword [ebp - 0x8044]
mov dword [ebp - 0x8060], edx
cmp dword [ebp - 0x8060], 0
jg 0x42f352
jmp 0x42fbed
push 0
push 0x10000
mov eax, dword [ebp - 0x8020]
push eax
mov ecx, dword [ebp - 0x8024]
push ecx
call fcn.0045f530
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.0045f470
mov dword [ebp - 0x8064], eax
cmp dword [ebp - 0x8064], 0
jne 0x42f59b
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.0046ca80
mov dword [ebp - 0x806c], eax
mov ecx, dword [ebp - 0x8028]
mov dword [ebp - 0x8068], ecx
cmp dword [ebp - 0x806c], 0
jle 0x42f4f0
mov edx, 0x10
sub edx, dword [ebp - 0x806c]
mov dword [ebp - 0x8084], edx
mov dword [ebp - 0x8088], 0
jmp 0x42f434
mov eax, dword [ebp - 0x8088]
add eax, 1
mov dword [ebp - 0x8088], eax
mov ecx, dword [ebp - 0x8088]
cmp ecx, dword [ebp - 0x8084]
jge 0x42f4be
mov edx, dword [ebp - 0x8088]
cmp edx, dword [ebp - 0x8080]
jge 0x42f4be
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 0x42f425
mov ecx, dword [ebp - 0x8080]
sub ecx, dword [ebp - 0x8084]
mov dword [ebp - 0x8080], ecx
cmp dword [ebp - 0x8080], 0
jg 0x42f4de
jmp 0x42f596
mov edx, dword [ebp - 0x8070]
add edx, dword [ebp - 0x8084]
mov dword [ebp - 0x8070], edx
mov dword [ebp - 0x808c], 0
jmp 0x42f50b
mov eax, dword [ebp - 0x808c]
add eax, 1
mov dword [ebp - 0x808c], eax
mov ecx, dword [ebp - 0x808c]
cmp ecx, dword [ebp - 0x8080]
jge 0x42f58e
mov edx, dword [ebp - 0x8070]
add edx, dword [ebp - 0x808c]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x808c]
and ecx, 0x8000000f
jns 0x42f53b
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 0x42f4fc
xor eax, eax
jne 0x42f3a2
jmp 0x42fb9b
cmp dword [ebp - 0x8064], 1
jne 0x42f7a1
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.0046ca80
mov dword [ebp - 0x8094], eax
mov ecx, dword [ebp - 0x8040]
mov dword [ebp - 0x8090], ecx
cmp dword [ebp - 0x8094], 0
jle 0x42f6f6
mov edx, 0x10
sub edx, dword [ebp - 0x8094]
mov dword [ebp - 0x80ac], edx
mov dword [ebp - 0x80b0], 0
jmp 0x42f63a
mov eax, dword [ebp - 0x80b0]
add eax, 1
mov dword [ebp - 0x80b0], eax
mov ecx, dword [ebp - 0x80b0]
cmp ecx, dword [ebp - 0x80ac]
jge 0x42f6c4
mov edx, dword [ebp - 0x80b0]
cmp edx, dword [ebp - 0x80a8]
jge 0x42f6c4
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 0x42f62b
mov ecx, dword [ebp - 0x80a8]
sub ecx, dword [ebp - 0x80ac]
mov dword [ebp - 0x80a8], ecx
cmp dword [ebp - 0x80a8], 0
jg 0x42f6e4
jmp 0x42f79c
mov edx, dword [ebp - 0x8098]
add edx, dword [ebp - 0x80ac]
mov dword [ebp - 0x8098], edx
mov dword [ebp - 0x80b4], 0
jmp 0x42f711
mov eax, dword [ebp - 0x80b4]
add eax, 1
mov dword [ebp - 0x80b4], eax
mov ecx, dword [ebp - 0x80b4]
cmp ecx, dword [ebp - 0x80a8]
jge 0x42f794
mov edx, dword [ebp - 0x8098]
add edx, dword [ebp - 0x80b4]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x80b4]
and ecx, 0x8000000f
jns 0x42f741
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 0x42f702
xor eax, eax
jne 0x42f5a8
jmp 0x42fb9b
cmp dword [ebp - 0x8064], 2
jne 0x42f9a7
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.0046ca80
mov dword [ebp - 0x80bc], eax
lea ecx, [ebp - 0x803c]
mov dword [ebp - 0x80b8], ecx
cmp dword [ebp - 0x80bc], 0
jle 0x42f8fc
mov edx, 0x10
sub edx, dword [ebp - 0x80bc]
mov dword [ebp - 0x80d4], edx
mov dword [ebp - 0x80d8], 0
jmp 0x42f840
mov eax, dword [ebp - 0x80d8]
add eax, 1
mov dword [ebp - 0x80d8], eax
mov ecx, dword [ebp - 0x80d8]
cmp ecx, dword [ebp - 0x80d4]
jge 0x42f8ca
mov edx, dword [ebp - 0x80d8]
cmp edx, dword [ebp - 0x80d0]
jge 0x42f8ca
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 0x42f831
mov ecx, dword [ebp - 0x80d0]
sub ecx, dword [ebp - 0x80d4]
mov dword [ebp - 0x80d0], ecx
cmp dword [ebp - 0x80d0], 0
jg 0x42f8ea
jmp 0x42f9a2
mov edx, dword [ebp - 0x80c0]
add edx, dword [ebp - 0x80d4]
mov dword [ebp - 0x80c0], edx
mov dword [ebp - 0x80dc], 0
jmp 0x42f917
mov eax, dword [ebp - 0x80dc]
add eax, 1
mov dword [ebp - 0x80dc], eax
mov ecx, dword [ebp - 0x80dc]
cmp ecx, dword [ebp - 0x80d0]
jge 0x42f99a
mov edx, dword [ebp - 0x80c0]
add edx, dword [ebp - 0x80dc]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x80dc]
and ecx, 0x8000000f
jns 0x42f947
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 0x42f908
xor eax, eax
jne 0x42f7ae
jmp 0x42fb9b
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.0046ca80
mov dword [ebp - 0x80e4], eax
lea ecx, [ebp - 0x8054]
mov dword [ebp - 0x80e0], ecx
cmp dword [ebp - 0x80e4], 0
jle 0x42faf5
mov edx, 0x10
sub edx, dword [ebp - 0x80e4]
mov dword [ebp - 0x80fc], edx
mov dword [ebp - 0x8100], 0
jmp 0x42fa39
mov eax, dword [ebp - 0x8100]
add eax, 1
mov dword [ebp - 0x8100], eax
mov ecx, dword [ebp - 0x8100]
cmp ecx, dword [ebp - 0x80fc]
jge 0x42fac3
mov edx, dword [ebp - 0x8100]
cmp edx, dword [ebp - 0x80f8]
jge 0x42fac3
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 0x42fa2a
mov ecx, dword [ebp - 0x80f8]
sub ecx, dword [ebp - 0x80fc]
mov dword [ebp - 0x80f8], ecx
cmp dword [ebp - 0x80f8], 0
jg 0x42fae3
jmp 0x42fb9b
mov edx, dword [ebp - 0x80e8]
add edx, dword [ebp - 0x80fc]
mov dword [ebp - 0x80e8], edx
mov dword [ebp - 0x8104], 0
jmp 0x42fb10
mov eax, dword [ebp - 0x8104]
add eax, 1
mov dword [ebp - 0x8104], eax
mov ecx, dword [ebp - 0x8104]
cmp ecx, dword [ebp - 0x80f8]
jge 0x42fb93
mov edx, dword [ebp - 0x80e8]
add edx, dword [ebp - 0x8104]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x8104]
and ecx, 0x8000000f
jns 0x42fb40
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 0x42fb01
xor eax, eax
jne 0x42f9a7
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 0x42f2fc
xor edx, edx
jne 0x42f0de
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.00443360
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.004427c0
add esp, 0x14
mov ecx, dword [ebp - 0x8164]
mov dword [ecx + 0x74], eax
mov edx, dword [ebp - 0x8164]
cmp dword [edx + 0x74], 0
je 0x42fd3b
mov dword [ebp - 0x8108], 1
lea eax, [ebp - 0x4764]
mov dword [ebp - 0x8114], eax
mov dword [ebp - 0x8110], str.3E57D6B23F87120B1ED756AEB27AE36151EE869194CBDD3120CDE66BF48043D1
mov ecx, dword [ebp - 0x8114]
push ecx
call fcn.00443360
add esp, 4
mov dword [ebp - 0x810c], eax
mov edx, dword [ebp - 0x8110]
push edx
call fcn.00443360
add esp, 4
mov dword [ebp - 0x8118], eax
mov dword [ebp - 0x8108], 1
mov eax, dword [ebp - 0x810c]
cmp eax, dword [ebp - 0x8118]
je 0x42fcca
mov dword [ebp - 0x8108], 0
jmp 0x42fd25
mov dword [ebp - 0x811c], 0
jmp 0x42fce5
mov ecx, dword [ebp - 0x811c]
add ecx, 1
mov dword [ebp - 0x811c], ecx
mov edx, dword [ebp - 0x811c]
cmp edx, dword [ebp - 0x810c]
jge 0x42fd25
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 0x42fd23
mov dword [ebp - 0x8108], 0
jmp 0x42fd25
jmp 0x42fcd6
cmp dword [ebp - 0x8108], 0
je 0x42fd3b
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 0x42fd6a
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 0x42fdbb
mov eax, dword [ebp - 0x8120]
movzx ecx, word [ebp + eax*2 - 0x45b8]
cmp ecx, 0x40
jne 0x42fd9c
mov dword [ebp - 0x7988], 1
jmp 0x42fdb9
mov edx, dword [ebp - 0x8120]
movzx eax, word [ebp + edx*2 - 0x45b8]
cmp eax, 0x2e
jne 0x42fdb9
mov dword [ebp - 0x7994], 1
jmp 0x42fd5b
cmp dword [ebp - 0x7988], 0
je 0x42fdcd
cmp dword [ebp - 0x7994], 0
jne 0x42fde4
push 0
push 0
push 0
push 0x431180
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
jmp 0x42fe01
push 0
push 0
mov ecx, dword [ebp - 0x8164]
mov edx, dword [ecx + 0x74]
push edx
push 0x431180
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.00443360
add esp, 4
shl eax, 1
push eax
lea eax, [ebp - 0x4764]
push eax
push 0x48a18c
call fcn.00443300
add esp, 0xc
lea ecx, [ebp - 0x224]
push ecx
lea ecx, [ebp - 0x7980]
call fcn.004052f0
mov byte [ebp - 4], 4
push 0x5c
lea ecx, [ebp - 0x7980]
call fcn.0040da90
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.00405510
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.004070b0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x8150]
call fcn.00443840
push 0x2e
lea ecx, [ebp - 0x7980]
call fcn.0040da90
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x22c], 0
jle 0x42ff2b
mov eax, dword [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x8154]
push ecx
lea ecx, [ebp - 0x7980]
call fcn.0040db90
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.004070b0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x8154]
call fcn.00443840
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 0x42ff46
mov edx, dword [ebp - 0x8178]
sub edx, dword [ebp - 0x817c]
sar edx, 1
mov dword [ebp - 0x8184], edx
je 0x42ff9f
push 0x47757c
lea ecx, [ebp - 0x7980]
call fcn.00405390
lea eax, [ebp - 0x48e4]
push eax
lea ecx, [ebp - 0x7980]
call fcn.00405390
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0x7980]
push edx
lea eax, [ebp - 0x8158]
push eax
call fcn.004314d0
add esp, 0xc
mov dword [ebp - 0x8188], eax
mov ecx, dword [ebp - 0x8188]
call fcn.00419850
push eax
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fb20
lea ecx, [ebp - 0x8158]
call fcn.00443840
cmp dword [ebp - 0x47e4], 0
jle 0x430048
cmp dword [ebp - 0x47e0], 0
jle 0x430048
cmp dword [ebp - 0x47e4], 0x280
je 0x430048
cmp dword [ebp - 0x47e0], 0x168
je 0x430048
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.0040fe40
push 0
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fbd0
jmp 0x430058
push 3
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fa60
lea eax, [ebp - 0x224]
push eax
lea ecx, [ebp - 0x230]
call fcn.004052f0
mov byte [ebp - 4], 7
cmp dword [ebp - 0xb60], 0
jne 0x4300a9
lea ecx, [ebp - 0x4796]
push ecx
lea ecx, [ebp - 0x230]
call fcn.00405390
mov edx, dword [ebp - 0xb5c]
push edx
lea ecx, [ebp - 0x230]
call fcn.00431490
push eax
call fcn.0042afc0
add esp, 8
jmp 0x430149
push 0x2e
lea ecx, [ebp - 0x230]
call fcn.0040da90
mov dword [ebp - 0x8124], eax
mov eax, dword [ebp - 0x8124]
push eax
lea ecx, [ebp - 0x815c]
push ecx
lea ecx, [ebp - 0x230]
call fcn.0040db90
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.004070b0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x815c]
call fcn.00443840
push str..ppvm
lea ecx, [ebp - 0x230]
call fcn.00405390
lea ecx, [ebp - 0x4796]
push ecx
lea ecx, [ebp - 0x230]
call fcn.00405390
mov edx, dword [ebp - 0xb5c]
push edx
lea ecx, [ebp - 0x230]
call fcn.00431490
push eax
call fcn.0042afc0
add esp, 8
lea eax, [ebp - 0x230]
push eax
mov ecx, dword [ebp - 0x8164]
add ecx, 0x78
call fcn.004070b0
lea ecx, [ebp - 0x797c]
push ecx
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0040fb00
push 0x3e8
mov ecx, dword [ebp - 0x8164]
add ecx, 0x20
call fcn.0043af70
mov dword [ebp - 0x796c], eax
cmp dword [ebp - 0x796c], 0
je 0x4301c1
lea edx, [ebp - 0x797c]
push edx
mov ecx, dword [ebp - 0x796c]
call fcn.004083a0
push 0
mov ecx, dword [ebp - 0x796c]
call fcn.0042d6c0
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x796c]
call fcn.004082e0
lea eax, [ebp - 0x1b60]
push eax
mov ecx, dword [ebp - 0x8164]
add ecx, 0x7c
call fcn.00405370
lea ecx, [ebp - 0x4360]
push ecx
mov ecx, dword [ebp - 0x8164]
add ecx, 0x80
call fcn.00401900
cmp dword [ebp - 0x43f4], 0
jle 0x430208
mov ecx, dword [ebp - 0x8164]
add ecx, 0x80
call fcn.00401a40
cmp dword [ebp - 0x43f0], 0
jle 0x430216
call fcn.004437d0
mov edx, dword [ebp - 0x8164]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0x8164]
add ecx, 0x80
call fcn.00404700
push 0
push 0x2710
push 1
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ad90
push 0
push 0x3e8
push 2
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ad90
mov ecx, dword [ebp - 0x8164]
cmp dword [ecx + 0xf8], 1
jle 0x430285
push 0
push 0x3e8
push 3
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ad90
push 0
push 0x3e8
push 4
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ad90
push 0
push 0x7d0
push 5
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ad90
mov edx, dword [ebp - 0x8164]
cmp dword [edx + 0x390], 0
je 0x4302d9
push 0
push 0x1388
push 7
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ad90
mov eax, dword [ebp - 0x8164]
cmp dword [eax + 0x2fc], 0
jne 0x4302ff
push 0
push 0x7d0
push 8
mov ecx, dword [ebp - 0x8164]
add ecx, 4
call fcn.0041ad90
push 0
push 0
mov ecx, dword [ebp - 0x8164]
push ecx
push 0x4311e0
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.00443840
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7980]
call fcn.00443840
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00443840
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.0045670b
mov esp, ebp
pop ebp
ret 0x10