Function at 0x10062550
Capabilities:
Encode data using xor
Generate random numbers using the delphi lcg
Hash data with crc32
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a1e70
mov eax, dword fs:[0]
push eax
mov eax, 0x330c
mov dword fs:[0], esp
call fcn.1009d950
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, ecx
push edi
mov dword [ebp - 0x34], edx
mov edx, 0x800
mov dword [ebp - 0x50], ebx
mov dword [esi + 0x6418], 0
lea ecx, [esi + 0x116a0]
mov dword [esi + 0x10f0], 0
mov dword [esi + 0x10f4], 0
mov dword [esi + 0x10f8], 0
mov dword [esi + 0x10fc], 0
mov dword [esi + 0x10e8], 0
mov edi, dword [ebx + 0x58]
mov dword [ebp - 0x40], 0
sub edi, ecx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
jmp 0x100625f0
lea eax, [edx + 0x7ffff7fe]
test eax, eax
je 0x10062617
movzx eax, word [ecx + edi]
test ax, ax
je 0x10062610
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x100625f0
jmp 0x10062614
test edx, edx
jne 0x10062617
sub ecx, 2
xor eax, eax
lea edi, [esi + 0x10c0]
mov word [ecx], ax
xor edx, edx
cmp dword [edi], eax
je 0x10062649
mov ecx, 0x18b
call fcn.1006e460
push eax
lea eax, [esi + 0x136bc]
push 0x800
push eax
call fcn.10061500
add esp, 0xc
jmp 0x10062674
push dword [esi + 0x9520]
mov ecx, 0x187
push dword [esi + 0x6438]
call fcn.1006e460
push eax
lea eax, [esi + 0x136bc]
push 0x800
push eax
call fcn.10061500
add esp, 0x14
mov edx, dword [esi + 0x6438]
lea ecx, [esi + 0x136bc]
push edx
lea eax, [edx + 1]
mov edx, dword [esi + 0x9520]
mov dword [esi + 0x6438], eax
call fcn.1005bd50
add esp, 4
mov ecx, 9
test eax, eax
jne 0x1006427f
push dword [ebx + 0x58]
mov eax, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x38], eax
call eax
mov ecx, dword [ebx + 0x58]
mov dword [ebx + 0x20], eax
cmp dword [esi + 0x14d68], 0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x18], ecx
je 0x100626e3
push ecx
mov edx, eax
call fcn.1005c220
add esp, 4
test eax, eax
je 0x100626dd
mov eax, 0xfde9
jmp 0x100626ea
lea edi, [esi + 0x10c0]
movzx eax, word [esi + 0x9c]
push 0
push 0
push 0
push 0
push dword [ebp - 0x2c]
push dword [ebp - 0x18]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, dword [ebx + 0x20]
xor edx, edx
mov dword [ebx + 0x24], eax
mov eax, dword [ebx + 0x58]
cmp word [eax + ecx*2 - 2], 0x2f
mov eax, 0xffff
mov word [ebx + 0x38], ax
mov eax, dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
sete dl
cmp dword [edi], 0
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x2c], eax
je 0x100627fc
cmp dword [esi + 0x10bc], 0
je 0x10062759
or edi, 0xffffffff
cmp dword [esi + 0x1110], 0
je 0x10062750
mov dword [ebp - 0x14], SysReAllocString
jmp 0x10062768
mov dword [ebp - 0x14], 0xf
jmp 0x10062768
mov eax, dword [esi + 0x10cc]
mov edi, dword [esi + 0x10c8]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
mov ecx, dword [ebp - 0x48]
lea eax, [ebx + 0xb0]
mov edx, dword [ebp - 0x4c]
test eax, eax
je 0x100627a9
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebx + 0xa8]
test eax, eax
je 0x100627b8
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebx + 0xa0]
test eax, eax
je 0x100627c7
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToDosDateTime]
movzx ecx, word [ebp - 0x28]
movzx eax, word [ebp - 0x44]
shl ecx, 0x10
or ecx, eax
mov dword [ebp - 0x18], 0
mov dword [ebx + 8], ecx
mov dword [ebp - 0x24], 0
jmp 0x10062b82
mov edi, dword [ebx + 0x48]
test edi, edi
je 0x10062a77
cmp edi, dword [esi + 0x10e0]
je 0x10062a77
push edi
call dword [ebp - 0x38]
cmp eax, 0x800
jge 0x10062ce7
cmp edi, dword [esi + 0x96f0]
jne 0x10062897
mov eax, dword [esi + 0x96f8]
mov edi, 0xfffffffe
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x4c]
push eax
movzx eax, word [esi + 0x96f4]
push eax
movzx eax, word [esi + 0x96f6]
push eax
mov dword [ebp - 0x14], 0xffffffff
call dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x48]
lea eax, [ebx + 0xb0]
mov edx, dword [ebp - 0x4c]
test eax, eax
je 0x1006286b
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebx + 0xa8]
test eax, eax
je 0x1006287a
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebx + 0xa0]
test eax, eax
je 0x10062889
mov dword [eax], edx
mov dword [eax + 4], ecx
mov edx, dword [esi + 0x96f4]
or ecx, 0xffffffff
jmp 0x10062b35
lea ecx, [ebp - 0x3314]
mov edx, 0x800
mov eax, ecx
sub edi, eax
lea eax, [edx + 0x7ffff7fe]
test eax, eax
je 0x100628cd
movzx eax, word [ecx + edi]
test ax, ax
je 0x100628c6
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x100628a6
jmp 0x100628ca
test edx, edx
jne 0x100628cd
sub ecx, 2
xor eax, eax
mov word [ecx], ax
lea eax, [ebp - 0x3314]
push eax
call dword [ebp - 0x38]
mov edi, eax
mov esi, 0x5c
lea eax, [ebp - 0x3314]
lea esp, [esp]
movzx ecx, word [eax]
test cx, cx
je 0x1006290b
cmp ecx, 0x2f
jne 0x10062900
mov word [eax], si
push eax
call dword [sym.imp.USER32.dll_CharNextW]
test eax, eax
jne 0x100628f0
lea eax, [ebp - 0x3314]
mov dword [ebp - 0x24], 0
push eax
call dword [ebp - 0x38]
mov esi, dword [ebp + 8]
test eax, eax
jle 0x1006292e
cmp word [ebp + eax*2 - 0x3316], 0x2f
je 0x1006293d
lea ecx, [ebp - 0x3314]
call fcn.10050740
test eax, eax
je 0x1006294e
xor eax, eax
mov dword [ebp - 0x24], 1
mov word [ebp + edi*2 - 0x3316], ax
lea edx, [ebp - 0x2ec]
lea ecx, [ebp - 0x3314]
call fcn.10065560
mov edi, eax
cmp edi, 0xffffffff
je 0x10062a1f
mov eax, dword [ebp - 0x2ec]
lea edx, [ebx + 0xb0]
and eax, 0x37
mov dword [ebp - 0x24], eax
test edx, edx
je 0x10062991
mov eax, dword [ebp - 0x2e8]
mov ecx, dword [ebp - 0x2e4]
mov dword [edx], eax
mov dword [edx + 4], ecx
lea edx, [ebx + 0xa8]
test edx, edx
je 0x100629ac
mov eax, dword [ebp - 0x2e0]
mov ecx, dword [ebp - 0x2dc]
mov dword [edx], eax
mov dword [edx + 4], ecx
lea edx, [ebx + 0xa0]
test edx, edx
je 0x100629c7
mov eax, dword [ebp - 0x2d8]
mov ecx, dword [ebp - 0x2d4]
mov dword [edx], eax
mov dword [edx + 4], ecx
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x2d8]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToDosDateTime]
test edi, edi
je 0x10062a09
mov eax, dword [edi + 0x1000]
cmp eax, 0xffffffff
je 0x10062a00
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push edi
call fcn.10086818
add esp, 4
mov ecx, dword [ebp - 0x2d0]
xor edi, edi
or edi, dword [ebp - 0x2cc]
mov dword [ebp - 0x14], ecx
jmp 0x10062b28
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x10062a34
mov edi, 0xfffffffd
mov dword [ebp - 0x14], 0xffffffff
jmp 0x10062a39
xor edi, edi
mov dword [ebp - 0x14], edi
shl eax, 4
xor ecx, ecx
mov dword [ebp - 0x24], eax
xor edx, edx
lea eax, [ebx + 0xb0]
test eax, eax
je 0x10062a52
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebx + 0xa8]
test eax, eax
je 0x10062a61
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebx + 0xa0]
test eax, eax
je 0x10062a70
mov dword [eax], edx
mov dword [eax + 4], ecx
xor edx, edx
jmp 0x10062b45
cmp dword [esi + 0x10bc], 0
je 0x10062a9e
or edi, 0xffffffff
cmp dword [esi + 0x1110], 0
je 0x10062a95
mov dword [ebp - 0x14], SysReAllocString
jmp 0x10062aad
mov dword [ebp - 0x14], 0xf
jmp 0x10062aad
mov eax, dword [esi + 0x10cc]
mov edi, dword [esi + 0x10c8]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
mov ecx, dword [ebp - 0x5c]
lea eax, [ebx + 0xb0]
mov edx, dword [ebp - 0x60]
test eax, eax
je 0x10062aee
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebx + 0xa8]
test eax, eax
je 0x10062afd
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebx + 0xa0]
test eax, eax
je 0x10062b0c
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToDosDateTime]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x24], 0
movzx edx, word [ebp - 0x44]
movzx eax, word [ebp - 0x28]
shl edx, 0x10
or edx, eax
test edx, edx
je 0x10062b45
cmp ecx, 0xffffffff
jg 0x10062b5a
jl 0x10062b45
cmp edi, 0xfffffffe
jae 0x10062b5a
cmp edi, 0xfffffffd
jne 0x10062ce7
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xffffffff
jne 0x10062ce7
mov dword [ebx + 8], edx
cmp dword [esi + 0x1110], 0
je 0x10062b6f
cmp dword [esi + 0x1114], 0
je 0x10062b82
test ecx, ecx
jg 0x10063c2c
jl 0x10062b82
cmp edi, 0xffffffff
jae 0x10063c2c
cmp edi, 0xfffffffe
jne 0x10062b99
cmp dword [ebp - 0x14], 0xffffffff
jne 0x10062b99
xor edi, edi
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x14], edi
mov edx, dword [esi + 0x849c]
mov dword [esi + 0x30], 0xffffffff
mov dword [esi + 0x68], 0
test edx, edx
je 0x10062bc4
mov ecx, dword [ebx + 0x48]
call fcn.100623d0
test eax, eax
lea eax, [ebx + 0x48]
je 0x10062bc7
xor edx, edx
jmp 0x10062bcd
lea eax, [ebx + 0x48]
mov edx, dword [esi + 0x8484]
cmp dword [ebp - 0x18], 0
mov dword [ebp - 0x3c], edx
je 0x10062bef
xor edx, edx
mov dword [esi + 0x2c], 0xffffffff
xor edi, edi
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x14], edx
or eax, 0xffffffff
jmp 0x10062d00
cmp dword [esi + 0x10c0], 0
je 0x10062c07
mov dword [esi + 0x2c], 0xffffffff
or eax, 0xffffffff
jmp 0x10062d00
mov eax, dword [eax]
lea ecx, [esi + 0x136bc]
sub eax, ecx
mov edx, 0x800
mov dword [ebp - 0x28], eax
lea esp, [esp]
lea eax, [edx + 0x7ffff7fe]
test eax, eax
je 0x10062c4a
mov eax, dword [ebp - 0x28]
movzx eax, word [ecx + eax]
test ax, ax
je 0x10062c43
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x10062c20
jmp 0x10062c47
test edx, edx
jne 0x10062c4a
sub ecx, 2
xor eax, eax
mov word [ecx], ax
lea eax, [esi + 0x136bc]
test eax, eax
je 0x10062c7e
mov ebx, 0x5c
mov edi, edi
movzx ecx, word [eax]
test cx, cx
je 0x10062c7b
cmp ecx, 0x2f
jne 0x10062c70
mov word [eax], bx
push eax
call dword [sym.imp.USER32.dll_CharNextW]
test eax, eax
jne 0x10062c60
mov ebx, dword [ebp - 0x50]
push 0x104
lea eax, [esi + 0x136bc]
push eax
lea ecx, [ebp - 0x64]
call fcn.1004d280
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x10062c9c
mov eax, dword [ebp - 0x64]
push 0
push 0x80
push 3
push 0
push 3
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x60]
test ecx, ecx
je 0x10062cd2
push ecx
call fcn.10086818
mov eax, dword [ebp - 0x28]
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x2c], eax
cmp eax, 0xffffffff
jne 0x10062cfd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, 0x12
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x3c]
cmp dword [esi + 0x10c0], 0
je 0x10062d17
mov eax, dword [esi + 0x10c8]
mov ecx, dword [esi + 0x10cc]
jmp 0x10062d23
mov ecx, eax
call fcn.1006de30
mov ecx, edx
mov edx, dword [ebp - 0x3c]
mov dword [esi + 0x40], eax
mov eax, edi
mov dword [esi + 0x44], ecx
mov ecx, dword [ebp - 0x14]
or eax, ecx
jne 0x10062d36
xor edx, edx
jmp 0x10062d40
cmp edx, 0xffffffff
jne 0x10062d43
mov edx, 8
mov dword [ebp - 0x3c], edx
cmp dword [esi + 0x1110], 0
mov dword [esi + 0x126a8], 1
mov dword [esi + 0x14b18], 0
je 0x10062d6a
mov eax, 0x2d
mov word [ebx], ax
jmp 0x10062d8f
xor eax, eax
cmp edx, 9
sete al
add eax, 0x14
mov word [ebx], ax
test edx, edx
jne 0x10062d81
lea eax, [edx + 0xa]
jmp 0x10062d8c
xor eax, eax
cmp edx, 9
sete al
add eax, 0x14
movzx eax, ax
mov word [ebx + 2], ax
cmp dword [esi + 0x126b0], 8
jne 0x10062da2
mov dword [ebx], 0x330033
mov byte [ebx + 1], 0
mov eax, 0xb00
or word [ebx], ax
mov eax, 8
mov word [ebx + 4], ax
mov eax, dword [ebx + 8]
shl eax, 0x10
mov dword [ebx + 0xc], eax
cmp dword [esi + 0x84a0], 0
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x44], 0xfff7
je 0x10062e7c
mov eax, 9
mov word [ebx + 4], ax
cmp dword [esi + 0x126b0], 8
jne 0x10062df6
mov eax, 0x49
mov word [ebx + 4], ax
cmp dword [esi + 0x9524], 0
jne 0x10062e4f
cmp dword [esi + 0x10bc], 0
jne 0x10062e4f
cmp dword [ebp - 0x18], 0
mov dword [ebp - 0x28], 1
jne 0x10062e41
mov dword [esi + 0x126a4], 0
mov dword [ebx + 0xc], 0
mov dword [esi + 0x126a8], 1
mov dword [esi + 0x14b18], 0
mov dword [ebp - 0x28], 0
mov ax, word [ebx + 4]
and ax, word [ebp - 0x44]
mov word [ebx + 4], ax
jmp 0x10062e7c
cmp dword [ebp - 0x18], 0
mov dword [ebp - 0x28], 1
jne 0x10062e7c
mov dword [esi + 0x126a8], 0
mov dword [esi + 0x14b18], 1
or word [ebx + 4], 8
mov dword [ebp - 0x28], 1
mov dword [esi + 0x126a0], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
mov dword [ebx + 0x34], 0
cmp dword [esi + 0x9524], 0
je 0x10062f0b
cmp dword [ebp - 0x18], 0
mov eax, dword [esi + 0x9528]
mov dword [ebx + 0x34], eax
jne 0x10062f0b
test edx, edx
jne 0x10062f0b
cmp dword [esi + 0x126b0], 8
movzx eax, word [ebx + 4]
jne 0x10062ecd
or eax, 8
mov word [ebx + 4], ax
jmp 0x10062efe
and eax, 0xfff7
mov edx, esi
mov word [ebx + 4], ax
mov ecx, dword [esi + 0x2c]
call fcn.10064f80
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x14]
mov dword [ebx + 0xc], eax
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
mov dword [ebp - 0x28], 0
cmp dword [esi + 0xa4], 0
jne 0x1006427a
mov ax, word [ebx + 4]
mov word [ebx + 0x3a], ax
mov word [ebx + 6], dx
test edx, edx
jne 0x10062f2d
test ecx, ecx
jl 0x10062f2d
jg 0x10062f25
test edi, edi
jb 0x10062f2d
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x14], ecx
jmp 0x10062f49
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
test ecx, ecx
jl 0x10062f45
jg 0x10062f49
test edi, edi
jae 0x10062f49
xor edi, edi
xor ecx, ecx
mov eax, 0xffff
mov dword [ebx + 0x18], edi
mov dword [ebx + 0x1c], ecx
cmp word [ebx + 0x38], ax
jne 0x10062f67
xor eax, eax
mov dword [ebp - 0x1c], 1
mov word [ebx + 0x38], ax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x3c], eax
mov eax, dword [esi + 0x9500]
mov ecx, dword [esi + 0x9504]
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], ecx
cmp dword [esi + 0x1118], 0
je 0x10062f9a
cmp dword [esi + 0x1120], 0
jne 0x10062f9a
cmp dword [esi + 0x1124], 0
je 0x10062fa7
cmp dword [esi + 0x112c], 0
je 0x10063298
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x22f0]
mov dword [ebp - 0x14], eax
mov esi, ecx
mov eax, dword [ebx + 0x58]
mov edi, 0x800
sub eax, esi
mov dword [ebp - 0x24], eax
lea eax, [edi + 0x7ffff7fe]
test eax, eax
je 0x10062fec
mov eax, dword [ebp - 0x24]
movzx eax, word [ecx + eax]
test ax, ax
je 0x10062fe5
mov word [ecx], ax
add ecx, 2
sub edi, 1
jne 0x10062fc2
jmp 0x10062fe9
test edi, edi
jne 0x10062fec
sub ecx, 2
xor eax, eax
mov edi, 0x800
mov word [ecx], ax
lea ecx, [ebp - 0x12f0]
mov eax, dword [ebx + 0x48]
mov esi, ecx
sub eax, esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x24], eax
lea esp, [esp]
lea eax, [edi + 0x7ffff7fe]
test eax, eax
je 0x1006303a
mov eax, dword [ebp - 0x24]
movzx eax, word [ecx + eax]
test ax, ax
je 0x10063033
mov word [ecx], ax
add ecx, 2
sub edi, 1
jne 0x10063010
jmp 0x10063037
test edi, edi
jne 0x1006303a
sub ecx, 2
xor eax, eax
mov word [ecx], ax
cmp dword [ebx + 0x90], eax
jbe 0x10063091
mov eax, dword [ebx + 0xb0]
mov ecx, dword [ebx + 0xb4]
mov dword [ebp - 0x2314], eax
mov eax, dword [ebx + 0xa0]
mov dword [ebp - 0x2310], ecx
mov ecx, dword [ebx + 0xa4]
mov dword [ebp - 0x230c], eax
mov eax, dword [ebx + 0xa8]
mov dword [ebp - 0x2308], ecx
mov ecx, dword [ebx + 0xac]
mov dword [ebp - 0x2304], eax
mov dword [ebp - 0x2300], ecx
jmp 0x100630d0
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x60]
push ecx
push eax
shr eax, 0x10
push eax
call dword [ebp - 0x2c]
test eax, eax
je 0x100630b5
lea eax, [ebp - 0x2314]
push eax
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
mov eax, dword [ebp - 0x2314]
mov ecx, dword [ebp - 0x2310]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x230c], eax
mov dword [ebp - 0x2308], ecx
mov eax, dword [ebx + 0x3c]
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x22fc], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x22f8], eax
mov eax, dword [esi + 0x1118]
mov dword [ebp - 0x22f4], ecx
test eax, eax
je 0x1006327c
cmp dword [esi + 0x1120], 0
jne 0x1006327c
cmp dword [esi + 0x1124], 0
jne 0x1006327c
push dword [esi + 0x111c]
lea ecx, [ebp - 0x2314]
push ecx
call eax
push dword [ebx + 0x58]
mov edi, dword [ebp - 0x38]
call edi
cmp eax, 0x7ff
jge 0x1006313d
push dword [ebx + 0x58]
call edi
mov edi, eax
jmp 0x10063142
mov edi, 0x7ff
lea eax, [ebp - 0x22f0]
push eax
call dword [ebp - 0x38]
cmp eax, edi
jl 0x10063193
push dword [ebx + 0x58]
call fcn.10086818
mov edi, dword [ebp - 0x38]
lea eax, [ebp - 0x22f0]
add esp, 4
push eax
call edi
cmp eax, 0x7ff
jge 0x1006317b
lea eax, [ebp - 0x22f0]
push eax
call edi
mov edi, eax
jmp 0x10063180
mov edi, 0x7ff
lea eax, [edi*2 + 2]
push eax
call fcn.1008680d
add esp, 4
mov dword [ebx + 0x58], eax
mov ecx, dword [ebx + 0x58]
lea eax, [ebp - 0x22f0]
push eax
lea edx, [edi + 1]
call fcn.1005c3b0
push dword [ebx + 0x58]
call dword [ebp - 0x38]
mov ecx, dword [ebx + 0x58]
mov edx, eax
push esi
mov dword [ebx + 0x20], eax
call fcn.1005c1d0
mov ecx, dword [ebp - 0x2308]
lea edx, [ebx + 8]
mov dword [ebx + 0x24], eax
add esp, 4
mov eax, dword [ebp - 0x230c]
mov dword [ebx + 0xa0], eax
mov eax, dword [ebp - 0x2304]
mov dword [ebx + 0xa4], ecx
mov ecx, dword [ebp - 0x2300]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebp - 0x2314]
mov dword [ebx + 0xac], ecx
mov ecx, dword [ebp - 0x2310]
mov dword [ebx + 0xb0], eax
xor eax, eax
mov dword [ebx + 0xb4], ecx
lea ecx, [ebp - 0x230c]
mov dword [ebx + 0x94], 0x20000a
mov dword [ebx + 0x98], 0
mov dword [ebx + 0x9c], 0x180001
mov dword [ebx + 0xb8], eax
mov dword [ebx + 0xbc], eax
mov dword [ebx + 0xc0], eax
call fcn.1006b320
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x22fc]
and ecx, 0xffffffd8
and eax, 0x27
or ecx, eax
cmp dword [ebp - 0x28], 0
mov dword [ebx + 0x3c], ecx
je 0x10063279
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x14]
cmp ecx, eax
je 0x10063279
shl ecx, 0x10
cmp dword [ebx + 0xc], ecx
jne 0x10063279
shl eax, 0x10
mov dword [ebx + 0xc], eax
mov edx, dword [ebp - 0x3c]
mov eax, dword [esi + 0x112c]
test eax, eax
je 0x10063298
push dword [esi + 0x1130]
lea ecx, [ebp - 0x2314]
push ecx
call eax
mov edx, dword [ebp - 0x3c]
cmp dword [esi + 0x9524], 0
je 0x10063361
cmp dword [esi + 0x84a0], 0
je 0x10063361
test edx, edx
jne 0x10063361
mov eax, dword [esi + 0x126b0]
sub eax, 2
je 0x100632e3
sub eax, 6
je 0x100632d5
add dword [ebx + 0x10], 0xc
mov eax, dword [ebx + 0x14]
adc eax, edx
jmp 0x100632fb
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], ecx
jmp 0x100632fe
mov eax, dword [esi + 0x126b4]
and eax, 3
lea ecx, [eax*4 + 0x10]
xor eax, eax
add dword [ebx + 0x10], ecx
adc eax, dword [ebx + 0x14]
mov dword [ebx + 0x14], eax
mov edi, dword [ebp - 0x34]
mov ecx, ebx
push esi
mov edx, edi
call fcn.1005f980
add esp, 4
test eax, eax
jne 0x10064281
mov eax, dword [esi + 0x126b0]
sub eax, 2
je 0x10063343
sub eax, 6
je 0x10063335
sub dword [ebx + 0x10], 0xc
mov eax, dword [ebx + 0x14]
sbb eax, 0
mov dword [ebx + 0x14], eax
jmp 0x10063379
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], ecx
jmp 0x10063379
mov eax, dword [esi + 0x126b4]
and eax, 3
lea eax, [eax*4 + 0x10]
sub dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x14]
sbb eax, 0
mov dword [ebx + 0x14], eax
jmp 0x10063379
mov edi, dword [ebp - 0x34]
mov ecx, ebx
push esi
mov edx, edi
call fcn.1005f980
add esp, 4
test eax, eax
jne 0x10064281
mov ecx, dword [ebx + 0x68]
add ecx, dword [ebx + 0x60]
add ecx, dword [ebx + 0x28]
mov eax, dword [ebx + 0x24]
add eax, 0x1e
add ecx, eax
xor eax, eax
add dword [esi + 0x9500], ecx
mov ecx, dword [esi + 0x84a0]
adc eax, dword [esi + 0x9504]
mov dword [esi + 0x9504], eax
test ecx, ecx
je 0x10063410
mov edx, dword [ebx + 0xc]
push esi
push edi
call fcn.1006e610
mov edi, eax
add esp, 8
test edi, edi
je 0x100633e7
push esi
xor edx, edx
mov ecx, 0x188
call fcn.1006e460
mov edx, eax
mov ecx, edi
call fcn.10065a20
mov eax, dword [esi]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x14b08]
cdq
add dword [ebx + 0x10], eax
adc edx, dword [ebx + 0x14]
mov dword [ebx + 0x14], edx
mov eax, dword [esi + 0x14b08]
cdq
add dword [esi + 0x9500], eax
adc edx, dword [esi + 0x9504]
mov dword [esi + 0x9504], edx
mov edi, dword [ebp - 0x34]
mov edx, 1
push 0
push 0
mov ecx, dword [edi]
call fcn.1006dde0
add esp, 8
mov dword [esi + 0x38], 0
cmp dword [esi + 0x9524], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x126a4], 0
je 0x1006345b
mov dword [esi + 0x9548], 0
mov dword [esi + 0x954c], 0
mov eax, dword [ebp - 0x3c]
cmp eax, 9
jne 0x10063517
mov ecx, dword [edi]
mov edx, esi
call fcn.10070ac0
test eax, eax
jne 0x10064264
cmp dword [ebp - 0x1c], eax
je 0x10063486
mov eax, 0xffff
mov word [ebx + 0x38], ax
push esi
lea ecx, [ebx + 0x38]
lea edx, [ebp - 0x3c]
call fcn.1006f4d0
add esp, 4
cmp dword [esi + 0xa4], 0
jne 0x1006350c
mov ecx, dword [esi + 0x848c]
lea edx, [ebx + 4]
push esi
call fcn.10070ce0
add esp, 4
cmp dword [esi + 0xa4], 0
jne 0x100634f1
movzx eax, word [ebx + 0x3a]
mov cx, word [ebx + 4]
xor cx, ax
and cx, 6
xor cx, ax
mov word [ebx + 0x3a], cx
mov ecx, esi
call fcn.10071470
mov ecx, esi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], edx
call fcn.10070b80
mov ecx, dword [esi + 4]
mov dword [edi], ecx
mov ecx, esi
call fcn.10070ea0
jmp 0x100634ff
mov ecx, esi
call fcn.10070ea0
mov ecx, esi
call fcn.10070b80
cmp dword [esi + 0xa4], 0
je 0x100638ea
mov dword [esi], 9
jmp 0x100638ea
cmp eax, 8
jne 0x100635c0
mov ecx, dword [edi]
mov edx, esi
call fcn.10070ac0
test eax, eax
jne 0x10064264
cmp dword [ebp - 0x1c], eax
je 0x1006353f
mov eax, 0xffff
mov word [ebx + 0x38], ax
push esi
lea ecx, [ebx + 0x38]
lea edx, [ebp - 0x3c]
call fcn.100719b0
add esp, 4
cmp dword [esi + 0xa4], 0
jne 0x1006350c
mov ecx, dword [esi + 0x848c]
lea edx, [ebx + 4]
push esi
call fcn.100727b0
add esp, 4
cmp dword [esi + 0xa4], 0
jne 0x100635ad
movzx eax, word [ebx + 0x3a]
mov cx, word [ebx + 4]
xor cx, ax
and cx, 6
xor cx, ax
mov word [ebx + 0x3a], cx
mov ecx, esi
call fcn.10072ff0
mov ecx, esi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], edx
call fcn.10070b80
mov eax, dword [esi + 4]
mov ecx, esi
mov dword [edi], eax
call fcn.10072970
jmp 0x100634ff
mov ecx, esi
call fcn.10072970
mov ecx, esi
call fcn.10070b80
jmp 0x100634ff
push 0x2000
call fcn.1008680d
mov edi, eax
add esp, 4
mov dword [ebp - 0x20], edi
test edi, edi
je 0x10064264
cmp dword [ebp - 0x18], 0
jne 0x100638d2
push 0
push 0
push dword [esi + 0x44]
lea ecx, [esi + 0x116a0]
push dword [esi + 0x40]
call fcn.1005bc60
add esp, 0x10
cmp dword [esi + 0xa4], 0
jne 0x100638cc
lea esp, [esp]
cmp dword [esi + 0x10c0], 0
push esi
push 0x2000
push edi
je 0x10063627
call fcn.10064cd0
jmp 0x1006362c
call fcn.10064bf0
xor ecx, ecx
mov dword [ebp - 0x40], eax
add esp, 0xc
cmp ecx, eax
sbb ecx, ecx
neg ecx
test ecx, ecx
je 0x100638c3
xor edi, edi
mov dword [ebp - 0x30], edi
cmp dword [esi + 0x126a8], edi
jne 0x1006388e
cmp dword [esi + 0x84a0], edi
je 0x1006388e
mov ecx, dword [ebp - 0x20]
mov edx, ecx
mov eax, dword [esi + 0x126b0]
mov dword [ebp - 0x38], edx
sub eax, 2
je 0x1006385e
sub eax, 6
je 0x10063741
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x2c], eax
or eax, edi
mov dword [ebp - 0x24], edi
je 0x10063737
mov eax, dword [esi + 0x48]
mov ebx, edx
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x50]
mov edi, eax
mov dword [ebp - 0x14], eax
movzx ecx, ax
lea esp, [esp]
movsx eax, byte [ebx]
lea ebx, [ebx + 1]
mov esi, dword [ebp - 0x18]
or ecx, 2
xor eax, esi
mov edx, dword [ebp - 0x24]
movzx eax, al
shr esi, 8
movzx ecx, cx
xor esi, dword [eax*4 + 0x100b0990]
mov eax, esi
mov dword [ebp - 0x18], esi
movzx eax, al
add eax, dword [ebp - 0x1c]
imul eax, eax, 0x8088405
mov esi, dword [ebp + 8]
inc eax
mov dword [ebp - 0x1c], eax
shr eax, 0x18
xor eax, edi
shr edi, 8
movzx eax, al
xor edi, dword [eax*4 + 0x100b0990]
mov eax, ecx
xor eax, 1
mov dword [esi + 0x50], edi
imul eax, ecx
movzx ecx, di
shr eax, 8
xor byte [ebx - 1], al
mov eax, dword [ebp - 0x2c]
add eax, 0xffffffff
mov dword [ebp - 0x2c], eax
adc edx, 0xffffffff
or eax, edx
mov dword [ebp - 0x24], edx
jne 0x100636b0
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
mov dword [esi + 0x48], eax
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x4c], eax
push esi
push edi
push dword [ebp - 0x40]
jmp 0x10063894
cmp dword [esi + 0x14b10], edi
je 0x10063858
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x100637f2
jmp 0x10063760
mov ecx, dword [esi + 0x14b0c]
mov eax, dword [esi + 0x14b10]
cmp ecx, 0x2000
jae 0x10063797
mov ebx, dword [esi + 0x14b10]
mov al, byte [edx]
inc edx
mov dword [ebp - 0x38], edx
mov byte [ebx + ecx], al
mov eax, dword [ebp - 0x1c]
inc dword [esi + 0x14b0c]
add eax, 0xffffffff
mov dword [ebp - 0x1c], eax
adc edi, 0xffffffff
jmp 0x100637dd
mov dword [ebp - 0x18], ecx
xor edx, edx
lea ecx, [ebp - 0x18]
push esi
push ecx
push ecx
mov ecx, eax
call fcn.100738b0
add esp, 0xc
test eax, eax
je 0x100637b6
mov dword [esi], 0x16
mov edx, dword [ebp - 0x34]
mov ecx, dword [esi + 0x14b10]
push esi
push 0
push dword [ebp - 0x18]
call fcn.1006f200
mov edx, dword [ebp - 0x38]
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x14b0c], 0
test edi, edi
jg 0x10063760
jl 0x100637ef
test eax, eax
jne 0x10063760
mov ebx, dword [ebp - 0x50]
cmp dword [esi + 0x14b14], 0
je 0x100638b3
mov eax, dword [esi + 0x14b0c]
mov edx, 1
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push esi
push eax
push ecx
mov ecx, dword [esi + 0x14b10]
call fcn.100738b0
add esp, 0xc
test eax, eax
je 0x1006382b
mov dword [esi], 0x16
mov edx, dword [ebp - 0x34]
mov ecx, dword [esi + 0x14b10]
push esi
push 0
push dword [ebp - 0x18]
call fcn.1006f200
add esp, 0xc
mov dword [esi + 0x14b0c], 0
mov dword [esi + 0x14b14], 0
jmp 0x100638b3
xor eax, eax
xor edx, edx
jmp 0x100638a2
mov edx, dword [ebp - 0x40]
lea edi, [esi + 0x148ec]
push edi
call fcn.10073260
mov edx, dword [ebp - 0x40]
lea eax, [edi + 0x12c]
mov ecx, dword [ebp - 0x20]
add esp, 4
push eax
call fcn.1004d0e0
add esp, 4
push esi
push dword [ebp - 0x30]
push dword [ebp - 0x40]
jmp 0x10063891
push esi
push edi
push eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x34]
call fcn.1006f200
mov ecx, dword [ebp - 0x20]
add esp, 0xc
cmp eax, dword [ebp - 0x40]
jne 0x100639aa
test edx, edx
jne 0x100639aa
cmp dword [esi + 0xa4], 0
mov edi, dword [ebp - 0x20]
je 0x10063610
cmp dword [esi + 0xa4], 0
je 0x100638d2
mov dword [esi], 9
push edi
call fcn.10086818
mov eax, dword [esi + 0x38]
add esp, 4
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x3c]
mov dword [ebp - 0x20], eax
mov eax, dword [esi]
test eax, eax
jne 0x10064281
mov eax, dword [esi + 0x2c]
cmp eax, 0xffffffff
je 0x10063914
cmp dword [ebp - 0x40], 0xffffffff
je 0x10063c2c
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x2c], 0xffffffff
cmp dword [esi + 0x126b0], 8
jne 0x10063a04
cmp dword [esi + 0x126a8], 0
jne 0x10063a04
mov eax, dword [esi + 0x14b0c]
test eax, eax
je 0x10063a04
cmp dword [esi + 0x84a0], 0
mov dword [esi + 0x14b14], 1
je 0x100639f3
mov ecx, dword [esi + 0x14b10]
test ecx, ecx
je 0x10063a04
mov dword [ebp + 8], eax
mov edx, 1
push esi
lea eax, [ebp + 8]
push eax
push ecx
call fcn.100738b0
add esp, 0xc
test eax, eax
je 0x10063981
mov dword [esi], 0x16
mov ecx, dword [esi + 0x14b10]
mov edx, edi
push esi
push 0
push dword [ebp + 8]
call fcn.1006f200
mov dword [esi + 0x14b0c], 0
mov dword [esi + 0x14b14], 0
jmp 0x10063a01
push ecx
call fcn.10086818
add esp, 4
cmp dword [esi + 0x9524], 0
je 0x100639dd
mov eax, dword [esi + 0xa4]
neg eax
sbb eax, eax
and eax, 0xfffffffb
add eax, 0xe
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xa
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 0
push 0
mov edx, edi
xor ecx, ecx
call fcn.1006f200
add esp, 0xc
cmp dword [esi + 0x9524], 0
mov ecx, dword [esi + 0x9500]
mov eax, dword [esi + 0x9504]
je 0x10063a2c
add ecx, dword [esi + 0x9548]
mov edx, dword [esi + 0x954c]
mov edi, dword [ebp - 0x30]
adc edx, eax
jmp 0x10063aa2
cmp dword [esi + 0x126b0], 8
mov edi, ecx
jne 0x10063a96
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x20]
add ecx, 0xf
adc edx, 0
and ecx, 0xfffffff0
add ecx, edi
mov dword [ebp - 0x14], ecx
mov edi, ecx
adc edx, eax
mov dword [esi + 0x9500], ecx
mov eax, dword [ebp - 0x30]
or eax, dword [ebp - 0x20]
mov dword [ebp + 8], edx
mov dword [ebp - 0x2c], edx
mov dword [esi + 0x9504], edx
je 0x10063a91
mov eax, dword [ebp - 0x30]
and eax, 0xf
mov dword [ebp - 0x14], ecx
or eax, 0
mov dword [ebp + 8], edx
jne 0x10063a91
add ecx, 0x10
mov dword [ebp - 0x14], ecx
adc edx, eax
mov dword [esi + 0x9500], ecx
mov dword [ebp + 8], edx
mov dword [esi + 0x9504], edx
mov edi, dword [ebp - 0x30]
jmp 0x10063ab4
mov ecx, edi
mov edx, eax
mov edi, dword [ebp - 0x30]
add ecx, edi
adc edx, dword [ebp - 0x20]
mov dword [esi + 0x9504], edx
mov dword [esi + 0x9500], ecx
mov dword [ebp + 8], edx
mov dword [ebp - 0x14], ecx
cmp dword [esi + 0x1110], 0
je 0x10063ac6
cmp dword [esi + 0x1114], 0
je 0x10063b03
test edx, edx
jl 0x10063b03
jg 0x10063ad1
cmp ecx, 0xffffffff
jb 0x10063b03
push esi
xor edx, edx
mov ecx, 0x10e
call fcn.1006e460
mov edx, eax
mov ecx, 0xe
call fcn.10065a20
add esp, 4
mov eax, 0xe
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x126a4]
mov edx, dword [ebp - 0x20]
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x14], edx
cmp dword [esi + 0x84a0], 0
je 0x10063ba9
mov eax, dword [esi + 0x126b0]
sub eax, 2
je 0x10063b8d
mov ecx, edi
sub eax, 6
je 0x10063b3e
add ecx, 0xc
mov eax, edx
adc eax, 0
jmp 0x10063ba3
mov eax, dword [ebp - 0x30]
add ecx, 0xf
adc edx, 0
and ecx, 0xfffffff0
or eax, dword [ebp - 0x20]
mov edi, ecx
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0x14], edx
mov dword [ebp - 0x1c], edx
je 0x10063b79
mov eax, dword [ebp - 0x30]
and eax, 0xf
mov dword [ebp - 0x1c], edx
or eax, 0
jne 0x10063b79
add edi, 0x10
mov eax, edx
mov dword [ebx + 0x10], edi
adc eax, 0
mov dword [ebp - 0x1c], eax
mov dword [ebx + 0x14], eax
mov eax, dword [esi + 0x14b08]
cdq
add eax, edi
mov dword [ebx + 0x10], eax
adc edx, dword [ebp - 0x1c]
mov dword [ebx + 0x14], edx
jmp 0x10063ba9
mov eax, dword [esi + 0x126b4]
and eax, 3
lea ecx, [eax*4 + 0x10]
xor eax, eax
add ecx, edi
adc eax, edx
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x10], ecx
cmp dword [esi + 0x10bc], 0
je 0x10063bcb
cmp dword [esi + 0x1110], 0
mov eax, dword [esi + 0x10f0]
mov ecx, dword [esi + 0x10f4]
jne 0x10063bd1
xor ecx, ecx
jmp 0x10063bd1
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x3c]
mov edi, 0x18
mov edx, ebx
mov dword [edx + edi], eax
mov dword [edx + edi + 4], ecx
cmp dword [esi + 0x9524], 0
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x40], eax
jne 0x10064029
push dword [ebx + 0x44]
mov ecx, dword [edi]
xor edx, edx
push dword [ebx + 0x40]
call fcn.1006dde0
and eax, edx
add esp, 8
cmp eax, 0xffffffff
jne 0x10063c42
push esi
xor edx, edx
mov ecx, 0x189
call fcn.1006e460
mov edx, eax
mov ecx, 0xb
call fcn.10065a20
add esp, 4
mov eax, 0xb
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x10bc], 0
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x2c], eax
jne 0x10063c60
mov ecx, 0xfff7
and word [ebx + 0x3a], cx
and word [ebx + 4], cx
jmp 0x10063c72
cmp dword [esi + 0x84a0], 0
je 0x10063c72
mov eax, dword [ebx + 8]
shl eax, 0x10
mov dword [ebx + 0xc], eax
mov ecx, dword [ebp - 0x3c]
mov word [ebx + 6], cx
cmp dword [esi + 0x1110], 0
je 0x10063c89
mov eax, 0x2d
jmp 0x10063ca0
test ecx, ecx
jne 0x10063c92
lea eax, [ecx + 0xa]
jmp 0x10063c9d
xor eax, eax
cmp ecx, 9
sete al
add eax, 0x14
movzx eax, ax
mov word [ebx + 2], ax
cmp dword [esi + 0x126b0], 8
jne 0x10063cb6
mov eax, 0x33
mov word [ebx + 2], ax
push esi
mov edx, edi
mov ecx, ebx
call fcn.1005f980
add esp, 4
test eax, eax
je 0x10063cde
mov ecx, dword [ebp - 0x2c]
mov dword [ebx + 0xc], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x126a8], 0
je 0x10064005
mov ecx, dword [esi + 0x84a0]
test ecx, ecx
je 0x10063ffb
mov dword [esi + 0x126a8], 0
mov edx, dword [ebx + 0xc]
push esi
push edi
call fcn.1006e610
mov edi, eax
mov dword [esi + 0x126a8], 1
add esp, 8
test edi, edi
je 0x10063d4c
push esi
xor edx, edx
mov ecx, 0x188
call fcn.1006e460
mov edx, eax
mov ecx, edi
call fcn.10065a20
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x2010
call fcn.1008680d
mov edi, eax
add esp, 4
mov dword [ebp - 0x18], edi
test edi, edi
je 0x10064264
mov eax, dword [ebp - 0x34]
mov edx, 1
push 0
push 0
mov ecx, dword [eax]
call fcn.1006dde0
mov ecx, dword [ebp - 0x20]
add esp, 8
mov dword [ebp - 0x14], eax
mov dword [ebp + 8], edx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x44], 0
test ecx, ecx
jl 0x10063dac
jg 0x10063da3
mov eax, dword [ebp - 0x30]
cmp eax, 0x2000
jbe 0x10063daf
mov eax, 0x2000
xor ecx, ecx
jmp 0x10063daf
mov eax, dword [ebp - 0x30]
cmp dword [esi], 0
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x38], eax
jne 0x10063fef
mov edi, edi
test ecx, ecx
jl 0x10063fef
jg 0x10063dd2
test eax, eax
je 0x10063fef
push 0
lea ecx, [ebp - 0x68]
push ecx
push eax
mov eax, dword [ebp - 0x34]
push edi
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x10063fe9
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x10063fe9
mov ecx, dword [esi + 0x126b0]
sub ecx, 2
je 0x10063ecb
sub ecx, 6
je 0x10063e85
xor edi, edi
test eax, eax
jle 0x10063e80
mov ax, word [esi + 0x50]
mov ebx, dword [ebp - 0x18]
or ax, 2
mov ecx, dword [esi + 0x48]
movzx edx, ax
movsx eax, byte [edi + ebx]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x100b0990]
movzx eax, cl
add eax, dword [esi + 0x4c]
imul eax, eax, 0x8088405
mov dword [esi + 0x48], ecx
mov ecx, dword [esi + 0x50]
inc eax
mov dword [esi + 0x4c], eax
shr eax, 0x18
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x100b0990]
mov eax, edx
xor eax, 1
mov dword [esi + 0x50], ecx
imul eax, edx
shr eax, 8
xor byte [edi + ebx], al
inc edi
mov ebx, dword [ebp - 0x68]
mov dword [ebp - 0x1c], ebx
cmp edi, ebx
jl 0x10063e15
mov ebx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x1c]
jmp 0x10063ef7
mov ecx, dword [ebp - 0x30]
sub ecx, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
sbb eax, 0
sub ecx, dword [ebp - 0x28]
sbb eax, dword [ebp - 0x44]
test eax, eax
jg 0x10063eaa
jl 0x10063ea3
test ecx, ecx
jne 0x10063eaa
mov edx, 1
jmp 0x10063eac
xor edx, edx
push esi
lea eax, [ebp - 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.100738b0
mov edi, dword [ebp - 0x1c]
add esp, 0xc
test eax, eax
je 0x10063ef7
mov dword [esi], 0x16
jmp 0x10063ef7
mov ecx, dword [ebp - 0x18]
lea edi, [esi + 0x148ec]
push edi
mov edx, eax
call fcn.10073260
mov edx, dword [ebp - 0x1c]
lea eax, [edi + 0x12c]
mov ecx, dword [ebp - 0x18]
add esp, 4
push eax
call fcn.1004d0e0
mov edi, dword [ebp - 0x68]
add esp, 4
mov eax, dword [esi]
test eax, eax
jne 0x10063fc4
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
push 0
push eax
mov eax, dword [ebp - 0x34]
push dword [ebp - 0x14]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x10063f26
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
lea eax, [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x34]
push edi
push dword [ebp - 0x18]
push dword [eax]
call dword [ebp - 0x40]
test eax, eax
je 0x10063fb9
cmp dword [ebp - 0x6c], edi
jne 0x10063fb9
add dword [ebp - 0x14], edi
mov ecx, dword [ebp - 0x28]
adc dword [ebp + 8], 0
add ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x44]
adc edx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
sub edi, ecx
mov dword [ebp - 0x28], ecx
sbb eax, edx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x24], eax
js 0x10063f87
jg 0x10063f7a
cmp edi, 0x2000
jbe 0x10063f87
mov eax, 0x2000
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x40]
push eax
push ecx
push eax
push ecx
lea ecx, [esi + 0x116a0]
call fcn.1005bc60
add esp, 0x10
cmp dword [esi + 0xa4], 0
je 0x10063fb5
mov dword [esi], 9
mov eax, 9
jmp 0x10063fc4
mov eax, dword [esi]
jmp 0x10063fc4
mov dword [esi], 0xe
mov eax, 0xe
mov ecx, dword [ebp - 0x14]
test eax, eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x38]
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp + 8], edx
mov dword [ebp - 0x60], edx
je 0x10063dc0
jmp 0x10063fef
mov dword [esi], 0xb
push edi
call fcn.10086818
mov edi, dword [ebp - 0x34]
add esp, 4
mov eax, dword [esi]
test eax, eax
jne 0x10064281
mov eax, dword [ebp + 8]
xor edx, edx
mov ecx, dword [ebp - 0x2c]
push eax
push dword [ebp - 0x14]
mov dword [ebx + 0xc], ecx
mov ecx, dword [edi]
call fcn.1006dde0
and eax, edx
add esp, 8
cmp eax, 0xffffffff
je 0x10063c10
mov eax, dword [esi + 0x126b0]
sub eax, 2
je 0x10064044
sub eax, 6
jne 0x100640aa
mov ecx, esi
call fcn.1006e3f0
mov dword [esi], eax
jmp 0x100640aa
lea eax, [esi + 0x14a18]
mov edx, 0xa
lea edi, [esi + 0x14ac4]
push eax
mov ecx, edi
call fcn.1004d1c0
add esp, 4
lea eax, [ebp - 0x6c]
push 0
push eax
push 0xa
push edi
mov edi, dword [ebp - 0x34]
push dword [edi]
call dword [ebp - 0x40]
test eax, eax
je 0x100640a4
cmp dword [ebp - 0x6c], 0xa
jne 0x100640a4
cmp dword [esi + 0xa4], 0
je 0x1006408c
mov dword [esi], 9
jmp 0x100640aa
add dword [esi + 0x9500], 0xa
mov eax, dword [esi + 0x9504]
adc eax, 0
mov dword [esi + 0x9504], eax
jmp 0x100640aa
mov dword [esi], 0xe
mov eax, dword [esi + 0x9524]
test eax, eax
jne 0x100640c0
cmp dword [esi + 0x10bc], eax
je 0x10064233
mov ecx, dword [ebp - 0x3c]
cmp ecx, 8
je 0x100640d7
cmp ecx, 9
je 0x100640d7
test byte [ebx + 4], 8
je 0x10064233
cmp dword [esi + 0x1110], 0
je 0x1006417e
test eax, eax
je 0x1006410f
mov ecx, esi
call fcn.1006bf90
test edx, edx
jg 0x1006410f
jl 0x100640fa
cmp eax, 0x18
jae 0x1006410f
push esi
mov edx, edi
mov ecx, ebx
call fcn.1006c030
add esp, 4
test eax, eax
jne 0x10064281
cmp dword [esi + 0x9524], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x88], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x84], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x80], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x8c], 0x8074b50
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], ecx
mov dword [ebp + 8], 0
je 0x10064153
lea edi, [esi + 0xac]
push 0
lea eax, [ebp + 8]
push eax
push 0x18
lea eax, [ebp - 0x8c]
push eax
push dword [edi]
call dword [ebp - 0x40]
test eax, eax
je 0x100639dd
cmp dword [ebp + 8], 0x18
je 0x10064207
jmp 0x100639dd
test eax, eax
je 0x100641a9
mov ecx, esi
call fcn.1006bf90
test edx, edx
jg 0x100641a9
jl 0x10064194
cmp eax, 0x10
jae 0x100641a9
push esi
mov edx, edi
mov ecx, ebx
call fcn.1006c030
add esp, 4
test eax, eax
jne 0x10064281
cmp dword [esi + 0x9524], 0
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x88], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x84], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x8c], 0x8074b50
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x2c], 0
je 0x100641e1
lea edi, [esi + 0xac]
push 0
lea eax, [ebp - 0x2c]
push eax
push 0x10
lea eax, [ebp - 0x8c]
push eax
push dword [edi]
call dword [ebp - 0x40]
test eax, eax
je 0x100639dd
cmp dword [ebp - 0x2c], 0x10
jne 0x100639dd
cmp dword [esi + 0x1110], 0
mov eax, dword [esi + 0x9500]
mov ecx, dword [esi + 0x9504]
je 0x10064221
add eax, 0x18
jmp 0x10064224
add eax, 0x10
adc ecx, 0
mov dword [esi + 0x9500], eax
mov dword [esi + 0x9504], ecx
cmp dword [ebx + 0x28], 0
je 0x10064251
mov eax, dword [ebx + 0x4c]
cmp eax, dword [ebx + 0x50]
je 0x1006424a
push eax
call fcn.10086818
add esp, 4
mov dword [ebx + 0x28], 0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 9
mov eax, ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret