Function at 0x413900
Capabilities:
Authenticate hmac
Check mutex on windows
Create thread
Encode data using base64
Read file on windows
Write file on windows

Disassembly:
push edi
mov eax, 0x20dbc
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
call fcn.00457320
sub esp, eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x20c98], ecx
mov dword [ebp - 0x20c6c], esp
mov dword [ebp - 0x20c7c], 0x4f3670
mov dword [ebp - 0x20c74], eax
lea eax, [ebp - 0x20c94]
mov dword [ebp - 0x20c78], 0x4f4bee
mov dword [ebp - 0x20c70], 0x413c99
mov dword [esp], eax
call fcn.00458010
mov esi, dword [ebp - 0x20c98]
lea eax, [ebp - 0x20450]
lea ecx, [ebp - 0x20458]
mov dword [ebp - 0x20c58], 0
mov dword [ebp - 0x20458], eax
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 0xffffffff
call fcn.00401570
lea eax, [ebp - 0x20458]
sub esp, 8
mov dword [esp + 8], 1
mov dword [esp + 4], eax
lea eax, [ebp - 0x20058]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 1
call fcn.00405600
mov eax, dword [ebp - 0x20058]
lea ecx, [ebp - 0x10038]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 2
call fcn.00401630
lea eax, [ebp - 0x10038]
sub esp, 4
mov dword [esp], eax
mov dword [ebp - 0x20c90], 3
call fcn.004047f0
mov byte [ebp - 0x20cf0], al
mov eax, dword [ebp - 0x10038]
lea edx, [ebp - 0x10030]
cmp eax, edx
je 0x413a22
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20058]
lea edx, [ebp - 0x20050]
cmp eax, edx
je 0x413a3a
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20458]
lea ebx, [ebp - 0x20450]
cmp eax, ebx
je 0x413a52
mov dword [esp], eax
call fcn.004f28f0
mov edi, dword [ebp - 0x20c98]
lea eax, [ebp - 0x20bb4]
lea ecx, [ebp - 0x20bbc]
mov dword [ebp - 0x20bbc], eax
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 0xffffffff
call fcn.00401570
mov edi, dword [ebp - 0x20c98]
sub esp, 8
mov eax, dword [edi + 0x34]
test eax, eax
je 0x413ab3
lea ecx, [ebp - 0x20bbc]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 4
call fcn.004d9e20
sub esp, 4
lea eax, [ebp - 0x20b9c]
mov edx, dword [ebp - 0x20bb8]
lea ecx, [ebp - 0x20ba4]
mov dword [ebp - 0x20ba4], eax
mov eax, dword [ebp - 0x20bbc]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 4
call fcn.00401570
lea eax, [ebp - 0x20b8c]
lea esi, [ebp - 0x20ba4]
sub esp, 8
mov dword [esp + 8], 1
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [ebp - 0x20c90], 5
call fcn.00405600
mov eax, dword [ebp - 0x20b8c]
lea ecx, [ebp - 0x20b74]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 6
call fcn.00401630
lea eax, [ebp - 0x20b74]
sub esp, 4
mov dword [esp], eax
mov dword [ebp - 0x20c90], 7
call fcn.004047f0
mov byte [ebp - 0x20ca0], al
mov eax, dword [ebp - 0x20b74]
lea edx, [ebp - 0x20b6c]
cmp eax, edx
je 0x413b6d
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20b8c]
lea edx, [ebp - 0x20b84]
cmp eax, edx
je 0x413b85
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20ba4]
lea edx, [ebp - 0x20b9c]
cmp eax, edx
je 0x413b9d
mov dword [esp], eax
call fcn.004f28f0
cmp byte [ebp - 0x20ca0], 0
je 0x413c80
lea eax, [ebp - 0x20c58]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20bbc]
mov dword [esp], eax
mov ecx, dword [ebp - 0x20c98]
mov dword [ebp - 0x20c90], 4
call fcn.0040b0a0
sub esp, 8
mov dword [ebp - 0x20d18], eax
mov dword [ebp - 0x20d14], edx
mov eax, dword [ebp - 0x20c98]
lea ecx, [ebp - 0x20bbc]
add eax, 4
mov dword [esp], eax
mov dword [ebp - 0x20c90], 4
call fcn.004db010
sub esp, 4
xor eax, eax
mov dword [ebp + eax - 0x206a4], 0
add eax, 4
cmp eax, 0x20
jb 0x413c07
mov eax, dword [ebp - 0x20c98]
mov ecx, dword [eax + 0x58]
test ecx, ecx
je 0x413c4d
lea eax, [ebp - 0x206a4]
mov dword [esp + 4], 0x20
mov dword [esp], eax
mov dword [ebp - 0x20c90], 4
call fcn.0042ce50
mov eax, dword [ebp - 0x20c98]
mov edx, dword [eax + 0x34]
test edx, edx
je 0x419cc9
cmp dword [eax + 0x104], 0
jl 0x413ccb
jle 0x413cc2
mov dword [esp], str.index_is_a_regular_archive
mov dword [ebp - 0x20c90], 4
call fcn.00402a80
lea esi, [esi]
mov dword [ebp - 0x20d18], 0
mov dword [ebp - 0x20d14], 0
jmp 0x413be1
cmp dword [eax + 0x100], 0
ja 0x413c63
mov edx, dword [eax + 0xf4]
mov eax, dword [eax + 0xf0]
mov dword [ebp - 0x20c9c], edx
xor edx, 0x5af3
mov dword [ebp - 0x20ca0], eax
mov ebx, edx
xor eax, 0x107a3fff
or ebx, eax
jne 0x419cb3
mov edi, dword [ebp - 0x20c98]
mov ebx, dword [ebp - 0x20d18]
lea ecx, [ebp - 0x20b5c]
mov esi, dword [ebp - 0x20d14]
add ebx, dword [edi + 0xf8]
mov eax, dword [edi + 0x58]
adc esi, dword [edi + 0xfc]
test eax, eax
mov eax, ebx
setne dl
mov dword [ebp - 0x20cd8], ebx
or eax, esi
mov dword [ebp - 0x20cd4], esi
lea esi, [ebp - 0x20b54]
sete al
movzx eax, al
mov dword [ebp - 0x20b5c], esi
and eax, edx
mov edx, dword [edi + 8]
shl eax, 5
mov dword [ebp - 0x20d18], eax
sar eax, 0x1f
mov dword [ebp - 0x20d14], eax
mov eax, dword [edi + 0x154]
sub eax, dword [edi + 0x150]
sar eax, 3
imul eax, eax, 0xb6db6db7
mov dword [ebp - 0x20ca0], eax
mov eax, dword [edi + 4]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 4
call fcn.00401570
mov eax, dword [ebp - 0x20ca0]
sub esp, 8
mov dword [esp + 8], eax
lea eax, [ebp - 0x20b5c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x20b44]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 8
call fcn.00405600
lea eax, [ebp - 0x20b44]
lea ecx, [ebp - 0x20bbc]
mov dword [esp], eax
call fcn.004dbae0
mov eax, dword [ebp - 0x20b44]
lea edx, [ebp - 0x20b3c]
sub esp, 4
cmp eax, edx
je 0x413df1
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20b5c]
lea edx, [ebp - 0x20b54]
cmp eax, edx
je 0x413e09
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20bbc]
lea ecx, [ebp - 0x20b2c]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 4
call fcn.00401630
lea eax, [ebp - 0x20b2c]
sub esp, 4
mov dword [esp], eax
mov dword [ebp - 0x20c90], 9
call fcn.004047f0
mov byte [ebp - 0x20ca0], al
mov eax, dword [ebp - 0x20b2c]
lea edx, [ebp - 0x20b24]
cmp eax, edx
je 0x413e60
mov dword [esp], eax
call fcn.004f28f0
cmp byte [ebp - 0x20ca0], 0
jne 0x419c5f
mov eax, dword [ebp - 0x20c98]
mov esi, dword [eax + 0x58]
test esi, esi
je 0x413f07
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x20c90], 4
call fcn.00403620
cmp eax, 0xffffffff
mov esi, eax
mov dword [ebp - 0x20ca0], eax
je 0x413f07
lea eax, [ebp - 0x20c50]
mov dword [ebp - 0x20c50], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x20
mov dword [esp], esi
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x206a4]
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
sub esp, 0x14
cmp dword [ebp - 0x20c50], 0x20
jne 0x419ca7
mov eax, dword [ebp - 0x20ca0]
xor byte [ebp - 0x206a4], 0x4d
mov dword [esp], eax
mov dword [ebp - 0x20c90], 4
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov eax, dword [ebp - 0x20bbc]
lea ecx, [ebp - 0x20a6c]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 4
call fcn.00401630
lea eax, [ebp - 0x20a6c]
sub esp, 4
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x12
call fcn.004047f0
mov byte [ebp - 0x20ca0], al
mov eax, dword [ebp - 0x20a6c]
lea edx, [ebp - 0x20a64]
cmp eax, edx
je 0x413f5e
mov dword [esp], eax
call fcn.004f28f0
cmp byte [ebp - 0x20ca0], 0
je 0x417171
mov dword [esp], str.Updating
call fcn.00462d40
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20bbc]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 4
call fcn.00403710
fild qword [ebp - 0x20d18]
fstp qword [ebp - 0x20d70]
fild qword [ebp - 0x20cd8]
fstp qword [esp + 0xc]
movsd xmm3, qword [ebp - 0x20d70]
mov dword [esp], str._at_offset__1.0f___1.0f_n
movsd qword [esp + 4], xmm3
call fcn.00462d40
mov eax, dword [ebp - 0x20c98]
lea ecx, [eax + 0x5c]
mov dword [ebp - 0x20ca0], ecx
mov dword [esp], 0x4f906e
call fcn.00473d20
sub esp, 4
test eax, eax
je 0x417c86
mov eax, dword [ebp - 0x20c98]
cmp dword [eax + 0x60], 1
je 0x417cb5
mov eax, dword [eax + 0x5c]
mov dword [ebp - 0x20ca8], eax
movsx eax, byte [eax]
mov byte [ebp - 0x20ca0], al
mov dword [esp + 4], eax
mov dword [esp], str.0123456789xs
call sub.msvcrt.dll_strchr
test eax, eax
je 0x419b13
cmp byte [ebp - 0x20ca0], 0x73
je 0x417dbf
mov eax, dword [ebp - 0x20c98]
mov edx, dword [eax + 0x30]
test edx, edx
jns 0x41404c
mov dword [eax + 0x30], 0
mov eax, dword [ebp - 0x20ca8]
add eax, 1
mov dword [esp], eax
call sub.msvcrt.dll_atoi
cmp eax, 0xb
lea ecx, [eax + 0x14]
ja 0x419c33
mov esi, dword [ebp - 0x20c98]
mov eax, 1
shl eax, cl
lea ebx, [eax - 0x1000]
mov dword [ebp - 0x20ce0], eax
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0x20ce8], ebx
cmp ecx, 0x13
jle 0x417130
sub eax, 0x100c
cmp ecx, 0x19
mov dword [ebp - 0x20d44], eax
jle 0x417148
mov dword [ebp - 0x20ce4], eax
mov edi, esi
mov eax, dword [edi + 0x144]
mov edi, dword [edi + 0x148]
mov ecx, edi
mov dword [ebp - 0x20ca0], edi
sub ecx, eax
sar ecx, 3
imul ecx, ecx, 0xb6db6db7
test ecx, ecx
je 0x414102
mov edx, dword [ebp - 0x20c98]
add eax, 8
mov edx, dword [edx + 0x5c]
cmp byte [edx], 0x73
mov edx, 0
je 0x414496
mov edi, dword [eax + 4]
test edi, edi
js 0x419b29
add edx, 1
add eax, 0x38
cmp ecx, edx
jne 0x4140ed
mov eax, dword [ebp - 0x20c98]
mov dword [ebp - 0x20ca0], 0
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
sub eax, edx
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x4141c2
nop
lea esi, [esi]
mov eax, dword [ebp - 0x20ca0]
lea ecx, [ebp - 0x20a54]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 4
call fcn.00401630
lea eax, [ebp - 0x20a54]
sub esp, 4
mov dword [esp], eax
mov ecx, dword [ebp - 0x20c98]
mov dword [ebp - 0x20c90], 0x13
call fcn.00412200
mov eax, dword [ebp - 0x20a54]
lea ebx, [ebp - 0x20a4c]
sub esp, 4
cmp eax, ebx
je 0x414190
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20c98]
add dword [ebp - 0x20ca0], 1
mov edi, dword [ebp - 0x20ca0]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x20ca8], eax
sub eax, edx
sar eax, 3
imul eax, eax, 0xaaaaaaab
cmp edi, eax
jb 0x414130
mov ebx, dword [ebp - 0x20c98]
mov dword [ebp - 0x20c14], 0
mov dword [ebp - 0x20c10], 0
mov dword [ebp - 0x20c0c], 0
mov eax, dword [ebx + 0x138]
lea edi, [ebx + 0x130]
mov dword [ebp - 0x20d20], edi
cmp eax, edi
mov dword [ebp - 0x10038], eax
je 0x419c1a
lea ebx, [ebx + 0x114]
mov dword [ebp - 0x20d10], 0
mov dword [ebp - 0x20d0c], 0
mov dword [ebp - 0x20cc8], ebx
jmp 0x41424a
mov dword [esp], esi
call fcn.004ea300
cmp eax, dword [ebp - 0x20d20]
mov dword [ebp - 0x10038], eax
je 0x4145aa
mov edx, dword [eax + 0x10]
mov esi, dword [eax + 0x14]
lea ebx, [ebp - 0x20a34]
lea ecx, [ebp - 0x20a3c]
mov dword [ebp - 0x20a3c], ebx
add esi, edx
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [ebp - 0x20c90], 0x15
call fcn.00401570
lea eax, [ebp - 0x20a3c]
sub esp, 8
lea ecx, [ebp - 0x20a24]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20c98]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x14
call fcn.004071f0
lea eax, [ebp - 0x20a24]
sub esp, 8
mov dword [esp], eax
mov ecx, dword [ebp - 0x20cc8]
call fcn.004e4a10
mov dword [ebp - 0x20ca0], eax
mov eax, dword [ebp - 0x20a24]
lea edx, [ebp - 0x20a1c]
sub esp, 4
cmp eax, edx
je 0x4142dd
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20a3c]
lea ebx, [ebp - 0x20a34]
cmp eax, ebx
je 0x4142f5
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20c98]
mov ebx, dword [ebp - 0x20ca0]
add eax, 0x118
cmp eax, ebx
mov dword [ebp - 0x20ca8], eax
je 0x41431e
mov dword [ebx + 0x40], 1
mov dword [ebx + 0x44], 0
mov esi, dword [ebp - 0x10038]
mov eax, dword [esi + 0x2c]
or eax, dword [esi + 0x28]
je 0x414230
lea ecx, [esi + 0x10]
mov dword [esp], 0x4f906e
mov dword [ebp - 0x20c90], 0x15
call fcn.00473d20
sub esp, 4
test eax, eax
mov esi, dword [ebp - 0x10038]
je 0x414230
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
cmp byte [eax + edx - 1], 0x2f
je 0x414230
mov edi, dword [ebp - 0x20c98]
cmp byte [edi + 0x2c], 0
jne 0x417119
mov edi, dword [ebp - 0x20ca0]
cmp dword [ebp - 0x20ca8], edi
je 0x417119
mov ebx, dword [esi + 0x2c]
xor ebx, dword [edi + 0x2c]
mov ecx, dword [esi + 0x28]
xor ecx, dword [edi + 0x28]
mov edi, ebx
mov ebx, dword [esi + 0x34]
or edi, ecx
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0x20cbc], ebx
mov dword [ebp - 0x20cc0], ecx
je 0x4170fe
lea edi, [eax + edx]
mov ecx, dword [ebp - 0x20cc0]
add dword [ebp - 0x20d10], ecx
mov ebx, dword [ebp - 0x20cbc]
adc dword [ebp - 0x20d0c], ebx
xor edx, edx
cmp eax, edi
je 0x414520
mov dword [ebp - 0x20ca8], edx
mov dword [ebp - 0x20cb8], esi
mov dword [ebp - 0x20cb0], edi
mov dword [ebp - 0x20ca0], eax
jmp 0x414457
cmp ecx, 0x19
ja 0x41446b
add esi, 0x20
adc edi, 0
mov eax, dword [ebp - 0x20ca8]
cmp eax, 3
jle 0x41443c
sub eax, 1
mov edx, edi
mov dword [ebp - 0x20ca8], eax
shl eax, 3
mov ebx, eax
mov eax, esi
mov ecx, ebx
xor ebx, ebx
shld edx, esi, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, ebx
mov ecx, eax
mov eax, dword [ebp - 0x20cb8]
add dword [eax + 0x40], ecx
adc dword [eax + 0x44], edx
add dword [ebp - 0x20ca0], 1
mov ebx, dword [ebp - 0x20cb0]
mov eax, dword [ebp - 0x20ca0]
cmp eax, ebx
je 0x414502
movzx esi, byte [eax]
xor edi, edi
mov ebx, edi
mov ecx, esi
add ecx, 0xffffffbf
adc ebx, 0xffffffff
cmp ebx, 0
jbe 0x4143f4
mov ecx, esi
mov edx, edi
xor ecx, 0x2f
or edx, ecx
jne 0x4144d0
mov eax, dword [ebp - 0x20cb8]
mov dword [ebp - 0x20ca8], 0
mov dword [eax + 0x40], 0
mov dword [eax + 0x44], 0
jmp 0x41443c
mov esi, dword [eax + 4]
test esi, esi
jns 0x4144b2
add edx, 1
add eax, 0x38
cmp ecx, edx
je 0x414102
mov esi, dword [eax + 4]
test esi, esi
js 0x41449d
mov dword [esp], str.cannot_update_journaling_archive_in_streaming_format
mov dword [ebp - 0x20c90], 4
call fcn.00402a80
nop
lea esi, [esi]
mov ecx, esi
mov eax, edi
xor ecx, 0x2e
or eax, ecx
jne 0x4143ff
mov eax, dword [ebp - 0x20cb8]
mov dword [ebp - 0x20ca8], 8
mov dword [eax + 0x40], 0
mov dword [eax + 0x44], 0
jmp 0x41443c
mov dword [ebp - 0x20cd0], esi
mov ecx, dword [ebp - 0x20cc0]
mov esi, dword [ebp - 0x20cb8]
mov ebx, dword [ebp - 0x20cbc]
mov dword [ebp - 0x20ccc], edi
shrd ecx, ebx, 0xe
sar ebx, 0xe
cmp ebx, 0
jl 0x414535
jle 0x414574
mov ecx, 0xffffff
xor ebx, ebx
mov eax, 0xffffff
xor edx, edx
sub eax, ecx
sbb edx, ebx
add dword [esi + 0x40], eax
mov eax, dword [ebp - 0x20c10]
adc dword [esi + 0x44], edx
cmp eax, dword [ebp - 0x20c0c]
je 0x41457e
test eax, eax
je 0x414566
mov edx, dword [ebp - 0x10038]
mov dword [eax], edx
mov esi, dword [ebp - 0x10038]
add eax, 4
mov dword [ebp - 0x20c10], eax
jmp 0x414230
cmp ecx, 0xffffff
jbe 0x414535
jmp 0x41452e
lea eax, [ebp - 0x10038]
lea ecx, [ebp - 0x20c14]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x15
call fcn.004d6ff0
sub esp, 4
mov esi, dword [ebp - 0x10038]
jmp 0x414230
mov eax, dword [ebp - 0x20c10]
mov ebx, dword [ebp - 0x20c14]
cmp eax, ebx
mov edx, eax
mov dword [ebp - 0x20cb8], eax
mov dword [ebp - 0x20ca0], ebx
je 0x414621
mov edi, eax
mov ecx, 0x1f
sub edi, ebx
mov esi, edi
mov dword [ebp - 0x20ca8], edi
mov dword [esp], fcn.004026a0
sar esi, 2
mov dword [ebp - 0x20c90], 0x15
bsr eax, esi
xor eax, 0x1f
sub ecx, eax
mov eax, ebx
add ecx, ecx
call fcn.00413310
cmp dword [ebp - 0x20ca8], 0x43
jg 0x417cf0
mov edx, dword [ebp - 0x20cb8]
mov eax, dword [ebp - 0x20ca0]
mov ecx, fcn.004026a0
call fcn.004021f0
mov ebx, dword [ebp - 0x20c98]
lea eax, [ebp - 0x20a04]
lea ecx, [ebp - 0x20a0c]
mov dword [ebp - 0x20a0c], eax
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 4]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 0x15
call fcn.00401570
lea eax, [ebp - 0x209f4]
lea esi, [ebp - 0x20a0c]
sub esp, 8
mov dword [esp + 8], 1
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x16
call fcn.00405600
mov eax, dword [ebp - 0x209f4]
lea ecx, [ebp - 0x209dc]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x17
call fcn.00401630
lea eax, [ebp - 0x209dc]
sub esp, 4
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x18
call fcn.004047f0
mov byte [ebp - 0x20ca0], al
mov eax, dword [ebp - 0x209dc]
lea edx, [ebp - 0x209d4]
cmp eax, edx
je 0x4146db
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x209f4]
lea edx, [ebp - 0x209ec]
cmp eax, edx
je 0x4146f3
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20a0c]
lea edx, [ebp - 0x20a04]
cmp eax, edx
je 0x41470b
mov dword [esp], eax
call fcn.004f28f0
movzx ebx, byte [ebp - 0x20ca0]
cmp byte [ebp - 0x20cf0], bl
jne 0x417e1c
lea eax, [ebp - 0x206a4]
movq xmm4, qword [ebp - 0x20cd8]
movq qword [esp + 0xc], xmm4
lea ecx, [ebp - 0x20058]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x20c98]
mov eax, dword [eax + 0x58]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20bbc]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x15
call fcn.004067d0
sub esp, 0x14
cmp dword [ebp - 0x20050], 0xffffffff
je 0x417e07
lea ecx, [ebp - 0x20058]
mov dword [ebp - 0x20c90], 0x19
call fcn.004656b0
mov esi, dword [ebp - 0x20d14]
mov eax, dword [ebp - 0x20050]
lea edx, [ebp - 0x20c38]
mov ebx, dword [ebp - 0x20d18]
mov dword [ebp - 0x20c38], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
sub esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [ebp - 0x20c98]
mov eax, dword [eax + 0xd8]
add eax, eax
mov dword [ebp - 0x20ca0], eax
sub eax, 1
cmp eax, 0x3fffffff
ja 0x419b73
shl eax, 2
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x19
call fcn.004f2930
mov esi, dword [ebp - 0x20ca0]
mov dword [ebp - 0x20d34], eax
lea ebx, [esi*4 - 4]
mov dword [ebp - 0x20ca0], ebx
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x20c98]
mov ebx, dword [ebp - 0x20ca0]
mov dword [ebp - 0x20680], 0
mov dword [ebp - 0x2067c], 0
mov dword [ebp - 0x20674], 0
mov dword [ebp - 0x2066c], 0
mov eax, dword [eax + 0xd8]
sar ebx, 2
mov dword [ebp - 0x20668], 0
cmp ebx, 0xdd67c8
mov dword [ebp - 0x20cfc], ebx
mov dword [ebp - 0x20678], ebx
mov dword [ebp - 0x20664], 0
mov dword [ebp - 0x20660], 0
mov dword [ebp - 0x20ca0], eax
lea eax, [ebp - 0x20058]
mov dword [ebp - 0x2065c], 0
mov dword [ebp - 0x20670], eax
mov eax, 0xffffffff
ja 0x4148c3
imul eax, ebx, 0x94
add eax, 4
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x48
call fcn.004f2910
mov edi, dword [ebp - 0x20cfc]
lea ecx, [eax + 4]
mov edx, edi
mov dword [eax], edi
mov eax, ecx
sub edx, 1
js 0x4149b5
lea ebx, [eax + 0x4c]
sub edx, 1
mov dword [eax], 0
mov dword [eax + 4], 0x508fa4
mov dword [eax + 8], 0x508fc4
mov dword [eax + 0x44], ebx
lea ebx, [eax + 0x64]
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x5c], ebx
lea ebx, [eax + 0x7c]
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0xffffffff
mov dword [eax + 0x20], pe_nt_image_headers32
add eax, 0x94
mov dword [eax - 0x70], 0x508fa4
mov dword [eax - 0x6c], 0x508fc4
mov dword [eax - 0x68], 0
mov dword [eax - 0x64], 0
mov dword [eax - 0x60], 0
mov dword [eax - 0x5c], 0
mov dword [eax - 0x58], 0xffffffff
mov dword [eax - 0x54], 0x80
mov dword [eax - 0x4c], 0
mov byte [eax - 0x48], 0
mov dword [eax - 0x34], 0
mov byte [eax - 0x30], 0
mov dword [eax - 0x20], ebx
mov dword [eax - 0x1c], 0
mov byte [eax - 0x18], 0
mov dword [eax - 8], 0
mov dword [eax - 4], 0
cmp edx, 0xffffffff
jne 0x4148ed
test ecx, ecx
mov dword [ebp - 0x2067c], ecx
je 0x419b3f
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x20c90], 0x48
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
sub esp, 0xc
mov dword [ebp - 0x20684], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x77359400
mov eax, dword [ebp - 0x20cfc]
mov dword [esp], 0
mov dword [esp + 4], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
mov dword [ebp - 0x20cb0], eax
call eax
sub esp, 0x10
mov dword [ebp - 0x2066c], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x77359400
mov edx, dword [ebp - 0x20ca0]
mov dword [esp], 0
mov dword [esp + 4], edx
call dword [ebp - 0x20cb0]
mov dword [ebp - 0x20668], eax
mov eax, dword [ebp - 0x20cfc]
sub esp, 0x10
test eax, eax
jle 0x414b39
mov dword [ebp - 0x20ca8], 0
mov dword [ebp - 0x20ca0], 0
lea esi, [esi]
mov eax, dword [ebp - 0x20ca8]
add eax, dword [ebp - 0x2067c]
mov dword [ebp - 0x20cb8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x77359400
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x20c90], 0x48
call dword [ebp - 0x20cb0]
mov ebx, dword [ebp - 0x20cb8]
sub esp, 0x10
mov dword [ebx + 0x8c], eax
mov ebx, dword [ebp - 0x20ca8]
add ebx, dword [ebp - 0x2067c]
mov dword [ebp - 0x20cb8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x77359400
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [ebp - 0x20cb0]
add dword [ebp - 0x20ca0], 1
sub esp, 0x10
add dword [ebp - 0x20ca8], 0x94
mov esi, dword [ebp - 0x20ca0]
cmp dword [ebp - 0x20cfc], esi
mov edi, dword [ebp - 0x20cb8]
mov dword [edi + 0x90], eax
jne 0x414a80
mov ebx, dword [ebp - 0x20c98]
lea ecx, [ebp - 0x209c4]
mov eax, dword [ebx + 0xe8]
mov edx, dword [ebx + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [ebp - 0x20c90], 0x1a
call fcn.00403880
mov eax, dword [ebp - 0x209c4]
mov dword [esp + 0x18], eax
mov ebx, dword [ebp - 0x20c98]
mov eax, dword [ebx + 0xd8]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x5c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x20c10]
sub eax, dword [ebp - 0x20c14]
sar eax, 2
mov dword [esp + 0xc], eax
fild qword [ebp - 0x20d10]
mov dword [esp], str.Adding__1.6f_MB_in__d_files__method__s__threads__d_at__s._n
fdiv dword [0x4fac74]
fstp qword [esp + 4]
call fcn.00462d40
mov eax, dword [ebp - 0x209c4]
lea edx, [ebp - 0x209bc]
cmp eax, edx
je 0x414bd3
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20cfc]
mov dword [ebp - 0x20ca0], 0
test eax, eax
je 0x414c57
lea eax, [ebp - 0x20684]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x402750
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
mov dword [esp], 0
mov dword [ebp - 0x20c90], 0x1a
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ebx, dword [ebp - 0x20d34]
mov edi, dword [ebp - 0x20ca0]
sub esp, 0x18
test eax, eax
mov dword [ebx + edi*4], eax
je 0x417e88
add dword [ebp - 0x20ca0], 1
mov eax, dword [ebp - 0x20ca0]
cmp eax, dword [ebp - 0x20cfc]
jne 0x414be7
lea eax, [ebp - 0x20684]
mov dword [esp + 4], 0x40a9a0
mov dword [esp + 8], eax
lea eax, [ebp - 0x20c54]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x1a
call fcn.00402c60
mov eax, dword [ebp - 0x20c98]
mov eax, dword [eax + 0x5c]
cmp byte [eax], 0x73
je 0x417209
mov edi, dword [ebp - 0x20c98]
mov edx, dword [edi + 0x154]
mov eax, edx
sub eax, dword [edi + 0x150]
sar eax, 3
imul eax, eax, 0xb6db6db7
test eax, eax
je 0x414deb
mov eax, dword [edx - 0x2c]
cmp eax, dword [edi + 0xec]
mov ecx, dword [edx - 0x30]
jg 0x414cd8
jl 0x414deb
cmp ecx, dword [edi + 0xe8]
jb 0x414deb
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00404320
add eax, 1
mov dword [esp], eax
call fcn.00403f20
mov dword [ebp - 0x20ca0], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [ebp - 0x20c9c], edx
add eax, 0x20
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x1a
call sub.msvcrt.dll_fflush
movq xmm4, qword [ebp - 0x20ca0]
lea eax, [ebp - 0x20904]
movq qword [esp + 4], xmm4
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x1a
call fcn.00403880
mov eax, dword [ebp - 0x20904]
mov edi, dword [ebp - 0x20c98]
lea ecx, [ebp - 0x2091c]
mov dword [ebp - 0x20ca8], eax
mov edx, dword [edi + 0xec]
mov eax, dword [edi + 0xe8]
mov dword [esp], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [ebp - 0x20c90], 0x22
call fcn.00403880
mov eax, dword [ebp - 0x20ca8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2091c]
mov dword [esp + 4], str.Warning:_adjusting_date_from__s_to__s_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00462d60
mov eax, dword [ebp - 0x2091c]
lea edx, [ebp - 0x20914]
cmp eax, edx
je 0x414dbd
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20904]
lea edx, [ebp - 0x208fc]
cmp eax, edx
je 0x414dd5
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20c98]
movq xmm5, qword [ebp - 0x20ca0]
movq qword [eax + 0xe8], xmm5
mov esi, dword [ebp - 0x20c98]
mov eax, dword [ebp - 0x20c10]
sub eax, dword [ebp - 0x20c14]
mov dword [ebp - 0x20be0], 0
mov dword [ebp - 0x20bdc], 0
mov edx, dword [esi + 0x10c]
sub edx, dword [esi + 0x108]
mov dword [ebp - 0x20bd8], 0
sar eax, 2
sar edx, 3
imul edx, edx, 0xaaaaaaab
lea edi, [eax + edx]
mov eax, dword [esi + 0x30]
mov edx, dword [ebp - 0x20d0c]
lea ecx, [eax + 0xa]
mov eax, dword [ebp - 0x20d10]
shrd eax, edx, cl
sar edx, cl
test cl, 0x20
lea ecx, [ebp - 0x20be0]
cmovne eax, edx
lea eax, [edi + eax]
mov dword [ebp - 0x20ca0], eax
lea eax, [esi + 0x108]
mov dword [ebp - 0x20d88], eax
mov dword [ebp - 0x20be4], eax
call fcn.00402b70
mov eax, dword [ebp - 0x20ca0]
mov dword [ebp - 0x20bd4], 1
lea edx, [eax + eax*2]
mov eax, edx
shr eax, 1
je 0x417e59
mov eax, 1
jmp 0x414e9f
mov eax, ecx
lea ecx, [eax + 1]
mov ebx, edx
shr ebx, cl
test ebx, ebx
jne 0x414e9d
lea edx, [eax - 0x1f]
mov ecx, 2
jmp 0x414ebe
add ecx, ecx
cmp edx, eax
je 0x417e72
sub eax, 1
jne 0x414eb4
lea eax, [ecx*4 + 0x80]
mov dword [ebp - 0x20ca0], ecx
mov dword [ebp - 0x20ca8], eax
mov eax, dword [ebp - 0x20bdc]
test eax, eax
je 0x414ef4
mov eax, dword [ebp - 0x20be0]
sub eax, dword [ebp - 0x20bd8]
mov dword [esp], eax
call fcn.004628a0
cmp dword [ebp - 0x20ca8], 0x80
mov eax, dword [ebp - 0x20ca0]
mov dword [ebp - 0x20bd8], 0
mov dword [ebp - 0x20bdc], eax
jbe 0x419bfa
mov esi, dword [ebp - 0x20ca8]
lea eax, [esi - 0x80]
shr eax, 2
cmp dword [ebp - 0x20ca0], eax
jne 0x419bfa
mov dword [esp + 4], 1
mov dword [esp], esi
call sub.msvcrt.dll_calloc
test eax, eax
mov dword [ebp - 0x20be0], eax
je 0x419bda
mov ecx, eax
mov edx, 0x40
mov dword [ebp - 0x20c90], 0x49
and ecx, 0x3f
sub edx, ecx
lea ecx, [ebp - 0x20be4]
add eax, edx
mov dword [ebp - 0x20bd8], edx
mov dword [ebp - 0x20be0], eax
call fcn.00465bb0
mov ebx, dword [ebp - 0x20c98]
mov eax, dword [ebx + 0x10c]
sub eax, dword [ebx + 0x108]
sar eax, 3
imul eax, eax, 0xaaaaaaab
mov dword [ebp - 0x20d84], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], 0xffffffff
mov eax, dword [ebx + 0xe8]
mov edx, dword [ebx + 0xec]
mov dword [esp + 4], eax
lea eax, [ebp - 0x20058]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x23
call fcn.004084c0
lea ecx, [ebp - 0x20058]
call fcn.00467ea0
mov dword [ebp - 0x20d90], eax
mov eax, dword [ebp - 0x20ce0]
lea edi, [ebp - 0x20458]
mov ecx, 0x100
mov dword [ebp - 0x20d8c], edx
mov dword [ebp - 0x206c4], 0x508fa4
mov dword [ebp - 0x206c0], 0x508fc4
mov dword [ebp - 0x206bc], 0
add eax, 0xffffff80
mov dword [ebp - 0x206b8], 0
mov dword [ebp - 0x206b4], 0
mov dword [ebp - 0x206a8], eax
xor eax, eax
mov dword [ebp - 0x206b0], 0
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x20ce4]
lea ecx, [ebp - 0x20c08]
mov dword [ebp - 0x206ac], 0xffffffff
mov dword [ebp - 0x20c08], 0
mov dword [ebp - 0x20c04], 0
mov dword [ebp - 0x20c00], 0
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x24
call fcn.00402bc0
mov edx, dword [ebp - 0x20c10]
mov ebx, dword [ebp - 0x20c14]
sub esp, 4
mov ecx, dword [ebp - 0x20ce8]
mov esi, dword [ebp - 0x20ce4]
mov dword [ebp - 0x20bfc], 0
mov dword [ebp - 0x20bf8], 0
mov eax, edx
mov dword [ebp - 0x20bf4], 0
mov dword [ebp - 0x20cf8], ebx
sub eax, ebx
shr ecx, 2
mov dword [ebp - 0x20d94], 0
sar eax, 2
mov dword [ebp - 0x20d98], ecx
mov dword [ebp - 0x20d4c], 0
mov dword [ebp - 0x20d00], 0
mov dword [ebp - 0x20d40], 0
mov dword [ebp - 0x20d3c], 0
mov dword [ebp - 0x20d50], 0
mov dword [ebp - 0x20d08], 0
mov dword [ebp - 0x20d80], 0
mov dword [ebp - 0x20d7c], 0
mov dword [ebp - 0x20d60], 0
mov dword [ebp - 0x20d5c], 0
mov dword [ebp - 0x20d28], esi
mov dword [ebp - 0x20d24], 0
cmp eax, dword [ebp - 0x20d00]
mov dword [ebp - 0x20d1c], 0xffffffff
ja 0x4171a8
lea eax, [ebp - 0x20658]
mov dword [ebp - 0x20d2c], 0
mov dword [ebp - 0x20d68], 0
mov dword [ebp - 0x20d64], 0
mov dword [ebp - 0x20cf0], 0
mov dword [ebp - 0x20d38], eax
lea eax, [ebp - 0x20558]
mov dword [ebp - 0x20ce4], 0
mov dword [ebp - 0x20ce0], eax
sub edx, dword [ebp - 0x20cf8]
mov ebx, dword [ebp - 0x20d00]
xor eax, eax
mov edi, dword [ebp - 0x20d38]
mov ecx, 0x40
mov dword [ebp - 0x20754], 0
mov dword [ebp - 0x2073c], 0
mov dword [ebp - 0x20738], 0
mov dword [ebp - 0x20734], 0
mov dword [ebp - 0x20730], 0
sar edx, 2
mov dword [ebp - 0x2072c], 0
cmp edx, ebx
mov dword [ebp - 0x20d30], edx
rep stosd dword es:[edi], eax
ja 0x415d4b
mov byte [ebp - 0x20d45], 0
mov dword [ebp - 0x20cd8], 0xffffffff
mov dword [ebp - 0x20d04], 0
mov dword [ebp - 0x20cb8], 0
mov dword [ebp - 0x20cb4], 0
mov edi, dword [ebp - 0x20ce0]
xor eax, eax
mov ecx, 0x40
movq xmm1, qword [ebp - 0x20cb8]
mov dword [ebp - 0x20ca0], 0xffffff40
movq qword [ebp - 0x20cc0], xmm1
mov dword [ebp - 0x20cc8], 0
mov dword [ebp - 0x20cd0], 0
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x20ca0]
jmp 0x4152c3
cmp byte [ebp - 0x20ca8], 0
jne 0x41535d
add dword [ebp - 0x20ca0], 1
mov eax, dword [ebp - 0x20ca0]
cmp eax, 0x40
je 0x4153d3
movzx ecx, byte [ebp + eax - 0x20598]
lea edi, [eax + 0xc0]
mov dword [ebp - 0x20cb0], edi
movzx edx, byte [ebp + ecx - 0x20558]
mov byte [ebp - 0x20ca8], cl
cmp edx, 0xff
mov eax, edx
je 0x415328
add eax, 1
mov edi, dword [ebp - 0x20cb4]
mov esi, dword [ebp - 0x20cb8]
mov byte [ebp + ecx - 0x20558], al
movzx eax, byte [edx + 0x4fab20]
mov ecx, edi
imul ecx, eax
mul esi
add edx, ecx
shrd eax, edx, 0xf
sar edx, 0xf
sub dword [ebp - 0x20cc0], eax
sbb dword [ebp - 0x20cbc], edx
cmp byte [ebp - 0x20ca8], 0x20
jne 0x4152a0
mov eax, dword [ebp - 0x20cb0]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_isalnum]
test eax, eax
jne 0x415356
mov eax, dword [ebp - 0x20cb0]
and eax, 0xfffffffd
cmp eax, 0x2c
jne 0x41535d
add dword [ebp - 0x20cd0], 1
mov esi, dword [ebp - 0x20ca0]
lea eax, [esi + 0xb5]
cmp eax, 1
jbe 0x4153a6
lea eax, [esi + 0xb7]
cmp eax, 0xe6
ja 0x4153a6
lea eax, [esi + 0xb2]
cmp eax, 0x11
jbe 0x4153a6
cmp dword [ebp - 0x20ca0], 0x2f
jbe 0x4153b6
xor eax, eax
cmp byte [ebp - 0x20ca8], 0x8b
sete al
add dword [ebp - 0x20cc8], eax
jmp 0x4152ad
sub dword [ebp - 0x20cd0], 1
cmp dword [ebp - 0x20ca0], 0x2f
ja 0x41538f
movzx eax, byte [ebp - 0x20ca8]
test al, al
je 0x4152ad
add eax, 0xffffff80
cmp al, 0x40
adc dword [ebp - 0x20cd0], 0xffffffff
jmp 0x41538f
xor eax, eax
cmp dword [ebp - 0x20cd0], 2
mov edx, dword [ebp - 0x20cb4]
mov esi, edx
setg al
mov dword [ebp - 0x20d54], eax
xor eax, eax
cmp dword [ebp - 0x20cc8], 4
setg al
mov dword [ebp - 0x20d58], eax
mov eax, dword [ebp - 0x20cb8]
or esi, eax
je 0x415446
mov edx, dword [ebp - 0x20cbc]
mov eax, dword [ebp - 0x20cc0]
movq xmm2, qword [ebp - 0x20cb8]
movq qword [esp + 8], xmm2
mov ecx, edx
imul ecx, eax
mul eax
add ecx, ecx
add edx, ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00457350
mov dword [ebp - 0x20cc0], eax
mov dword [ebp - 0x20cbc], edx
movzx eax, byte [ebp - 0x20558]
mov esi, dword [ebp - 0x20cb4]
mov ebx, dword [ebp - 0x20cb8]
mov ecx, esi
mov esi, dword [ebp - 0x20cc0]
imul ecx, eax
mul ebx
mov ebx, dword [ebp - 0x20d04]
add edx, ecx
mov ecx, esi
shrd eax, edx, 8
cmp ebx, eax
cmova eax, ebx
movzx ebx, byte [ebp - 0x20d45]
cmp eax, esi
cmova ecx, eax
xor edx, edx
xor eax, eax
jmp 0x41549b
movzx ebx, dl
movzx ebx, byte [ebp + ebx - 0x20658]
cmp byte [ebp + edx - 0x20458], bl
sete bl
add edx, 1
movzx ebx, bl
add eax, ebx
cmp edx, 0x400
jne 0x415490
mov edi, dword [ebp - 0x20cb4]
mov esi, dword [ebp - 0x20cb8]
mov ebx, edi
imul ebx, eax
mul esi
add edx, ebx
shrd eax, edx, 0xa
cmp ecx, eax
cmova eax, ecx
xor edx, edx
cmp edx, edi
mov dword [ebp - 0x20cd0], eax
jl 0x4154f1
jg 0x4154e5
cmp eax, esi
jbe 0x4154f1
mov eax, dword [ebp - 0x20cb8]
mov dword [ebp - 0x20cd0], eax
mov esi, dword [ebp - 0x20d08]
mov eax, dword [ebp - 0x20d2c]
test esi, esi
setne byte [ebp - 0x20ca0]
movzx ebx, byte [ebp - 0x20ca0]
test eax, eax
sete al
and al, bl
mov byte [ebp - 0x20ca8], al
je 0x415820
mov edi, dword [ebp - 0x20d30]
cmp dword [ebp - 0x20d00], edi
jae 0x415820
mov eax, dword [ebp - 0x20cf8]
mov edx, dword [ebp - 0x20d4c]
xor edi, edi
mov dword [ebp - 0x20cbc], edi
mov dword [ebp - 0x20cac], 0
mov eax, dword [eax + edx]
mov edx, dword [ebp - 0x206b4]
mov ebx, dword [eax + 0x34]
mov ecx, dword [eax + 0x30]
mov esi, edx
mov eax, dword [ebp - 0x20d08]
mov dword [ebp - 0x20cc0], edx
shl eax, 2
add esi, ecx
adc edi, ebx
mov dword [ebp - 0x20cb0], eax
shrd ecx, ebx, 0xe
sar ebx, 0xe
add ecx, esi
mov esi, dword [ebp - 0x20d98]
adc ebx, edi
add ecx, 0x1000
mov edi, dword [ebp - 0x20d94]
adc ebx, 0
add ecx, dword [ebp - 0x20cb0]
adc ebx, dword [ebp - 0x20cac]
mov dword [ebp - 0x20cf8], ecx
cmp ebx, edi
mov dword [ebp - 0x20cf4], ebx
jl 0x4169d7
jg 0x4155c4
cmp ecx, esi
jbe 0x4169d7
mov eax, edx
xor esi, esi
shr eax, 7
cmp dword [ebp - 0x20d50], eax
jb 0x416a39
mov ebx, dword [ebp - 0x20cf4]
mov eax, dword [ebp - 0x20ce8]
mov dword [ebp - 0x20cc4], 0
mov ecx, dword [ebp - 0x20cf8]
cmp ebx, 0
mov dword [ebp - 0x20cc8], eax
jl 0x41560b
jg 0x415604
cmp ecx, eax
jb 0x41560b
movzx esi, byte [ebp - 0x20ca8]
mov ecx, dword [ebp - 0x20cc0]
add ecx, dword [ebp - 0x20cb8]
mov ebx, dword [ebp - 0x20cbc]
adc ebx, dword [ebp - 0x20cb4]
add ecx, 0x50
adc ebx, 0
add ecx, dword [ebp - 0x20cb0]
adc ebx, dword [ebp - 0x20cac]
cmp dword [ebp - 0x20cc4], ebx
jl 0x41564f
jg 0x41587e
cmp dword [ebp - 0x20ce8], ecx
ja 0x41587e
mov eax, dword [ebp - 0x20c98]
mov ecx, dword [eax + 0x108]
mov eax, dword [eax + 0x10c]
mov dword [ebp - 0x20ca0], eax
sub eax, ecx
sar eax, 3
imul eax, eax, 0xaaaaaaab
mov ebx, eax
sub ebx, dword [ebp - 0x20d08]
cmp ebx, eax
mov dword [ebp - 0x20cc0], ebx
jae 0x416144
lea eax, [ebx + ebx*2]
shl eax, 3
mov dword [ebp - 0x20cc8], eax
mov eax, dword [ecx + eax + 0x14]
mov dword [ebp - 0x20ca8], 4
mov dword [ebp - 0x20ca0], eax
sar eax, 0x1f
mov dword [ebp - 0x20c9c], eax
mov eax, edx
xor ecx, ecx
add eax, 1
setb cl
cmp eax, dword [ebp - 0x206ac]
mov ebx, eax
ja 0x417c70
test ecx, ecx
jne 0x417c70
mov esi, dword [ebp - 0x206b8]
cmp eax, esi
jbe 0x415790
mov ecx, dword [ebp - 0x206a8]
mov edi, esi
mov esi, esi
lea edi, [edi]
lea edi, [ecx + edi*2]
cmp eax, edi
jae 0x4156f0
cmp esi, edi
mov dword [ebp - 0x20cb0], edi
mov eax, dword [ebp - 0x206bc]
jae 0x415744
test eax, eax
je 0x4157f0
mov ebx, dword [ebp - 0x20cb0]
mov dword [esp], eax
mov dword [esp + 4], ebx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x415806
mov edx, dword [ebp - 0x206b4]
mov esi, dword [ebp - 0x20cb0]
mov dword [ebp - 0x206bc], eax
lea ebx, [edx + 1]
mov dword [ebp - 0x206b8], esi
mov esi, dword [ebp - 0x20ca0]
sub dword [ebp - 0x20ca8], 1
mov dword [ebp - 0x206b4], ebx
mov edi, dword [ebp - 0x20c9c]
mov ebx, esi
mov byte [eax + edx], bl
je 0x4157a0
mov eax, esi
mov edx, edi
shrd eax, edi, 8
shr edx, 8
mov dword [ebp - 0x20c9c], edx
mov dword [ebp - 0x20ca0], eax
mov edx, dword [ebp - 0x206b4]
jmp 0x4156b1
mov eax, dword [ebp - 0x206bc]
jmp 0x415744
mov eax, dword [ebp - 0x20c98]
add dword [ebp - 0x20cc0], 1
mov ebx, dword [ebp - 0x20cc0]
add dword [ebp - 0x20cc8], 0x18
mov edx, dword [ebp - 0x206b4]
mov ecx, dword [eax + 0x108]
mov eax, dword [eax + 0x10c]
mov dword [ebp - 0x20ca0], eax
sub eax, ecx
sar eax, 3
imul eax, eax, 0xaaaaaaab
cmp ebx, eax
jae 0x416144
mov eax, dword [ebp - 0x20cc8]
jmp 0x415694
mov eax, dword [ebp - 0x20cb0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x415729
mov dword [esp], str.Out_of_memory
mov dword [ebp - 0x20c90], 0x33
call fcn.00402a80
lea esi, [esi]
mov edx, dword [ebp - 0x206b4]
xor edi, edi
xor ebx, ebx
lea esi, [esi*4]
mov dword [ebp - 0x20ca4], 0
mov eax, dword [ebp - 0x20ce8]
mov ecx, edx
add ecx, dword [ebp - 0x20cb8]
adc ebx, dword [ebp - 0x20cb4]
mov dword [ebp - 0x20ca8], eax
add ecx, 0x50
adc ebx, 0
add ecx, esi
mov esi, 1
adc ebx, edi
cmp ebx, dword [ebp - 0x20ca4]
jg 0x41587e
jl 0x415cb3
cmp ecx, dword [ebp - 0x20ca8]
jb 0x415cb3
mov edi, dword [ebp - 0x20d30]
cmp dword [ebp - 0x20d00], edi
je 0x415cc7
mov eax, esi
test al, al
je 0x4158a3
cmp byte [ebp - 0x20ca0], 0
jne 0x41564f
mov esi, dword [ebp - 0x20cb8]
test esi, esi
mov eax, esi
mov dword [ebp - 0x20ca0], esi
jle 0x41598b
mov ecx, dword [ebp - 0x206b4]
xor edx, edx
mov dword [ebp - 0x20ca8], esi
add eax, ecx
setb dl
cmp eax, dword [ebp - 0x206ac]
ja 0x419c49
test edx, edx
jne 0x419c49
mov ebx, dword [ebp - 0x206b8]
mov edi, dword [ebp - 0x20c08]
cmp eax, ebx
mov dword [ebp - 0x20cc0], edi
jbe 0x415953
mov edx, dword [ebp - 0x206a8]
mov esi, ebx
nop
lea esi, [edx + esi*2]
cmp eax, esi
jae 0x415900
cmp ebx, esi
mov dword [ebp - 0x20cb0], esi
jae 0x415953
test esi, esi
je 0x416a32
mov eax, dword [ebp - 0x206bc]
test eax, eax
je 0x417c48
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x417c58
mov ecx, dword [ebp - 0x206b4]
mov dword [ebp - 0x206bc], eax
mov eax, dword [ebp - 0x20cb0]
mov dword [ebp - 0x206b8], eax
mov eax, dword [ebp - 0x20cc0]
test eax, eax
je 0x41597f
add ecx, dword [ebp - 0x206bc]
mov edx, dword [ebp - 0x20ca8]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp], ecx
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x206b4]
add ecx, dword [ebp - 0x20ca8]
mov dword [ebp - 0x206b4], ecx
mov eax, dword [ebp - 0x20d40]
mov ebx, dword [ebp - 0x20d58]
xor edx, edx
mov esi, dword [ebp - 0x20d54]
mov edi, dword [ebp - 0x20cd0]
add dword [ebp - 0x20d50], edi
mov edi, dword [ebp - 0x20cb4]
lea eax, [eax + ebx*4]
add dword [ebp - 0x20d08], 1
mov dword [ebp - 0x20d40], eax
cmp edx, edi
mov eax, dword [ebp - 0x20d3c]
lea eax, [eax + esi*2]
mov esi, dword [ebp - 0x20cb8]
mov dword [ebp - 0x20d3c], eax
mov eax, dword [ebp - 0x20d44]
jg 0x415a19
jl 0x4159e6
cmp eax, esi
ja 0x415a19
lea eax, [ebp - 0x20358]
mov dword [esp + 8], 0x300
lea edi, [ebp - 0x20158]
mov dword [esp + 4], eax
lea eax, [ebp - 0x20458]
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov ecx, 0x40
mov esi, dword [ebp - 0x20d38]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x20c14]
mov edx, dword [ebp - 0x20c10]
mov esi, eax
mov dword [ebp - 0x20cf8], eax
mov eax, edx
sub eax, esi
sar eax, 2
cmp eax, dword [ebp - 0x20d00]
jbe 0x415c9a
mov ecx, dword [ebp - 0x20754]
test ecx, ecx
jne 0x415c5c
mov edi, dword [ebp - 0x20c98]
mov ecx, dword [ebp - 0x20738]
mov ebx, dword [ebp - 0x20ca0]
mov eax, dword [edi + 0x10c]
mov dword [ebp - 0x20554], ecx
mov ecx, dword [ebp - 0x20734]
mov dword [ebp - 0x20544], ebx
mov edx, eax
sub edx, dword [edi + 0x108]
mov dword [ebp - 0x20550], ecx
mov ecx, dword [ebp - 0x20730]
sar edx, 3
mov dword [ebp - 0x2054c], ecx
mov ecx, dword [ebp - 0x2072c]
imul edx, edx, 0xaaaaaaab
cmp eax, dword [edi + 0x110]
mov dword [ebp - 0x20548], ecx
mov dword [ebp - 0x20754], edx
mov edx, dword [ebp - 0x2073c]
mov dword [ebp - 0x20558], edx
je 0x417d99
test eax, eax
je 0x415af8
mov dword [eax], edx
mov edx, dword [ebp - 0x20554]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x20550]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x2054c]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x20548]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x20544]
mov dword [eax + 0x14], edx
mov esi, dword [ebp - 0x20c98]
add eax, 0x18
mov dword [esi + 0x10c], eax
mov eax, dword [ebp - 0x20be4]
mov edx, dword [ebp - 0x20bd4]
mov dword [ebp - 0x20bd0], 0
mov dword [ebp - 0x20bcc], 0
mov dword [ebp - 0x20bc8], 0
mov dword [ebp - 0x20bc4], 0
mov esi, dword [eax + 4]
mov ebx, dword [eax]
mov dword [ebp - 0x20bc0], 0
mov dword [ebp - 0x20ca0], edx
mov eax, esi
mov dword [ebp - 0x20cc0], esi
mov dword [ebp - 0x20ca8], ebx
sub eax, ebx
sar eax, 3
imul eax, eax, 0xaaaaaaab
cmp eax, edx
jbe 0x415c38
mov edx, dword [ebp - 0x20bdc]
mov edi, dword [ebp - 0x20ca0]
mov eax, edx
shr eax, 2
lea eax, [eax + eax*2]
cmp eax, edi
jbe 0x415cda
lea eax, [edi + edi*2]
shl eax, 3
add eax, dword [ebp - 0x20ca8]
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x20cb0], eax
test edx, edx
js 0x415c08
lea ebx, [ebp - 0x20bd0]
mov dword [esp + 8], 0x14
mov dword [esp], eax
mov dword [esp + 4], ebx
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x415c08
mov ebx, dword [ebp - 0x20bdc]
mov eax, dword [ebp - 0x20cb0]
lea ecx, [ebx - 1]
and ecx, dword [eax]
test ebx, ebx
je 0x415c08
mov esi, dword [ebp - 0x20be0]
lea edx, [esi + ecx*4]
mov eax, dword [edx]
test eax, eax
je 0x415d32
xor eax, eax
jmp 0x415c01
mov edx, ecx
xor edx, eax
lea edx, [esi + edx*4]
mov edi, dword [edx]
test edi, edi
je 0x415d32
add eax, 1
cmp ebx, eax
jne 0x415bf0
mov eax, dword [ebp - 0x20cc0]
sub eax, dword [ebp - 0x20ca8]
add dword [ebp - 0x20ca0], 1
mov esi, dword [ebp - 0x20ca0]
sar eax, 3
imul eax, eax, 0xaaaaaaab
mov dword [ebp - 0x20bd4], esi
cmp eax, esi
ja 0x415b71
mov eax, dword [ebp - 0x20cb8]
add dword [ebp - 0x20d68], eax
mov edx, dword [ebp - 0x20cb4]
mov eax, dword [ebp - 0x20c14]
adc dword [ebp - 0x20d64], edx
mov dword [ebp - 0x20cf8], eax
mov eax, dword [ebp - 0x20cf8]
mov edi, dword [ebp - 0x20d4c]
mov edx, dword [eax + edi]
mov eax, dword [edx + 0x4c]
cmp eax, dword [edx + 0x50]
je 0x416b40
test eax, eax
mov ecx, dword [ebp - 0x20754]
je 0x415c83
mov dword [eax], ecx
add eax, 4
mov dword [edx + 0x4c], eax
mov edx, dword [ebp - 0x20c10]
mov eax, edx
sub eax, dword [ebp - 0x20cf8]
sar eax, 2
cmp dword [ebp - 0x20cd8], 0xffffffff
je 0x416b84
add dword [ebp - 0x20d2c], 1
jmp 0x4151c4
xor esi, esi
mov edi, dword [ebp - 0x20d30]
cmp dword [ebp - 0x20d00], edi
jne 0x415890
mov ebx, dword [ebp - 0x20d08]
test ebx, ebx
je 0x4158a3
jmp 0x41564f
lea eax, [edx + edx]
cmp eax, edx
mov dword [ebp - 0x20ca0], eax
jb 0x417ee4
test edx, edx
jne 0x41693e
mov dword [ebp - 0x20bd8], 0
mov eax, dword [ebp - 0x20be4]
mov dword [ebp - 0x20bd4], 1
mov dword [ebp - 0x20ca0], 1
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x20ca8], edi
mov dword [ebp - 0x20cc0], eax
mov eax, 0x18
jmp 0x415b93
mov eax, dword [ebp - 0x20ca0]
mov dword [edx], eax
mov eax, dword [ebp - 0x20bd4]
mov dword [ebp - 0x20ca0], eax
jmp 0x415c08
mov ecx, dword [ebp - 0x20ce0]
mov dword [ebp - 0x20c90], 0x33
call fcn.00425e20
mov eax, dword [ebp - 0x20d44]
mov dword [ebp - 0x20cb0], 0
mov dword [ebp - 0x20cc0], 0
mov dword [ebp - 0x20ca0], 0
mov dword [ebp - 0x20d04], 0
mov dword [ebp - 0x20cb8], 0
mov dword [ebp - 0x20cb4], 0
mov dword [ebp - 0x20cc8], eax
mov dword [ebp - 0x20cc4], 0
mov edi, dword [ebp - 0x20ce4]
mov ebx, dword [ebp - 0x20cf0]
cmp edi, ebx
mov eax, edi
jge 0x416080
lea esi, [edi + 1]
mov dword [ebp - 0x20ce4], esi
mov esi, dword [ebp - 0x20ca0]
movzx ebx, byte [ebp + eax - 0x10038]
cmp byte [ebp + esi - 0x20658], bl
mov byte [ebp - 0x20ca8], bl
mov dword [ebp - 0x20cd8], ebx
je 0x416120
mov eax, dword [ebp - 0x20cc0]
mov edi, esi
lea eax, [eax + ebx + 1]
imul eax, eax, 0x1033c4d6
mov dword [ebp - 0x20cc0], eax
movzx eax, byte [ebp - 0x20ca8]
mov edx, dword [ebp - 0x20554]
mov byte [ebp + edi - 0x20658], al
mov eax, dword [ebp - 0x20558]
mov ecx, eax
shr ecx, 5
and ecx, 0xf
add ecx, 4
mov ebx, dword [ebp + ecx*4 - 0x2054c]
shl ebx, 8
or ebx, dword [ebp - 0x20cd8]
add eax, 8
adc edx, 0
mov dword [ebp + ecx*4 - 0x2054c], ebx
mov dword [ebp - 0x20558], eax
and eax, 0x1ff
test eax, eax
mov dword [ebp - 0x20554], edx
je 0x416103
add dword [ebp - 0x20cb8], 1
movzx ebx, byte [ebp - 0x20ca8]
adc dword [ebp - 0x20cb4], 0
mov eax, dword [ebp - 0x20c08]
mov edx, dword [ebp - 0x20cb4]
mov edi, dword [ebp - 0x20cb0]
cmp edx, 0
mov byte [eax + edi], bl
mov eax, dword [ebp - 0x20cb8]
jle 0x416004
mov ecx, dword [ebp - 0x20ce0]
add dword [ebp - 0x20d60], eax
mov dword [ebp - 0x20c90], 0x33
adc dword [ebp - 0x20d5c], edx
call fcn.004272e0
mov edx, dword [eax]
mov dword [ebp - 0x2073c], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x20738], edx
mov edx, dword [eax + 8]
mov dword [ebp - 0x20734], edx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x20730], edx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x2072c], eax
mov eax, dword [ebp - 0x20bdc]
mov esi, eax
mov dword [ebp - 0x20cd0], eax
sub eax, 1
and eax, dword [ebp - 0x2073c]
test esi, esi
mov dword [ebp - 0x20cc0], eax
je 0x416905
mov eax, dword [ebp - 0x20be0]
mov edx, dword [ebp - 0x20cc0]
mov dword [ebp - 0x20cf8], eax
mov eax, dword [eax + edx*4]
test eax, eax
mov dword [ebp - 0x20ca8], eax
je 0x416905
mov eax, dword [ebp - 0x20be4]
mov dword [ebp - 0x20ca0], 0
mov eax, dword [eax]
mov dword [ebp - 0x20cc8], eax
lea eax, [ebp - 0x2073c]
mov dword [ebp - 0x20cb0], eax
jmp 0x415f9c
add dword [ebp - 0x20ca0], 1
mov eax, dword [ebp - 0x20ca0]
cmp dword [ebp - 0x20cd0], eax
je 0x416905
mov eax, dword [ebp - 0x20cc0]
xor eax, dword [ebp - 0x20ca0]
mov edi, dword [ebp - 0x20cf8]
mov eax, dword [edi + eax*4]
test eax, eax
mov dword [ebp - 0x20ca8], eax
je 0x416905
mov dword [esp + 8], 0x14
mov eax, dword [ebp - 0x20ca8]
mov esi, dword [ebp - 0x20cc8]
lea eax, [eax + eax*2]
lea eax, [esi + eax*8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20cb0]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x415f60
mov eax, dword [ebp - 0x20ca8]
mov edx, dword [ebp - 0x20c10]
mov dword [ebp - 0x20754], eax
mov eax, dword [ebp - 0x20c14]
mov edi, eax
mov dword [ebp - 0x20cf8], eax
mov eax, edx
sub eax, edi
sar eax, 2
cmp dword [ebp - 0x20d00], eax
jb 0x415c5c
jmp 0x415c9a
jl 0x416014
mov edi, dword [ebp - 0x20d28]
cmp eax, edi
jae 0x415ea4
mov eax, dword [ebp - 0x20c98]
mov eax, dword [eax + 0x30]
cmp eax, 0x16
jg 0x416060
mov ecx, 0x16
sub ecx, eax
mov eax, 1
shl eax, cl
cmp dword [ebp - 0x20cc0], eax
jae 0x416060
mov edx, dword [ebp - 0x20cb4]
mov eax, dword [ebp - 0x20cb8]
cmp edx, 0
jl 0x416060
jg 0x415ea4
mov edi, dword [ebp - 0x20cc8]
cmp eax, edi
jae 0x415ea4
lea esi, [esi]
mov eax, dword [ebp - 0x20cd8]
add dword [ebp - 0x20cb0], 1
mov dword [ebp - 0x20ca0], eax
jmp 0x415db2
lea eax, [ebp - 0x20c3c]
mov dword [ebp - 0x20c3c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x1000
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x10038]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20d1c]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x33
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x20c3c]
sub esp, 0x14
test eax, eax
mov dword [ebp - 0x20cf0], eax
jg 0x417f60
mov dword [ebp - 0x20cd8], 0xffffffff
mov dword [ebp - 0x20ce4], 0
mov eax, dword [ebp - 0x20cb8]
mov edx, dword [ebp - 0x20cb4]
jmp 0x415ea4
mov ecx, dword [ebp - 0x20ce0]
mov dword [ebp - 0x20c90], 0x33
call fcn.00425e80
jmp 0x415e6b
mov eax, dword [ebp - 0x20cc0]
add dword [ebp - 0x20d04], 1
mov edi, esi
lea eax, [eax + ebx + 1]
imul eax, eax, 0x12b9b0a1
mov dword [ebp - 0x20cc0], eax
jmp 0x415e10
mov dword [ebp - 0x20ca0], 4
mov eax, edx
xor ecx, ecx
add eax, 1
setb cl
cmp eax, dword [ebp - 0x206ac]
mov ebx, eax
ja 0x419bae
test ecx, ecx
jne 0x419bae
mov esi, dword [ebp - 0x206b8]
cmp eax, esi
jbe 0x4161f2
mov ecx, dword [ebp - 0x206a8]
mov edi, esi
lea edi, [ecx + edi*2]
cmp eax, edi
jae 0x416180
cmp esi, edi
mov dword [ebp - 0x20ca8], edi
mov eax, dword [ebp - 0x206bc]
jae 0x4161d4
test eax, eax
je 0x416ad8
mov edi, dword [ebp - 0x20ca8]
mov dword [esp], eax
mov dword [esp + 4], edi
call sub.msvcrt.dll_realloc
test eax, eax
je 0x416aee
mov edx, dword [ebp - 0x206b4]
mov esi, dword [ebp - 0x20ca8]
mov dword [ebp - 0x206bc], eax
lea ebx, [edx + 1]
mov dword [ebp - 0x206b8], esi
sub dword [ebp - 0x20ca0], 1
mov dword [ebp - 0x206b4], ebx
mov byte [eax + edx], 0
je 0x4161fa
mov edx, dword [ebp - 0x206b4]
jmp 0x41614e
mov eax, dword [ebp - 0x206bc]
jmp 0x4161d4
mov eax, dword [ebp - 0x20d08]
mov dword [ebp - 0x20c9c], 0
mov dword [ebp - 0x20ca8], 4
mov dword [ebp - 0x20ca0], eax
mov ecx, dword [ebp - 0x206b4]
xor edx, edx
mov eax, ecx
add eax, 1
setb dl
cmp eax, dword [ebp - 0x206ac]
mov ebx, eax
ja 0x419b98
test edx, edx
jne 0x419b98
mov esi, dword [ebp - 0x206b8]
cmp eax, esi
jbe 0x4168fa
mov edx, dword [ebp - 0x206a8]
mov edi, esi
lea esi, [esi]
lea edi, [edi]
lea edi, [edx + edi*2]
cmp eax, edi
jae 0x416260
cmp esi, edi
mov dword [ebp - 0x20cb0], edi
mov eax, dword [ebp - 0x206bc]
jae 0x4162b4
test eax, eax
je 0x416b14
mov edx, dword [ebp - 0x20cb0]
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x416b2a
mov ecx, dword [ebp - 0x206b4]
mov edx, dword [ebp - 0x20cb0]
mov dword [ebp - 0x206bc], eax
lea ebx, [ecx + 1]
mov dword [ebp - 0x206b8], edx
mov esi, dword [ebp - 0x20ca0]
mov edi, dword [ebp - 0x20c9c]
mov dword [ebp - 0x206b4], ebx
mov ebx, esi
mov edx, edi
mov byte [eax + ecx], bl
mov eax, esi
shr edx, 8
shrd eax, edi, 8
sub dword [ebp - 0x20ca8], 1
mov dword [ebp - 0x20c9c], edx
mov dword [ebp - 0x20ca0], eax
jne 0x41621a
mov esi, dword [ebp - 0x20c98]
lea eax, [ebp - 0x2071c]
lea ecx, [ebp - 0x20724]
mov dword [ebp - 0x20724], eax
mov edx, dword [esi + 0x60]
mov eax, dword [esi + 0x5c]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 0x33
call fcn.00401570
mov esi, dword [ebp - 0x20c98]
sub esp, 8
mov eax, dword [esi + 0x5c]
movsx eax, byte [eax]
sub eax, 0x30
cmp eax, 9
ja 0x41656c
mov eax, dword [ebp - 0x20d08]
mov edi, dword [ebp - 0x20d40]
xor edx, edx
mov dword [ebp - 0x20c90], 0x25
cmp eax, edi
setb dl
cmp eax, dword [ebp - 0x20d3c]
setb al
movzx eax, al
lea edx, [eax + edx*2]
lea eax, [ebp - 0x208d4]
mov ecx, edx
sar ecx, 0x1f
call fcn.00401bb0
mov ecx, dword [ebp - 0x206b4]
mov eax, dword [ebp - 0x20d50]
xor edx, edx
mov dword [ebp - 0x20c90], 0x26
shr ecx, 8
add ecx, 1
div ecx
xor ecx, ecx
mov edx, eax
lea eax, [ebp - 0x208ec]
call fcn.00401bb0
lea ecx, [ebp - 0x208ec]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x4fa4fb
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x20c90], 0x27
call fcn.004d8dc0
lea ebx, [ebp - 0x206ec]
lea edx, [eax + 8]
sub esp, 0x10
mov dword [ebp - 0x206f4], ebx
mov ecx, dword [eax]
mov dword [ebp - 0x20ca0], ebx
cmp ecx, edx
je 0x417c28
mov dword [ebp - 0x206f4], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x206ec], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x206f0], ecx
mov dword [eax + 4], 0
mov byte [eax + 8], 0
cmp dword [ebp - 0x206f0], 0x7fffffff
mov dword [eax], edx
je 0x419bc4
lea ecx, [ebp - 0x206f4]
mov dword [esp + 4], 1
mov dword [esp], 0x4fa4fb
mov dword [ebp - 0x20c90], 0x28
call fcn.004daf70
lea esi, [ebp - 0x206d4]
lea edx, [eax + 8]
sub esp, 8
mov dword [ebp - 0x206dc], esi
mov ecx, dword [eax]
mov dword [ebp - 0x20ca8], esi
cmp ecx, edx
je 0x417c38
mov dword [ebp - 0x206dc], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x206d4], ecx
mov ecx, dword [eax + 4]
lea ebx, [ebp - 0x208d4]
mov dword [ebp - 0x206d8], ecx
mov dword [eax], edx
lea edx, [ebp - 0x206dc]
mov dword [eax + 4], 0
mov byte [eax + 8], 0
lea eax, [ebp - 0x208bc]
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x29
call fcn.004ef800
mov eax, dword [ebp - 0x208b8]
lea ecx, [ebp - 0x20724]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x208bc]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x2a
call fcn.004daf70
mov eax, dword [ebp - 0x208bc]
lea edx, [ebp - 0x208b4]
sub esp, 8
cmp eax, edx
je 0x416510
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x206dc]
cmp eax, dword [ebp - 0x20ca8]
je 0x416526
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x206f4]
cmp eax, dword [ebp - 0x20ca0]
je 0x41653c
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x208ec]
lea edx, [ebp - 0x208e4]
cmp eax, edx
je 0x416554
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x208d4]
lea edx, [ebp - 0x208cc]
cmp eax, edx
je 0x41656c
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20c98]
lea esi, [ebp - 0x2088c]
xor ecx, ecx
mov edx, dword [eax + 0x10c]
sub edx, dword [eax + 0x108]
mov eax, esi
mov dword [ebp - 0x20c90], 0x25
sar edx, 3
imul edx, edx, 0xaaaaaaab
sub edx, dword [ebp - 0x20d08]
call fcn.004016f0
mov eax, dword [ebp - 0x20c98]
mov edx, dword [eax + 0xe8]
mov ecx, dword [eax + 0xec]
lea eax, [ebp - 0x208a4]
mov dword [ebp - 0x20c90], 0x2b
call fcn.00401950
lea ecx, [ebp - 0x208a4]
mov dword [esp + 0xc], 3
mov dword [esp + 8], 0x4f906a
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x20c90], 0x2c
call fcn.004d8dc0
lea edi, [ebp - 0x206ec]
lea edx, [eax + 8]
sub esp, 0x10
mov dword [ebp - 0x206f4], edi
mov ecx, dword [eax]
mov dword [ebp - 0x20ca0], edi
cmp ecx, edx
je 0x416b04
mov dword [ebp - 0x206f4], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x206ec], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x206f0], ecx
mov dword [eax + 4], 0
mov byte [eax + 8], 0
cmp dword [ebp - 0x206f0], 0x7fffffff
mov dword [eax], edx
je 0x419b82
lea ecx, [ebp - 0x206f4]
mov dword [esp + 4], 1
mov dword [esp], 0x4fa4fd
mov dword [ebp - 0x20c90], 0x2d
call fcn.004daf70
lea ebx, [ebp - 0x206d4]
lea edx, [eax + 8]
sub esp, 8
mov dword [ebp - 0x206dc], ebx
mov ecx, dword [eax]
mov dword [ebp - 0x20ca8], ebx
cmp ecx, edx
je 0x416ac8
mov dword [ebp - 0x206dc], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x206d4], ecx
mov ecx, dword [eax + 4]
lea edi, [ebp - 0x206dc]
mov dword [ebp - 0x206d8], ecx
mov dword [eax], edx
lea edx, [ebp - 0x2088c]
mov dword [eax + 4], 0
mov byte [eax + 8], 0
lea eax, [ebp - 0x2070c]
mov dword [esp + 8], edx
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x2e
call fcn.004ef800
mov eax, dword [ebp - 0x206dc]
cmp eax, dword [ebp - 0x20ca8]
je 0x416705
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x206f4]
cmp eax, dword [ebp - 0x20ca0]
je 0x41671b
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x208a4]
lea edx, [ebp - 0x2089c]
cmp eax, edx
je 0x416733
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x2088c]
lea edx, [ebp - 0x20884]
cmp eax, edx
je 0x41674b
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20c98]
mov eax, dword [eax + 0xd0]
mov dword [esp + 0x10], eax
movq xmm6, qword [ebp - 0x20d60]
movq qword [esp + 8], xmm6
movq xmm7, qword [ebp - 0x20d10]
movq qword [esp], xmm7
mov dword [ebp - 0x20c90], 0x2f
call fcn.004078f0
mov eax, dword [ebp - 0x20c98]
mov esi, dword [eax + 0xd0]
test esi, esi
jle 0x416a75
mov eax, dword [eax + 0x5c]
cmp byte [eax], 0x69
je 0x4169de
mov edi, dword [ebp - 0x20724]
lea eax, [ebp - 0x2086c]
mov dword [ebp - 0x20874], eax
mov eax, 0xffffffff
test edi, edi
mov dword [ebp - 0x20ca0], edi
je 0x4167d4
mov dword [esp], edi
call sub.msvcrt.dll_strlen
add eax, dword [ebp - 0x20ca0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20ca0]
lea ecx, [ebp - 0x20874]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x2f
call fcn.00401570
lea eax, [ebp - 0x20874]
sub esp, 8
lea ecx, [ebp - 0x20684]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2070c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x206c4]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x30
call fcn.00401e00
mov eax, dword [ebp - 0x20874]
lea edi, [ebp - 0x2086c]
sub esp, 0xc
cmp eax, edi
je 0x416846
mov dword [esp], eax
call fcn.004f28f0
mov edi, dword [ebp - 0x20c98]
mov edx, dword [ebp - 0x20bf8]
mov eax, dword [edi + 0x10c]
sub eax, dword [edi + 0x108]
sar eax, 3
imul eax, eax, 0xaaaaaaab
sub eax, dword [ebp - 0x20d08]
cmp edx, dword [ebp - 0x20bf4]
mov dword [ebp - 0x206dc], eax
je 0x417182
test edx, edx
je 0x416885
mov dword [edx], eax
add edx, 4
mov dword [ebp - 0x20bf8], edx
lea edi, [ebp - 0x20458]
xor eax, eax
mov ecx, 0x100
lea edx, [ebp - 0x20704]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x2070c]
cmp eax, edx
je 0x4168b5
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20724]
lea ebx, [ebp - 0x2071c]
cmp eax, ebx
je 0x4168cd
mov dword [esp], eax
call fcn.004f28f0
mov dword [ebp - 0x20d40], 0
mov dword [ebp - 0x20d3c], 0
mov dword [ebp - 0x20d50], 0
mov dword [ebp - 0x20d08], 0
jmp 0x4158a3
mov eax, dword [ebp - 0x206bc]
jmp 0x4162b4
mov edi, dword [ebp - 0x20c14]
mov eax, dword [ebp - 0x20c10]
mov dword [ebp - 0x20754], 0
sub eax, edi
mov dword [ebp - 0x20cf8], edi
sar eax, 2
mov dword [ebp - 0x20d30], eax
movzx eax, byte [ebp - 0x20658]
mov byte [ebp - 0x20d45], al
jmp 0x41525b
mov eax, dword [ebp - 0x20be0]
sub eax, dword [ebp - 0x20bd8]
mov dword [esp], eax
call fcn.004628a0
mov ebx, dword [ebp - 0x20ca0]
mov dword [ebp - 0x20bdc], 0
mov dword [ebp - 0x20bd8], 0
test ebx, ebx
je 0x415cfd
lea eax, [ebx*4 + 0x80]
mov dword [ebp - 0x20bdc], ebx
cmp eax, 0x80
jbe 0x417f1a
lea edx, [eax - 0x80]
shr edx, 2
cmp ebx, edx
jne 0x417f1a
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.msvcrt.dll_calloc
test eax, eax
mov dword [ebp - 0x20be0], eax
je 0x417efa
mov ecx, eax
mov edx, 0x40
and ecx, 0x3f
sub edx, ecx
add eax, edx
mov dword [ebp - 0x20bd8], edx
mov dword [ebp - 0x20be0], eax
jmp 0x415cfd
xor esi, esi
jmp 0x4155d7
mov eax, dword [ebp - 0x20660]
cmp eax, dword [ebp - 0x2065c]
mov edx, dword [ebp - 0x206b4]
mov dword [ebp - 0x206dc], edx
je 0x417f3a
test eax, eax
je 0x416a02
mov dword [eax], edx
add eax, 4
mov dword [ebp - 0x20660], eax
mov ebx, dword [ebp - 0x206b0]
mov dword [ebp - 0x206b4], 0
test ebx, ebx
je 0x416846
mov dword [ebp - 0x206b0], 0
jmp 0x416846
xor eax, eax
jmp 0x415941
xor eax, eax
xor ebx, ebx
lea esi, [esi]
movzx ecx, byte [ebp + eax - 0x20458]
test cl, cl
je 0x416a5e
movzx esi, al
cmp cl, byte [ebp + esi - 0x20658]
sete cl
movzx ecx, cl
add ebx, ecx
add eax, 1
cmp eax, 0x400
jne 0x416a40
cmp ebx, 8
setbe al
mov esi, eax
jmp 0x4155d7
mov esi, eax
mov eax, dword [eax + 0x10c]
mov edx, dword [ebp - 0x20724]
sub eax, dword [esi + 0x108]
mov dword [esp + 0x10], edx
mov edx, dword [ebp - 0x206b4]
sar eax, 3
imul eax, eax, 0xaaaaaaab
mov dword [esp + 0xc], edx
lea edx, [eax - 1]
mov dword [esp + 8], edx
sub eax, dword [ebp - 0x20d08]
mov dword [esp], str.__u.._u___u__method__s_n
mov dword [esp + 4], eax
call fcn.00462d40
mov eax, dword [ebp - 0x20c98]
jmp 0x416799
movups xmm0, xmmword [eax + 8]
movups xmmword [ebp - 0x206d4], xmm0
jmp 0x4166ad
mov eax, dword [ebp - 0x20ca8]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x4161b9
mov dword [esp], str.Out_of_memory
mov dword [ebp - 0x20c90], 0x33
call fcn.00402a80
movups xmm0, xmmword [eax + 8]
movups xmmword [ebp - 0x206ec], xmm0
jmp 0x416632
mov eax, dword [ebp - 0x20cb0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x416299
mov dword [esp], str.Out_of_memory
mov dword [ebp - 0x20c90], 0x33
call fcn.00402a80
lea eax, [ebp - 0x20754]
lea ecx, [edx + 0x48]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x33
call fcn.004d7330
mov edx, dword [ebp - 0x20c10]
mov esi, dword [ebp - 0x20c14]
sub esp, 4
mov eax, edx
mov dword [ebp - 0x20cf8], esi
sub eax, esi
sar eax, 2
cmp dword [ebp - 0x20cd8], 0xffffffff
jne 0x415ca7
cmp dword [ebp - 0x20d00], eax
jb 0x417f71
add dword [ebp - 0x20d00], 1
add dword [ebp - 0x20d4c], 4
mov ebx, dword [ebp - 0x20d00]
cmp ebx, eax
jbe 0x415164
lea eax, [ebp - 0x2083c]
lea ecx, [ebp - 0x20844]
mov dword [ebp - 0x20844], eax
mov dword [esp + 4], 0x4f906e
mov dword [esp], 0x4f906e
mov dword [ebp - 0x20c90], 0x33
call fcn.00401570
lea eax, [ebp - 0x20844]
sub esp, 8
lea ecx, [ebp - 0x20684]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
lea eax, [ebp - 0x206c4]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x34
call fcn.00401e00
mov eax, dword [ebp - 0x20844]
lea edx, [ebp - 0x2083c]
sub esp, 0xc
cmp eax, edx
je 0x416c2a
mov dword [esp], eax
call fcn.004f28f0
mov edi, dword [ebp - 0x20cfc]
mov eax, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [ebp - 0x20ca8], 0
test edi, edi
mov dword [ebp - 0x20ca0], eax
je 0x416c8b
mov dword [esp + 4], 0xffffffff
mov esi, dword [ebp - 0x20d34]
mov eax, dword [ebp - 0x20ca8]
mov eax, dword [esi + eax*4]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x33
call dword [ebp - 0x20ca0]
add dword [ebp - 0x20ca8], 1
sub esp, 8
mov eax, dword [ebp - 0x20ca8]
cmp eax, dword [ebp - 0x20cfc]
jne 0x416c49
mov dword [esp + 4], 0xffffffff
mov eax, dword [ebp - 0x20c54]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x33
call dword [ebp - 0x20ca0]
mov eax, dword [ebp - 0x20c98]
xor byte [ebp - 0x206a4], 0x4d
sub esp, 8
mov ecx, 0x4f906e
lea ebx, [ebp - 0x206a4]
mov edx, dword [eax + 0x58]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
test eax, eax
cmove eax, ecx
lea ecx, [ebp - 0x10038]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x33
call fcn.004067d0
lea eax, [ebp - 0x20058]
sub esp, 0x14
mov dword [ebp - 0x20bf0], 0x508e20
mov dword [ebp - 0x20be8], 0
mov dword [ebp - 0x20bec], eax
mov eax, dword [ebp - 0x20c98]
mov esi, dword [eax + 0x34]
test esi, esi
je 0x416d3e
lea eax, [ebp - 0x10038]
mov dword [ebp - 0x20be8], eax
mov eax, dword [ebp - 0x20d84]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
mov esi, dword [ebp - 0x20c98]
mov eax, dword [esi + 0xe8]
mov edx, dword [esi + 0xec]
mov dword [esp + 4], eax
lea eax, [ebp - 0x10038]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x35
call fcn.004084c0
lea ecx, [ebp - 0x20058]
call fcn.00467ea0
sub eax, dword [ebp - 0x20d90]
mov esi, dword [ebp - 0x20c98]
sbb edx, dword [ebp - 0x20d8c]
mov dword [ebp - 0x20558], 0x508fa4
mov dword [ebp - 0x20554], 0x508fc4
mov dword [ebp - 0x20550], 0
mov dword [ebp - 0x2054c], 0
mov dword [ebp - 0x20548], 0
mov dword [ebp - 0x20cf0], eax
mov eax, dword [esi + 0x10c]
sub eax, dword [esi + 0x108]
mov dword [ebp - 0x20cec], edx
mov edx, dword [ebp - 0x20bf8]
mov dword [ebp - 0x20544], 0
mov dword [ebp - 0x20540], 0xffffffff
mov dword [ebp - 0x2053c], pe_nt_image_headers32
sar eax, 3
imul eax, eax, 0xaaaaaaab
cmp edx, dword [ebp - 0x20bf4]
mov dword [ebp - 0x20658], eax
je 0x418022
test edx, edx
je 0x416e36
mov dword [edx], eax
add edx, 4
mov dword [ebp - 0x20bf8], edx
mov edx, dword [ebp - 0x20660]
mov eax, dword [ebp - 0x20664]
mov dword [ebp - 0x20cc8], 0
mov ecx, edx
mov ebx, dword [ebp - 0x20cc8]
sub ecx, eax
sar ecx, 2
cmp ebx, ecx
jae 0x41849b
mov ecx, dword [ebp - 0x20bfc]
lea esi, [ebx*4]
add ebx, 1
mov dword [ebp - 0x20cc8], ebx
lea ebx, [esi + 4]
mov dword [ebp - 0x20cd0], esi
mov edi, dword [ecx + esi + 4]
cmp dword [ecx + esi], edi
mov dword [ebp - 0x20cd8], ebx
jae 0x416e55
mov eax, dword [eax + esi]
mov dword [ebp - 0x20ca8], 4
mov dword [ebp - 0x20ca0], eax
sar eax, 0x1f
mov dword [ebp - 0x20c9c], eax
movzx eax, byte [ebp - 0x20ca0]
lea ecx, [ebp - 0x20558]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x36
call fcn.00465fd0
mov edx, dword [ebp - 0x20c9c]
mov eax, dword [ebp - 0x20ca0]
sub esp, 4
shrd eax, edx, 8
shr edx, 8
sub dword [ebp - 0x20ca8], 1
mov dword [ebp - 0x20ca0], eax
mov dword [ebp - 0x20c9c], edx
jne 0x416eb4
mov eax, dword [ebp - 0x20bfc]
mov edx, dword [ebp - 0x20cd0]
mov edi, dword [eax + edx]
cmp edi, dword [eax + edx + 4]
mov dword [ebp - 0x20ca8], edi
jae 0x4182fb
lea eax, [edi + edi*2]
mov esi, dword [ebp - 0x20c98]
mov edx, dword [ebp - 0x20548]
xor ecx, ecx
shl eax, 3
mov dword [ebp - 0x20cb0], eax
add eax, dword [esi + 0x108]
mov dword [ebp - 0x20ca0], eax
mov eax, edx
add eax, 0x14
setb cl
cmp dword [ebp - 0x20540], eax
jb 0x41828d
test ecx, ecx
jne 0x41828d
mov ebx, dword [ebp - 0x2054c]
cmp ebx, eax
jae 0x416fc4
mov ecx, dword [ebp - 0x2053c]
mov esi, ebx
lea esi, [ecx + esi*2]
cmp esi, eax
jbe 0x416f71
cmp ebx, esi
mov dword [ebp - 0x20cb8], esi
jae 0x416fc4
test esi, esi
je 0x4182a3
mov eax, dword [ebp - 0x20550]
test eax, eax
je 0x4199fa
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4199e4
mov edx, dword [ebp - 0x20548]
mov dword [ebp - 0x20550], eax
mov eax, dword [ebp - 0x20cb8]
mov dword [ebp - 0x2054c], eax
mov esi, dword [ebp - 0x20ca0]
test esi, esi
je 0x416ff6
add edx, dword [ebp - 0x20550]
mov eax, dword [esi]
mov dword [edx], eax
mov eax, dword [esi + 4]
mov dword [edx + 4], eax
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [edx + 0x10], eax
mov edx, dword [ebp - 0x20548]
mov eax, dword [ebp - 0x20c98]
mov ebx, dword [ebp - 0x20cb0]
add edx, 0x14
mov dword [ebp - 0x20548], edx
mov dword [ebp - 0x20cb8], 4
mov eax, dword [eax + 0x108]
mov eax, dword [eax + ebx + 0x14]
mov dword [ebp - 0x20ca0], eax
sar eax, 0x1f
mov dword [ebp - 0x20c9c], eax
mov eax, edx
xor ecx, ecx
add eax, 1
setb cl
cmp eax, dword [ebp - 0x20540]
mov ebx, eax
ja 0x4182d6
test ecx, ecx
jne 0x4182d6
mov esi, dword [ebp - 0x2054c]
cmp eax, esi
jbe 0x418225
mov ecx, dword [ebp - 0x2053c]
mov edi, esi
lea edi, [ecx + edi*2]
cmp eax, edi
jae 0x417064
cmp esi, edi
mov dword [ebp - 0x20cc0], edi
mov eax, dword [ebp - 0x20550]
jae 0x4170b8
test eax, eax
je 0x4182aa
mov esi, dword [ebp - 0x20cc0]
mov dword [esp], eax
mov dword [esp + 4], esi
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4182c0
mov edx, dword [ebp - 0x20548]
mov edi, dword [ebp - 0x20cc0]
mov dword [ebp - 0x20550], eax
lea ebx, [edx + 1]
mov dword [ebp - 0x2054c], edi
mov esi, dword [ebp - 0x20ca0]
sub dword [ebp - 0x20cb8], 1
mov dword [ebp - 0x20548], ebx
mov edi, dword [ebp - 0x20c9c]
mov ebx, esi
mov byte [eax + edx], bl
je 0x418230
mov eax, esi
mov edx, edi
shrd eax, edi, 8
shr edx, 8
mov dword [ebp - 0x20c9c], edx
mov dword [ebp - 0x20ca0], eax
mov edx, dword [ebp - 0x20548]
jmp 0x41702e
mov edi, dword [ebp - 0x20ca0]
xor ebx, dword [edi + 0x34]
xor ecx, dword [edi + 0x30]
mov edi, ebx
or edi, ecx
jne 0x4143b5
jmp 0x414230
mov ecx, dword [esi + 0x30]
mov ebx, dword [esi + 0x34]
mov dword [ebp - 0x20cc0], ecx
mov dword [ebp - 0x20cbc], ebx
jmp 0x4143b5
lea edx, [eax - 0x100c]
mov eax, 0x1fc0
shl eax, cl
cmp edx, eax
cmovbe eax, edx
mov dword [ebp - 0x20d44], eax
mov esi, dword [ebp - 0x20d44]
mov eax, 0x40
mov edi, dword [ebp - 0x20c98]
shl eax, cl
cmp eax, esi
mov dword [ebp - 0x20ce4], esi
cmova eax, esi
mov dword [ebp - 0x20d44], eax
jmp 0x4140b0
mov dword [esp], str.Creating
call fcn.00462d40
jmp 0x413f77
lea eax, [ebp - 0x206dc]
lea ecx, [ebp - 0x20bfc]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x2f
call fcn.004d7330
sub esp, 4
jmp 0x41688e
mov eax, dword [ebp - 0x20cf8]
mov esi, dword [ebp - 0x20d4c]
mov eax, dword [eax + esi]
mov dword [ebp - 0x20ca0], eax
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x20c90], 0x33
call fcn.00403620
cmp eax, 0xffffffff
mov dword [ebp - 0x20d1c], eax
mov eax, dword [ebp - 0x20ca0]
je 0x417e94
mov dword [eax + 0x40], 1
mov dword [eax + 0x44], 0
mov eax, dword [ebp - 0x20c14]
mov edx, dword [ebp - 0x20c10]
mov dword [ebp - 0x20cf8], eax
jmp 0x41517a
mov eax, dword [ebp - 0x20ce0]
mov edx, dword [ebp - 0x20c14]
mov dword [ebp - 0x20458], 0x508fa4
mov dword [ebp - 0x20454], 0x508fc4
mov dword [ebp - 0x20450], 0
mov dword [ebp - 0x2044c], 0
add eax, 0xffffff80
mov dword [ebp - 0x20448], 0
mov dword [ebp - 0x20444], 0
mov dword [ebp - 0x2043c], eax
mov eax, dword [ebp - 0x20c10]
mov dword [ebp - 0x20440], 0xffffffff
sub eax, edx
sar eax, 2
test eax, eax
je 0x417638
mov dword [ebp - 0x20cd8], 0
mov dword [ebp - 0x20cd0], 0
mov dword [ebp - 0x20ccc], 0
mov eax, dword [ebp - 0x20cd8]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x20cc8], eax
mov eax, dword [ebp - 0x20c98]
mov eax, dword [eax + 0xd0]
mov dword [esp + 0x10], eax
movq xmm6, qword [ebp - 0x20cd0]
movq qword [esp + 8], xmm6
movq xmm7, qword [ebp - 0x20d10]
movq qword [esp], xmm7
mov dword [ebp - 0x20c90], 0x20
call fcn.004078f0
mov eax, dword [ebp - 0x20c98]
mov edi, dword [eax + 0xd0]
test edi, edi
jle 0x417b90
mov eax, dword [ebp - 0x20cc8]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x20c90], 0x20
call fcn.00403620
cmp eax, 0xffffffff
mov dword [ebp - 0x20cb0], eax
je 0x417be9
mov eax, dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x20ca8], 0
mov dword [ebp - 0x20ca4], 0
mov dword [ebp - 0x20cb8], eax
nop
lea esi, [esi]
lea eax, [ebp - 0x20c40]
mov dword [ebp - 0x20c40], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x1000
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x10038]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20cb0]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x20
call dword [ebp - 0x20cb8]
mov eax, dword [ebp - 0x20c40]
sub esp, 0x14
test eax, eax
mov dword [ebp - 0x20ca0], eax
jle 0x417975
mov ecx, dword [ebp - 0x20448]
xor edx, edx
add eax, ecx
setb dl
cmp eax, dword [ebp - 0x20440]
ja 0x417e43
test edx, edx
jne 0x417e43
mov ebx, dword [ebp - 0x2044c]
cmp eax, ebx
jbe 0x417995
mov edx, dword [ebp - 0x2043c]
mov esi, ebx
lea esi, [edx + esi*2]
cmp eax, esi
jae 0x4173d5
cmp ebx, esi
mov dword [ebp - 0x20cc0], esi
jae 0x417995
test esi, esi
je 0x4179a0
mov eax, dword [ebp - 0x20450]
test eax, eax
je 0x417b60
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x417b70
mov ecx, dword [ebp - 0x20448]
mov esi, dword [ebp - 0x20cc0]
mov dword [ebp - 0x20450], eax
mov dword [ebp - 0x2044c], esi
mov edi, dword [ebp - 0x20ca0]
lea ebx, [ebp - 0x10038]
add eax, ecx
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
call sub.msvcrt.dll_memcpy
mov edi, dword [ebp - 0x20ca0]
mov eax, dword [ebp - 0x20448]
mov ebx, edi
add eax, edi
sar ebx, 0x1f
add dword [ebp - 0x20ca8], edi
mov dword [ebp - 0x20448], eax
adc dword [ebp - 0x20ca4], ebx
add eax, 0x1000
cmp dword [ebp - 0x20ce8], eax
jae 0x417340
lea eax, [ebp - 0x20650]
lea ecx, [ebp - 0x20658]
mov dword [ebp - 0x20658], eax
mov dword [esp + 4], 0x4f906e
mov dword [esp], 0x4f906e
mov dword [ebp - 0x20c90], 0x20
call fcn.00401570
lea eax, [ebp - 0x20558]
lea esi, [ebp - 0x20550]
sub esp, 8
mov dword [ebp - 0x20ce0], eax
mov dword [ebp - 0x20558], esi
mov ecx, eax
mov dword [esp + 4], 0x4f906e
mov dword [esp], 0x4f906e
mov dword [ebp - 0x20c90], 0x1b
call fcn.00401570
mov ebx, dword [ebp - 0x20ca4]
mov eax, dword [ebp - 0x20448]
xor edx, edx
mov ecx, dword [ebp - 0x20ca8]
sub esp, 8
xor ebx, edx
xor ecx, eax
mov esi, ebx
or esi, ecx
je 0x4179a7
lea edi, [ebp - 0x20944]
add dword [ebp - 0x20cd0], eax
mov eax, dword [ebp - 0x20558]
adc dword [ebp - 0x20ccc], edx
lea ecx, [ebp - 0x2094c]
mov dword [ebp - 0x2094c], edi
mov edi, dword [ebp - 0x20c98]
mov dword [ebp - 0x20cc0], eax
mov edx, dword [edi + 0x60]
mov eax, dword [edi + 0x5c]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 0x1c
call fcn.00401570
mov eax, dword [ebp - 0x20cc0]
sub esp, 8
lea ecx, [ebp - 0x20684]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x2094c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x20658]
mov dword [esp + 4], eax
lea eax, [ebp - 0x20458]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x1f
call fcn.00407ab0
mov eax, dword [ebp - 0x2094c]
lea esi, [ebp - 0x20944]
sub esp, 0x10
cmp eax, esi
je 0x4175b8
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20558]
lea edi, [ebp - 0x20550]
cmp eax, edi
je 0x4175d0
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20658]
lea esi, [ebp - 0x20650]
cmp eax, esi
je 0x4175e8
mov dword [esp], eax
call fcn.004f28f0
mov ebx, dword [ebp - 0x20ca0]
test ebx, ebx
jne 0x417340
mov eax, dword [ebp - 0x20cb0]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x20
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov edx, dword [ebp - 0x20c14]
mov eax, dword [ebp - 0x20c10]
add dword [ebp - 0x20cd8], 1
mov edi, dword [ebp - 0x20cd8]
sub eax, edx
sar eax, 2
cmp edi, eax
jb 0x417295
lea eax, [ebp - 0x2092c]
lea ecx, [ebp - 0x20934]
mov dword [ebp - 0x20934], eax
mov dword [esp + 4], 0x4f906e
mov dword [esp], 0x4f906e
mov dword [ebp - 0x20c90], 0x20
call fcn.00401570
lea eax, [ebp - 0x20934]
sub esp, 8
lea ecx, [ebp - 0x20684]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
lea eax, [ebp - 0x20458]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x21
call fcn.00401e00
mov eax, dword [ebp - 0x20934]
lea ebx, [ebp - 0x2092c]
sub esp, 0xc
cmp eax, ebx
je 0x4176b6
mov dword [esp], eax
call fcn.004f28f0
mov ecx, dword [ebp - 0x20cfc]
mov eax, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [ebp - 0x20ca8], 0
test ecx, ecx
mov dword [ebp - 0x20ca0], eax
je 0x417717
mov dword [esp + 4], 0xffffffff
mov esi, dword [ebp - 0x20d34]
mov eax, dword [ebp - 0x20ca8]
mov eax, dword [esi + eax*4]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x20
call dword [ebp - 0x20ca0]
add dword [ebp - 0x20ca8], 1
sub esp, 8
mov eax, dword [ebp - 0x20ca8]
cmp eax, dword [ebp - 0x20cfc]
jne 0x4176d5
mov dword [esp + 4], 0xffffffff
mov eax, dword [ebp - 0x20c54]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x20
call dword [ebp - 0x20ca0]
lea ecx, [ebp - 0x20058]
sub esp, 8
mov dword [ebp - 0x20c90], 0x20
call fcn.00467ea0
mov dword [ebp - 0x20ca0], eax
mov dword [ebp - 0x20c9c], edx
fild qword [ebp - 0x20ca0]
fstp qword [esp + 0x1c]
mov eax, dword [ebp - 0x20ca0]
sub eax, dword [ebp - 0x20d18]
mov edx, dword [ebp - 0x20c9c]
sbb edx, dword [ebp - 0x20d14]
mov dword [ebp - 0x20ca0], eax
mov dword [ebp - 0x20c9c], edx
fild qword [ebp - 0x20ca0]
fstp qword [esp + 0x14]
fild qword [ebp - 0x20d10]
fstp qword [esp + 0xc]
movsd xmm3, qword [ebp - 0x20d70]
mov dword [esp], str._1.0f____1.0f_____1.0f____1.0f_n
movsd qword [esp + 4], xmm3
call fcn.00462d40
mov eax, dword [ebp - 0x20050]
cmp eax, 0xffffffff
je 0x4178c4
mov edi, dword [ebp - 0x20054]
test edi, edi
je 0x417e32
lea edx, [ebp - 0x20c30]
mov dword [ebp - 0x20c30], 0
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [ebp - 0x20c90], 0x20
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, eax
mov eax, dword [ebp - 0x20c30]
sub esp, 0x10
xor ebx, ebx
mov edx, eax
xor eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x20054]
adc edx, ebx
add eax, dword [ebp - 0x20048]
adc edx, dword [ebp - 0x20044]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [ebp - 0x20040]
mov dword [esp + 4], eax
lea eax, [ebp - 0x2003c]
mov dword [ebp - 0x20ca8], eax
mov dword [esp], eax
call fcn.0042bca0
mov eax, dword [ebp - 0x20050]
sub esp, 0x10
mov edx, dword [ebp - 0x20040]
lea ecx, [ebp - 0x20c34]
mov dword [ebp - 0x20c34], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov esi, dword [ebp - 0x20ca8]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [ebp - 0x20c90], 0x20
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp - 0x20050]
sub esp, 0x14
mov dword [ebp - 0x20040], 0
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov edx, dword [ebp - 0x20c58]
xor eax, eax
mov dword [ebp - 0x20050], 0xffffffff
mov dword [ebp - 0x20458], 0x508fa4
mov dword [ebp - 0x20454], 0x508fc4
test edx, edx
setg al
mov dword [ebp - 0x20ca0], eax
mov eax, dword [ebp - 0x20450]
test eax, eax
je 0x417907
mov dword [esp], eax
call fcn.004628a0
lea ecx, [ebp - 0x20684]
call fcn.00464b10
mov eax, dword [ebp - 0x20d34]
mov dword [esp], eax
call fcn.004f28f0
lea ecx, [ebp - 0x20054]
call fcn.00464aa0
mov eax, dword [ebp - 0x20c14]
test eax, eax
je 0x41793d
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20bbc]
lea edx, [ebp - 0x20bb4]
cmp eax, edx
je 0x417955
mov dword [esp], eax
call fcn.004f28f0
lea eax, [ebp - 0x20c94]
mov dword [esp], eax
call fcn.004580a0
mov eax, dword [ebp - 0x20ca0]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
cdq
add dword [ebp - 0x20ca8], eax
adc dword [ebp - 0x20ca4], edx
test eax, eax
je 0x417480
mov eax, dword [ebp - 0x20448]
jmp 0x41746f
mov eax, dword [ebp - 0x20450]
jmp 0x41742c
xor eax, eax
jmp 0x417420
mov esi, dword [ebp - 0x20cc8]
lea eax, [ebp - 0x209a4]
lea ecx, [ebp - 0x209ac]
mov dword [ebp - 0x209ac], eax
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 0x1c
call fcn.00401570
lea eax, [ebp - 0x209ac]
sub esp, 8
lea ecx, [ebp - 0x20994]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20c98]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x1d
call fcn.004071f0
lea eax, [ebp - 0x20994]
sub esp, 8
lea ecx, [ebp - 0x20658]
mov dword [esp], eax
call fcn.004dbae0
mov eax, dword [ebp - 0x20994]
lea edx, [ebp - 0x2098c]
sub esp, 4
cmp eax, edx
je 0x417a3a
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x209ac]
lea edi, [ebp - 0x209a4]
cmp eax, edi
je 0x417a52
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20cc8]
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x2c]
lea eax, [ebp - 0x2097c]
mov dword [ebp - 0x20c90], 0x1c
call fcn.00401bb0
lea eax, [ebp - 0x2097c]
mov dword [esp], eax
mov ecx, dword [ebp - 0x20ce0]
call fcn.004dbae0
mov eax, dword [ebp - 0x2097c]
lea edx, [ebp - 0x20974]
sub esp, 4
cmp eax, edx
je 0x417aa2
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20cc8]
movzx eax, byte [eax + 0x38]
test eax, eax
je 0x417b53
mov dword [esp], 0x4fa4ae
mov ecx, dword [ebp - 0x20ce0]
mov dword [ebp - 0x20c90], 0x1c
call fcn.004d9be0
mov eax, dword [ebp - 0x20cc8]
sub esp, 4
movsx eax, byte [eax + 0x38]
mov dword [esp], eax
mov ecx, dword [ebp - 0x20ce0]
call fcn.004db2b0
mov eax, dword [ebp - 0x20cc8]
sub esp, 4
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x38]
shrd eax, edx, 8
sar edx, 8
mov ecx, edx
mov edx, eax
lea eax, [ebp - 0x20964]
call fcn.00401bb0
mov eax, dword [ebp - 0x20960]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20964]
mov dword [esp], eax
mov ecx, dword [ebp - 0x20ce0]
mov dword [ebp - 0x20c90], 0x1e
call fcn.004daf70
mov eax, dword [ebp - 0x20964]
lea edx, [ebp - 0x2095c]
sub esp, 8
cmp eax, edx
je 0x417b53
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20448]
xor edx, edx
jmp 0x417510
mov dword [esp], esi
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x417414
mov dword [esp], str.Out_of_memory
mov dword [ebp - 0x20c90], 0x20
call fcn.00402a80
lea esi, [esi]
lea edi, [edi]
mov dword [esp], 0x4fa4ab
call fcn.00462d40
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20cc8]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call fcn.00403710
mov eax, dword [ebp - 0x20cc8]
fild qword [eax + 0x30]
fstp qword [ebp - 0x20c60]
fld qword [ebp - 0x20c60]
mov dword [esp], str.__1.0f_n
fadd dword [0x4fac6c]
fstp qword [esp + 4]
call fcn.00462d40
jmp 0x4172f2
mov eax, dword [ebp - 0x20cc8]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x20
call fcn.004049f0
mov eax, dword [ebp - 0x20cc8]
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
sub dword [ebp - 0x20d10], eax
sbb dword [ebp - 0x20d0c], edx
add dword [ebp - 0x20c58], 1
jmp 0x417612
movups xmm0, xmmword [eax + 8]
movups xmmword [ebp - 0x206ec], xmm0
jmp 0x416410
movups xmm0, xmmword [eax + 8]
movups xmmword [ebp - 0x206d4], xmm0
jmp 0x41648b
mov dword [esp], esi
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x41593b
mov dword [esp], str.Out_of_memory
mov dword [ebp - 0x20c90], 0x33
call fcn.00402a80
nop
mov dword [esp], str.StringBuffer_overflow
mov dword [ebp - 0x20c90], 0x33
call fcn.00402a80
mov dword [esp], 0x4fa01b
mov ecx, dword [ebp - 0x20ca0]
mov dword [ebp - 0x20c90], 4
call fcn.004d9e20
mov eax, dword [ebp - 0x20c98]
sub esp, 4
cmp dword [eax + 0x60], 1
jne 0x414001
mov eax, dword [eax + 0x5c]
movzx eax, byte [eax]
sub eax, 0x32
cmp al, 7
ja 0x417de6
mov dword [esp], 0x4fa5af
mov ecx, dword [ebp - 0x20ca0]
mov dword [ebp - 0x20c90], 4
call fcn.004d9be0
sub esp, 4
mov eax, dword [ebp - 0x20c98]
jmp 0x414001
mov esi, dword [ebp - 0x20ca0]
mov ecx, fcn.004026a0
lea eax, [esi + 0x40]
mov dword [ebp - 0x20ca0], eax
mov edx, eax
mov eax, esi
call fcn.004021f0
mov eax, dword [ebp - 0x20ca0]
cmp eax, dword [ebp - 0x20cb8]
je 0x414621
mov dword [ebp - 0x20cb0], eax
mov esi, dword [eax]
sub eax, 4
mov dword [ebp - 0x20ca0], eax
mov ebx, eax
mov dword [ebp - 0x20ca8], esi
jmp 0x417d58
mov ebx, dword [ebp - 0x20ca0]
mov eax, dword [ebx]
mov dword [ebx + 4], eax
mov eax, ebx
sub eax, 4
mov dword [ebp - 0x20ca0], eax
mov ebx, eax
mov eax, dword [ebx]
mov dword [esp + 4], eax
mov edi, dword [ebp - 0x20ca8]
mov dword [esp], edi
call fcn.004026a0
test al, al
jne 0x417d40
mov eax, dword [ebp - 0x20ca0]
mov edx, dword [ebp - 0x20ca8]
add dword [ebp - 0x20cb0], 4
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x20cb0]
cmp dword [ebp - 0x20cb8], eax
jne 0x417d25
jmp 0x414621
mov eax, dword [ebp - 0x20ce0]
mov dword [esp], eax
mov ecx, dword [ebp - 0x20d88]
mov dword [ebp - 0x20c90], 0x33
call fcn.004d6410
sub esp, 4
jmp 0x415b07
mov eax, dword [ebp - 0x20c98]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x414038
mov dword [esp], str.cannot_index_in_streaming_mode
mov dword [ebp - 0x20c90], 4
call fcn.00402a80
mov dword [esp], 0x4fa5b1
mov ecx, dword [ebp - 0x20ca0]
mov dword [ebp - 0x20c90], 4
call fcn.004d9be0
jmp 0x417ce2
movq xmm5, qword [ebp - 0x20d18]
movq qword [ebp - 0x20048], xmm5
jmp 0x4147c6
mov dword [esp], str.archive_access_is_intermittent
mov dword [ebp - 0x20c90], 0x15
call fcn.00402a80
lea ebx, [ebp - 0x2003c]
mov dword [ebp - 0x20ca8], ebx
jmp 0x417862
mov dword [esp], str.StringBuffer_overflow
mov dword [ebp - 0x20c90], 0x20
call fcn.00402a80
mov dword [ebp - 0x20ca8], 0x84
mov dword [ebp - 0x20ca0], 1
jmp 0x414ed6
mov dword [esp], str.Array_too_big
mov dword [ebp - 0x20c90], 0x49
call fcn.00402a80
mov dword [esp], str.CreateThread_failed
call fcn.00402a80
mov esi, dword [eax + 0x30]
sub dword [ebp - 0x20d10], esi
mov edi, dword [eax + 0x34]
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
sbb dword [ebp - 0x20d0c], edi
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call fcn.004049f0
mov edx, dword [ebp - 0x20c10]
mov esi, dword [ebp - 0x20c14]
add dword [ebp - 0x20c58], 1
mov eax, edx
mov dword [ebp - 0x20cf8], esi
sub eax, esi
sar eax, 2
jmp 0x416b90
mov dword [esp], str.Array_too_big
mov dword [ebp - 0x20c90], 0x33
call fcn.00402a80
mov dword [ebp - 0x20bdc], 0
mov dword [esp], str.Out_of_memory
mov dword [ebp - 0x20c90], 0x33
call fcn.00402a80
mov dword [ebp - 0x20bdc], 0
mov dword [esp], str.Array_too_big
mov dword [ebp - 0x20c90], 0x33
call fcn.00402a80
lea eax, [ebp - 0x206dc]
lea ecx, [ebp - 0x20664]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x2f
call fcn.004d7100
sub esp, 4
jmp 0x416a0b
mov dword [ebp - 0x20ce4], 1
xor eax, eax
jmp 0x415dd1
mov eax, dword [ebp - 0x20d68]
add dword [ebp - 0x20d80], eax
mov edx, dword [ebp - 0x20d64]
mov eax, dword [ebp - 0x20cf8]
adc dword [ebp - 0x20d7c], edx
mov edx, dword [ebp - 0x20d4c]
mov eax, dword [eax + edx]
mov dword [ebp - 0x20ca0], eax
mov eax, dword [ebp - 0x20c98]
mov eax, dword [eax + 0xd0]
mov dword [esp + 0x10], eax
movq xmm2, qword [ebp - 0x20d60]
movq qword [esp + 8], xmm2
movq xmm3, qword [ebp - 0x20d10]
movq qword [esp], xmm3
mov dword [ebp - 0x20c90], 0x33
call fcn.004078f0
mov eax, dword [ebp - 0x20c98]
mov eax, dword [eax + 0xd0]
test eax, eax
jle 0x418048
mov eax, dword [ebp - 0x20d1c]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x33
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x20c10]
mov edi, dword [ebp - 0x20c14]
sub esp, 4
mov eax, edx
mov dword [ebp - 0x20cf8], edi
sub eax, edi
sar eax, 2
jmp 0x416b90
lea eax, [ebp - 0x20658]
lea ecx, [ebp - 0x20bfc]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x36
call fcn.004d7330
sub esp, 4
jmp 0x416e3f
mov eax, dword [ebp - 0x20ca0]
lea ecx, [ebp - 0x2085c]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call fcn.00401630
lea eax, [ebp - 0x2085c]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20c98]
mov dword [esp], eax
mov ecx, dword [ebp - 0x20ce0]
mov dword [ebp - 0x20c90], 0x31
call fcn.004071f0
mov eax, dword [ebp - 0x2085c]
lea edx, [ebp - 0x20854]
sub esp, 8
cmp eax, edx
je 0x4180a5
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20c98]
mov ebx, dword [ebp - 0x20ce0]
lea ecx, [eax + 0x114]
mov dword [esp], ebx
call fcn.004e4a10
mov edx, dword [ebp - 0x20c98]
sub esp, 4
add edx, 0x118
cmp eax, edx
je 0x4180e0
mov edx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
or eax, edx
jne 0x418214
mov dword [esp], 0x4fa4ab
call fcn.00462d40
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20ca0]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x32
call fcn.00403710
mov edx, dword [ebp - 0x20ca0]
mov eax, dword [ebp - 0x20554]
cmp eax, dword [edx + 0x14]
je 0x4181e6
mov dword [esp], 0x4fa51e
call fcn.00462d40
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20558]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x32
call fcn.00403710
mov eax, dword [ebp - 0x20ca0]
fild qword [eax + 0x30]
fstp qword [ebp - 0x20c60]
fld qword [ebp - 0x20c60]
mov dword [esp], str.__1.0f
fldz
faddp st(1)
fstp qword [esp + 4]
call fcn.00462d40
mov ebx, dword [ebp - 0x20ca0]
mov edx, dword [ebp - 0x20d64]
mov eax, dword [ebp - 0x20d68]
xor edx, dword [ebx + 0x34]
xor eax, dword [ebx + 0x30]
mov edi, edx
or edi, eax
je 0x4181b9
fild qword [ebp - 0x20d68]
mov dword [esp], str._____1.0f
fldz
faddp st(1)
fstp qword [esp + 4]
call fcn.00462d40
mov dword [esp], 0x4f9a81
call fcn.00462d40
mov eax, dword [ebp - 0x20558]
lea edx, [ebp - 0x20550]
cmp eax, edx
je 0x417fe8
mov dword [esp], eax
call fcn.004f28f0
jmp 0x417fe8
test eax, eax
mov ecx, dword [edx + 0x10]
mov edx, dword [ebp - 0x20558]
je 0x418158
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x418128
jmp 0x418158
mov dword [esp], 0x4fa5d3
call fcn.00462d40
jmp 0x4180ec
mov eax, dword [ebp - 0x20550]
jmp 0x4170b8
mov eax, dword [ebp - 0x20bfc]
mov edx, dword [ebp - 0x20cd8]
add dword [ebp - 0x20ca8], 1
mov esi, dword [ebp - 0x20ca8]
cmp dword [eax + edx], esi
jbe 0x4182ec
mov edx, dword [ebp - 0x20c98]
add dword [ebp - 0x20cb0], 0x18
xor ecx, ecx
mov eax, dword [ebp - 0x20cb0]
add eax, dword [edx + 0x108]
mov edx, dword [ebp - 0x20548]
mov dword [ebp - 0x20ca0], eax
mov eax, edx
add eax, 0x14
setb cl
cmp eax, dword [ebp - 0x20540]
jbe 0x416f57
mov dword [esp], str.StringBuffer_overflow
mov dword [ebp - 0x20c90], 0x36
call fcn.00402a80
xor eax, eax
jmp 0x416fb2
mov eax, dword [ebp - 0x20cc0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x41709d
mov dword [esp], str.Out_of_memory
mov dword [ebp - 0x20c90], 0x36
call fcn.00402a80
mov dword [esp], str.StringBuffer_overflow
mov dword [ebp - 0x20c90], 0x36
call fcn.00402a80
mov ebx, dword [ebp - 0x20cd0]
mov eax, dword [eax + ebx]
mov dword [ebp - 0x20ca8], eax
mov edx, dword [ebp - 0x20ca8]
lea eax, [ebp - 0x207e4]
xor ecx, ecx
mov dword [ebp - 0x20c90], 0x36
call fcn.004016f0
mov eax, dword [ebp - 0x20c98]
mov edx, dword [eax + 0xe8]
mov ecx, dword [eax + 0xec]
lea eax, [ebp - 0x2082c]
mov dword [ebp - 0x20c90], 0x37
call fcn.00401950
lea edx, [ebp - 0x2082c]
lea eax, [ebp - 0x20814]
mov dword [ebp - 0x20c90], 0x38
call fcn.00401670
lea eax, [ebp - 0x20814]
mov dword [esp + 8], 0x4fa017
mov dword [esp + 4], eax
lea eax, [ebp - 0x207fc]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x39
call fcn.004ef6f0
lea eax, [ebp - 0x207cc]
lea esi, [ebp - 0x207e4]
lea edi, [ebp - 0x207fc]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x3a
call fcn.004ef800
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0x4f906f
mov eax, dword [ebp - 0x207cc]
mov dword [esp + 8], 0x4f9961
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x20bf0]
mov dword [esp + 4], eax
lea eax, [ebp - 0x20558]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x3b
call fcn.0044abc0
mov eax, dword [ebp - 0x207cc]
lea edx, [ebp - 0x207c4]
cmp eax, edx
je 0x41840c
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x207fc]
lea edx, [ebp - 0x207f4]
cmp eax, edx
je 0x418424
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20814]
lea edx, [ebp - 0x2080c]
cmp eax, edx
je 0x41843c
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x2082c]
lea edx, [ebp - 0x20824]
cmp eax, edx
je 0x418454
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x207e4]
lea edx, [ebp - 0x207dc]
cmp eax, edx
je 0x41846c
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20544]
mov dword [ebp - 0x20548], 0
test eax, eax
je 0x41848a
mov dword [ebp - 0x20544], 0
mov edx, dword [ebp - 0x20660]
mov eax, dword [ebp - 0x20664]
jmp 0x416e55
mov ebx, dword [ebp - 0x20c98]
mov eax, dword [ebx + 0x120]
lea edi, [ebx + 0x118]
mov dword [ebp - 0x20cc8], edi
cmp edi, eax
mov dword [ebp - 0x20cc0], eax
je 0x4188db
mov dword [ebp - 0x20ca0], eax
mov dword [ebp - 0x20cb8], 0
mov dword [ebp - 0x20ca8], 0
mov esi, dword [eax + 0x2c]
mov ebx, dword [eax + 0x28]
mov edi, esi
mov dword [ebp - 0x20cb0], ebx
mov dword [ebp - 0x20cc0], esi
or edi, ebx
je 0x41889a
mov ebx, dword [eax + 0x40]
mov eax, dword [eax + 0x44]
mov dword [ebp - 0x20cc0], eax
or eax, ebx
mov dword [ebp - 0x20cb0], ebx
jne 0x41889a
mov dword [ebp - 0x20cc0], 8
mov edx, dword [ebp - 0x20548]
xor eax, eax
mov ebx, edx
add ebx, 1
setb al
cmp ebx, dword [ebp - 0x20540]
mov ecx, ebx
ja 0x4199ce
test eax, eax
jne 0x4199ce
mov eax, dword [ebp - 0x2054c]
cmp ebx, eax
jbe 0x4188d0
mov esi, dword [ebp - 0x2053c]
mov edi, eax
lea edi, [esi + edi*2]
cmp ebx, edi
jae 0x418557
cmp eax, edi
mov dword [ebp - 0x20cb0], edi
mov eax, dword [ebp - 0x20550]
jae 0x4185a5
test eax, eax
je 0x4199c1
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4199ab
mov edx, dword [ebp - 0x20548]
mov ebx, dword [ebp - 0x20cb0]
mov dword [ebp - 0x20550], eax
lea ecx, [edx + 1]
mov dword [ebp - 0x2054c], ebx
sub dword [ebp - 0x20cc0], 1
mov dword [ebp - 0x20548], ecx
mov byte [eax + edx], 0
jne 0x41851b
mov eax, dword [ebp - 0x20ca0]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x20cd0], eax
mov dword [esp], eax
call sub.msvcrt.dll_strlen
test eax, eax
mov dword [ebp - 0x20cc0], eax
jle 0x41869c
mov edx, dword [ebp - 0x20548]
add eax, edx
mov ecx, eax
setb al
cmp ecx, dword [ebp - 0x20540]
movzx eax, al
ja 0x419a6b
test eax, eax
jne 0x419a6b
mov eax, dword [ebp - 0x2054c]
cmp ecx, eax
jbe 0x419a81
mov ebx, dword [ebp - 0x2053c]
mov esi, eax
lea esi, [ebx + esi*2]
cmp ecx, esi
jae 0x41861b
cmp eax, esi
mov dword [ebp - 0x20cb0], esi
jae 0x419a81
test esi, esi
je 0x419a64
mov eax, dword [ebp - 0x20550]
test eax, eax
je 0x419a57
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x419a41
mov edx, dword [ebp - 0x20548]
mov esi, dword [ebp - 0x20cb0]
mov dword [ebp - 0x20550], eax
mov dword [ebp - 0x2054c], esi
mov esi, dword [ebp - 0x20cc0]
add eax, edx
mov dword [esp + 8], esi
mov edx, dword [ebp - 0x20cd0]
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov esi, dword [ebp - 0x20cc0]
add dword [ebp - 0x20548], esi
lea ecx, [ebp - 0x20558]
mov dword [esp], 1
mov dword [ebp - 0x20c90], 0x36
call fcn.004661c0
mov eax, dword [ebp - 0x20548]
sub esp, 4
lea edx, [eax + 1]
mov dword [ebp - 0x20548], edx
mov edx, dword [ebp - 0x20550]
mov byte [edx + eax], 0
mov eax, dword [ebp - 0x20c98]
mov edi, dword [eax + 0xd0]
test edi, edi
jle 0x419a07
add dword [ebp - 0x20cb8], 1
cmp dword [ebp - 0x20548], 0x3e80
jbe 0x41889a
add dword [ebp - 0x20ca8], 1
mov dword [ebp - 0x20c90], 0x36
mov eax, dword [ebp - 0x20ca8]
mov ecx, eax
mov edx, eax
lea eax, [ebp - 0x2076c]
sar ecx, 0x1f
call fcn.004016f0
mov eax, dword [ebp - 0x20c98]
mov edx, dword [eax + 0xe8]
mov ecx, dword [eax + 0xec]
lea eax, [ebp - 0x207b4]
mov dword [ebp - 0x20c90], 0x3c
call fcn.00401bb0
lea edx, [ebp - 0x207b4]
lea eax, [ebp - 0x2079c]
mov dword [ebp - 0x20c90], 0x3d
call fcn.00401670
lea eax, [ebp - 0x2079c]
mov dword [esp + 8], 0x4fa019
mov dword [esp + 4], eax
lea eax, [ebp - 0x20784]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x3e
call fcn.004ef6f0
lea eax, [ebp - 0x20754]
lea edi, [ebp - 0x2076c]
lea ebx, [ebp - 0x20784]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x3f
call fcn.004ef800
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0x4f906f
mov eax, dword [ebp - 0x20754]
mov dword [esp + 8], 0x4fa01b
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x20bf0]
mov dword [esp + 4], eax
lea eax, [ebp - 0x20558]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x40
call fcn.0044abc0
mov eax, dword [ebp - 0x20754]
lea edx, [ebp - 0x2074c]
cmp eax, edx
je 0x41881c
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20784]
lea edx, [ebp - 0x2077c]
cmp eax, edx
je 0x418834
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x2079c]
lea edx, [ebp - 0x20794]
cmp eax, edx
je 0x41884c
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x207b4]
lea edx, [ebp - 0x207ac]
cmp eax, edx
je 0x418864
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x2076c]
lea edx, [ebp - 0x20764]
cmp eax, edx
je 0x41887c
mov dword [esp], eax
call fcn.004f28f0
mov esi, dword [ebp - 0x20544]
mov dword [ebp - 0x20548], 0
test esi, esi
je 0x41889a
mov dword [ebp - 0x20544], 0
mov eax, dword [ebp - 0x20ca0]
mov dword [esp], eax
call fcn.004ea300
cmp dword [ebp - 0x20cc8], eax
mov dword [ebp - 0x20ca0], eax
mov dword [ebp - 0x20cc0], eax
jne 0x4184db
mov eax, dword [ebp - 0x20c98]
jmp 0x4188f1
mov eax, dword [ebp - 0x20550]
jmp 0x4185a5
mov dword [ebp - 0x20cb8], 0
mov dword [ebp - 0x20ca8], 0
mov eax, ebx
mov eax, dword [eax + 0x138]
mov dword [ebp - 0x20cd0], 0
mov dword [ebp - 0x20ca0], eax
mov ebx, eax
mov edi, dword [ebp - 0x20d20]
cmp ebx, edi
je 0x4190b3
lea edx, [ebp - 0x20734]
lea edi, [ebp - 0x2073c]
mov dword [ebp - 0x2073c], edx
mov edx, dword [ebx + 0x14]
mov ecx, edi
mov eax, dword [ebx + 0x10]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 0x36
mov dword [ebp - 0x20cb0], edi
call fcn.00401570
mov edi, dword [ebp - 0x20cb0]
lea ecx, [ebp - 0x20658]
sub esp, 8
mov dword [ebp - 0x20d38], ecx
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x20c98]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x41
call fcn.004071f0
mov eax, dword [ebp - 0x2073c]
lea ebx, [ebp - 0x20734]
sub esp, 8
cmp eax, ebx
je 0x41899b
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20c98]
lea ecx, [eax + 0x114]
mov eax, dword [ebp - 0x20d38]
mov dword [esp], eax
call fcn.004e4a10
mov esi, dword [ebp - 0x20ca0]
sub esp, 4
mov dword [ebp - 0x20cb0], eax
mov edi, dword [esi + 0x2c]
mov esi, dword [esi + 0x28]
mov edx, edi
mov dword [ebp - 0x20cc8], esi
mov dword [ebp - 0x20cc4], edi
or edx, esi
je 0x418e0a
cmp dword [ebp - 0x20cc0], eax
je 0x4189fe
mov ebx, eax
mov edx, edi
mov eax, esi
xor edx, dword [ebx + 0x2c]
xor eax, dword [ebx + 0x28]
mov edi, edx
or edi, eax
je 0x418ffa
mov eax, dword [ebp - 0x20c98]
mov ebx, dword [eax + 0xd0]
test ebx, ebx
jle 0x41972a
add dword [ebp - 0x20cd0], 1
lea eax, [ebp - 0x20558]
mov dword [ebp - 0x20cd8], 8
mov dword [ebp - 0x20ce0], eax
movzx eax, byte [ebp - 0x20cc8]
mov dword [esp], eax
mov ecx, dword [ebp - 0x20ce0]
mov dword [ebp - 0x20c90], 0x42
call fcn.00465fd0
mov edx, dword [ebp - 0x20cc4]
mov eax, dword [ebp - 0x20cc8]
sub esp, 4
shrd eax, edx, 8
shr edx, 8
sub dword [ebp - 0x20cd8], 1
mov dword [ebp - 0x20cc8], eax
mov dword [ebp - 0x20cc4], edx
jne 0x418a2f
mov eax, dword [ebp - 0x20658]
mov dword [ebp - 0x20ce4], eax
mov dword [esp], eax
call sub.msvcrt.dll_strlen
test eax, eax
mov dword [ebp - 0x20cd8], eax
jle 0x418b58
mov edx, dword [ebp - 0x20548]
add eax, edx
mov ecx, eax
setb al
cmp ecx, dword [ebp - 0x20540]
movzx eax, al
ja 0x419aa0
test eax, eax
jne 0x419aa0
mov eax, dword [ebp - 0x2054c]
cmp ecx, eax
jbe 0x419ab6
mov ebx, dword [ebp - 0x2053c]
mov esi, eax
lea esi, [ebx + esi*2]
cmp ecx, esi
jae 0x418ad5
cmp eax, esi
mov dword [ebp - 0x20cc8], esi
jae 0x419ab6
test esi, esi
mov ebx, esi
je 0x419a99
mov eax, dword [ebp - 0x20550]
test eax, eax
je 0x419a8c
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x419847
mov edx, dword [ebp - 0x20548]
mov ebx, dword [ebp - 0x20cc8]
mov dword [ebp - 0x20550], eax
mov dword [ebp - 0x2054c], ebx
mov esi, dword [ebp - 0x20cd8]
add eax, edx
mov dword [esp + 8], esi
mov edi, dword [ebp - 0x20ce4]
mov dword [esp], eax
mov dword [esp + 4], edi
call sub.msvcrt.dll_memcpy
mov esi, dword [ebp - 0x20cd8]
add dword [ebp - 0x20548], esi
mov dword [esp], 1
mov ecx, dword [ebp - 0x20ce0]
mov dword [ebp - 0x20c90], 0x42
call fcn.004661c0
mov eax, dword [ebp - 0x20548]
mov dword [ebp - 0x20d74], 0
sub esp, 4
lea edx, [eax + 1]
mov dword [ebp - 0x20548], edx
mov edx, dword [ebp - 0x20550]
mov byte [edx + eax], 0
mov eax, dword [ebp - 0x20ca0]
mov edx, dword [ebp - 0x20d74]
movzx eax, byte [eax + 0x38]
mov esi, edx
mov dword [ebp - 0x20d78], eax
mov eax, dword [ebp - 0x20d78]
xor eax, 0x75
or esi, eax
je 0x4198f9
mov eax, dword [ebp - 0x20d78]
mov edx, dword [ebp - 0x20d74]
mov dword [ebp - 0x20cc8], 4
xor eax, 0x77
mov ebx, edx
or ebx, eax
je 0x41985d
mov dword [esp], 1
mov ecx, dword [ebp - 0x20ce0]
mov dword [ebp - 0x20c90], 0x42
call fcn.004661c0
mov eax, dword [ebp - 0x20548]
sub esp, 4
sub dword [ebp - 0x20cc8], 1
lea edx, [eax + 1]
mov dword [ebp - 0x20548], edx
mov edx, dword [ebp - 0x20550]
mov byte [edx + eax], 0
jne 0x418be6
mov edx, dword [ebp - 0x20cb0]
cmp dword [ebp - 0x20cc0], edx
je 0x419ad7
mov eax, dword [ebp - 0x20ca0]
mov ebx, edx
mov edi, dword [eax + 0x44]
mov esi, dword [eax + 0x40]
mov edx, edi
mov dword [ebp - 0x20cd8], edi
or edx, esi
cmovne ebx, eax
mov dword [ebp - 0x20cc8], ebx
mov edi, ebx
mov eax, dword [edi + 0x4c]
sub eax, dword [edi + 0x48]
mov dword [ebp - 0x20cac], 0
mov dword [ebp - 0x20cd8], 4
sar eax, 2
mov dword [ebp - 0x20cb0], eax
movzx eax, byte [ebp - 0x20cb0]
mov dword [esp], eax
mov ecx, dword [ebp - 0x20ce0]
mov dword [ebp - 0x20c90], 0x42
call fcn.00465fd0
mov edx, dword [ebp - 0x20cac]
mov eax, dword [ebp - 0x20cb0]
sub esp, 4
shrd eax, edx, 8
shr edx, 8
sub dword [ebp - 0x20cd8], 1
mov dword [ebp - 0x20cb0], eax
mov dword [ebp - 0x20cac], edx
jne 0x418c7f
mov eax, dword [ebp - 0x20cc8]
mov edx, dword [eax + 0x48]
mov eax, dword [eax + 0x4c]
mov dword [ebp - 0x20cb0], eax
sub eax, edx
sar eax, 2
test eax, eax
je 0x418e0a
mov dword [ebp - 0x20cb0], 0
mov eax, dword [ebp - 0x20cb0]
mov dword [ebp - 0x20ce4], 4
mov eax, dword [edx + eax*4]
xor edx, edx
mov dword [ebp - 0x20cdc], edx
mov dword [ebp - 0x20ce0], eax
mov edx, dword [ebp - 0x20548]
xor ecx, ecx
mov eax, edx
add eax, 1
setb cl
cmp eax, dword [ebp - 0x20540]
mov ebx, eax
ja 0x419ac1
test ecx, ecx
jne 0x419ac1
mov esi, dword [ebp - 0x2054c]
cmp eax, esi
jbe 0x4199a0
mov ecx, dword [ebp - 0x2053c]
mov edi, esi
lea edi, [ecx + edi*2]
cmp eax, edi
jae 0x418d4f
cmp esi, edi
mov dword [ebp - 0x20cd8], edi
mov eax, dword [ebp - 0x20550]
jae 0x418da3
test eax, eax
je 0x419b00
mov esi, dword [ebp - 0x20cd8]
mov dword [esp], eax
mov dword [esp + 4], esi
call sub.msvcrt.dll_realloc
test eax, eax
je 0x419aea
mov edx, dword [ebp - 0x20548]
mov edi, dword [ebp - 0x20cd8]
mov dword [ebp - 0x20550], eax
lea ebx, [edx + 1]
mov dword [ebp - 0x2054c], edi
mov esi, dword [ebp - 0x20ce0]
mov edi, dword [ebp - 0x20cdc]
mov dword [ebp - 0x20548], ebx
mov ebx, esi
mov byte [eax + edx], bl
mov eax, esi
mov edx, edi
shrd eax, edi, 8
shr edx, 8
sub dword [ebp - 0x20ce4], 1
mov dword [ebp - 0x20ce0], eax
mov dword [ebp - 0x20cdc], edx
jne 0x418d13
mov eax, dword [ebp - 0x20cc8]
add dword [ebp - 0x20cb0], 1
mov esi, dword [ebp - 0x20cb0]
mov edx, dword [eax + 0x48]
mov eax, dword [eax + 0x4c]
mov dword [ebp - 0x20cd8], eax
sub eax, edx
sar eax, 2
cmp esi, eax
jb 0x418cf2
mov eax, dword [ebp - 0x20658]
lea edx, [ebp - 0x20650]
cmp eax, edx
je 0x418e22
mov dword [esp], eax
call fcn.004f28f0
cmp dword [ebp - 0x20548], 0x3e80
jbe 0x418fdf
add dword [ebp - 0x20ca8], 1
mov dword [ebp - 0x20c90], 0x36
mov eax, dword [ebp - 0x20ca8]
mov ecx, eax
mov edx, eax
lea eax, [ebp - 0x206dc]
sar ecx, 0x1f
call fcn.004016f0
mov eax, dword [ebp - 0x20c98]
mov edx, dword [eax + 0xe8]
mov ecx, dword [eax + 0xec]
lea eax, [ebp - 0x20724]
mov dword [ebp - 0x20c90], 0x43
call fcn.00401bb0
lea edx, [ebp - 0x20724]
lea eax, [ebp - 0x2070c]
mov dword [ebp - 0x20c90], 0x44
call fcn.00401670
lea eax, [ebp - 0x2070c]
mov dword [esp + 8], 0x4fa019
mov dword [esp + 4], eax
lea eax, [ebp - 0x206f4]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x45
call fcn.004ef6f0
lea eax, [ebp - 0x20658]
lea ebx, [ebp - 0x206dc]
lea esi, [ebp - 0x206f4]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x46
call fcn.004ef800
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0x4f906f
mov eax, dword [ebp - 0x20658]
mov dword [esp + 8], 0x4fa01b
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x20bf0]
mov dword [esp + 4], eax
lea eax, [ebp - 0x20558]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x47
call fcn.0044abc0
mov eax, dword [ebp - 0x20658]
lea edx, [ebp - 0x20650]
cmp eax, edx
je 0x418f4f
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x206f4]
lea edx, [ebp - 0x206ec]
cmp eax, edx
je 0x418f67
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x2070c]
lea edx, [ebp - 0x20704]
cmp eax, edx
je 0x418f7f
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20724]
lea edx, [ebp - 0x2071c]
cmp eax, edx
je 0x418f97
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x206dc]
lea edx, [ebp - 0x206d4]
cmp eax, edx
je 0x418faf
mov dword [esp], eax
call fcn.004f28f0
mov edi, dword [ebp - 0x20544]
mov dword [ebp - 0x20548], 0
test edi, edi
je 0x418fcd
mov dword [ebp - 0x20544], 0
mov edi, dword [ebp - 0x20d20]
cmp dword [ebp - 0x20ca0], edi
je 0x4190c1
mov eax, dword [ebp - 0x20ca0]
mov dword [esp], eax
call fcn.004ea300
mov dword [ebp - 0x20ca0], eax
mov ebx, eax
jmp 0x418909
mov edx, dword [ebx + 0x3c]
mov eax, dword [ebx + 0x38]
mov esi, edx
or esi, eax
je 0x41901c
mov edi, dword [ebp - 0x20ca0]
xor edx, dword [edi + 0x3c]
xor eax, dword [edi + 0x38]
mov ebx, edx
or ebx, eax
jne 0x4189fe
mov eax, dword [ebp - 0x20cb0]
mov esi, dword [ebp - 0x20ca0]
mov edx, dword [eax + 0x34]
xor edx, dword [esi + 0x34]
mov eax, dword [eax + 0x30]
xor eax, dword [esi + 0x30]
mov edi, edx
or edi, eax
jne 0x4189fe
mov edx, dword [esi + 0x40]
mov eax, esi
mov dword [ebp - 0x20cd8], edx
mov edx, dword [esi + 0x44]
mov ebx, edx
or ebx, dword [ebp - 0x20cd8]
mov dword [ebp - 0x20ce0], edx
je 0x418e0a
mov edx, dword [ebp - 0x20cb0]
mov ebx, dword [esi + 0x48]
mov eax, dword [eax + 0x4c]
mov edi, dword [edx + 0x4c]
mov ecx, dword [edx + 0x48]
mov dword [ebp - 0x20cd8], eax
sub eax, ebx
sar eax, 2
mov edx, edi
sub edx, ecx
mov esi, edx
sar esi, 2
cmp esi, eax
jne 0x418a12
test esi, esi
je 0x418e0a
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
mov dword [esp], ecx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x418a12
jmp 0x418e0a
mov eax, dword [ebp - 0x20548]
test eax, eax
jne 0x418e32
mov eax, dword [ebp - 0x20cb8]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x20cd0]
mov dword [esp], str._d_added___d__removed._n
mov dword [esp + 4], eax
call fcn.00462d40
mov eax, dword [ebp - 0x10030]
cmp eax, 0xffffffff
je 0x4191ed
mov esi, dword [ebp - 0x10034]
test esi, esi
je 0x419719
lea edx, [ebp - 0x20c28]
mov dword [ebp - 0x20c28], 0
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [ebp - 0x20c90], 0x36
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, eax
mov eax, dword [ebp - 0x20c28]
sub esp, 0x10
xor ebx, ebx
mov edx, eax
xor eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x10034]
adc edx, ebx
add eax, dword [ebp - 0x10028]
adc edx, dword [ebp - 0x10024]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [ebp - 0x10020]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1001c]
mov dword [ebp - 0x20ca0], eax
mov dword [esp], eax
call fcn.0042bca0
mov eax, dword [ebp - 0x10030]
sub esp, 0x10
mov edx, dword [ebp - 0x10020]
lea ecx, [ebp - 0x20c2c]
mov dword [ebp - 0x20c2c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov ebx, dword [ebp - 0x20ca0]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [ebp - 0x20c90], 0x36
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp - 0x10030]
sub esp, 0x14
mov dword [ebp - 0x10020], 0
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
lea ecx, [ebp - 0x20058]
mov dword [ebp - 0x20c90], 0x36
mov dword [ebp - 0x10030], 0xffffffff
call fcn.00467ea0
cmp dword [ebp - 0x20050], 0xffffffff
mov dword [ebp - 0x20ca0], eax
mov dword [ebp - 0x20c9c], edx
je 0x419704
lea ecx, [ebp - 0x20058]
mov dword [ebp - 0x20c90], 0x36
call fcn.004656b0
mov esi, dword [ebp - 0x20d14]
mov eax, dword [ebp - 0x20050]
lea edx, [ebp - 0x20c24]
mov ebx, dword [ebp - 0x20d18]
mov dword [ebp - 0x20c24], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
sub esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [ebp - 0x20d84]
mov dword [esp + 0x14], eax
movq xmm6, qword [ebp - 0x20cf0]
movq qword [esp + 0xc], xmm6
mov eax, dword [ebp - 0x20c98]
mov edx, dword [eax + 0xec]
mov eax, dword [eax + 0xe8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x20058]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x36
call fcn.004084c0
cmp dword [ebp - 0x20050], 0xffffffff
je 0x419314
lea ecx, [ebp - 0x20058]
call fcn.004656b0
mov eax, dword [ebp - 0x20050]
lea edx, [ebp - 0x20c20]
mov dword [ebp - 0x20c20], 0
mov dword [esp + 0xc], 2
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
sub esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp - 0x20058]
mov dword [ebp - 0x20c90], 0x36
call fcn.00467ea0
mov dword [ebp - 0x20cb0], eax
mov eax, dword [ebp - 0x20050]
mov dword [ebp - 0x20cac], edx
cmp eax, 0xffffffff
je 0x419441
mov esi, dword [ebp - 0x20054]
test esi, esi
je 0x41967d
lea edx, [ebp - 0x20c18]
mov dword [ebp - 0x20c18], 0
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [ebp - 0x20c90], 0x36
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, eax
mov eax, dword [ebp - 0x20c18]
sub esp, 0x10
xor ebx, ebx
mov edx, eax
xor eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x20054]
adc edx, ebx
add eax, dword [ebp - 0x20048]
adc edx, dword [ebp - 0x20044]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [ebp - 0x20040]
mov dword [esp + 4], eax
lea eax, [ebp - 0x2003c]
mov dword [ebp - 0x20ca8], eax
mov dword [esp], eax
call fcn.0042bca0
mov eax, dword [ebp - 0x20050]
sub esp, 0x10
mov edx, dword [ebp - 0x20040]
lea ecx, [ebp - 0x20c1c]
mov dword [ebp - 0x20c1c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x20ca8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 0x36
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp - 0x20050]
sub esp, 0x14
mov dword [ebp - 0x20040], 0
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov eax, dword [ebp - 0x20c98]
mov dword [ebp - 0x20050], 0xffffffff
mov edi, dword [eax + 0x34]
test edi, edi
je 0x4195a1
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x36
call sub.msvcrt.dll_fflush
fild qword [ebp - 0x20ca0]
mov eax, dword [ebp - 0x20ca0]
mov edx, dword [ebp - 0x20c9c]
fld dword [0x4fac74]
fdiv st(1), st(0)
fxch st(1)
fstp qword [esp + 0x28]
sub eax, dword [ebp - 0x20d18]
sbb edx, dword [ebp - 0x20d14]
mov dword [ebp - 0x20ca0], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [ebp - 0x20c9c], edx
fild qword [ebp - 0x20ca0]
add eax, 0x40
fdiv st(1)
fstp qword [esp + 0x20]
fild qword [ebp - 0x20d80]
fdiv st(1)
fstp qword [esp + 0x18]
fild qword [ebp - 0x20d10]
fdiv st(1)
fstp qword [esp + 0x10]
fld qword [ebp - 0x20d70]
mov dword [esp + 4], str._n_1.6f____1.6f_____1.6f_____1.6f____1.6f_MB_n
mov dword [esp], eax
fdivrp st(1)
fstp qword [esp + 8]
call fcn.00462d60
mov ecx, dword [ebp - 0x20c58]
xor eax, eax
mov dword [ebp - 0x20558], 0x508fa4
mov dword [ebp - 0x20554], 0x508fc4
test ecx, ecx
setg al
mov dword [ebp - 0x20ca0], eax
mov eax, dword [ebp - 0x20550]
test eax, eax
je 0x41952f
mov dword [esp], eax
call fcn.004628a0
lea ecx, [ebp - 0x10034]
call fcn.00464aa0
mov eax, dword [ebp - 0x20bfc]
test eax, eax
je 0x41954c
mov dword [esp], eax
call fcn.004f28f0
lea ecx, [ebp - 0x20c08]
mov dword [esp], 0
mov dword [ebp - 0x20c90], 0
call fcn.00402bc0
mov eax, dword [ebp - 0x206bc]
sub esp, 4
mov dword [ebp - 0x206c4], 0x508fa4
mov dword [ebp - 0x206c0], 0x508fc4
test eax, eax
je 0x419591
mov dword [esp], eax
call fcn.004628a0
lea ecx, [ebp - 0x20be0]
call fcn.00402b70
jmp 0x417907
mov eax, dword [ebp - 0x20cb8]
add eax, dword [ebp - 0x20cd0]
jne 0x4195e0
mov eax, dword [ebp - 0x20ca0]
sub eax, dword [ebp - 0x20d18]
mov edx, dword [ebp - 0x20c9c]
sbb edx, dword [ebp - 0x20d14]
xor eax, 0x68
mov esi, edx
or esi, eax
jne 0x4195e0
movq xmm7, qword [ebp - 0x20d18]
movq qword [ebp - 0x20ca0], xmm7
mov esi, dword [ebp - 0x20cac]
mov edx, dword [ebp - 0x20c9c]
mov ebx, dword [ebp - 0x20cb0]
mov eax, dword [ebp - 0x20ca0]
cmp edx, esi
jg 0x41945c
jl 0x41960a
cmp eax, ebx
jae 0x41945c
cmp dword [ebp - 0x20c9c], 0
jl 0x419697
jle 0x41968e
fild qword [ebp - 0x20ca0]
fstp qword [esp + 0xc]
fild qword [ebp - 0x20cb0]
mov dword [esp], str.truncating_archive_from__1.0f_to__1.0f_n
fstp qword [esp + 4]
call fcn.00462d40
movq xmm1, qword [ebp - 0x20ca0]
movq qword [esp + 4], xmm1
mov eax, dword [ebp - 0x20bbc]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x36
call fcn.00405210
test eax, eax
je 0x41945c
mov eax, dword [ebp - 0x20c98]
mov eax, dword [eax + 4]
mov dword [esp], eax
call fcn.004049f0
jmp 0x41945c
lea edi, [ebp - 0x2003c]
mov dword [ebp - 0x20ca8], edi
jmp 0x4193df
cmp dword [ebp - 0x20ca0], 0
ja 0x419619
mov edx, dword [ebp - 0x20c9c]
mov eax, dword [ebp - 0x20ca0]
mov esi, edx
or esi, eax
jne 0x41945c
mov eax, dword [ebp - 0x20bbc]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x36
call fcn.00404930
test al, al
je 0x41945c
mov dword [esp], str.deleted
call fcn.00462d40
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20bbc]
mov dword [esp], eax
call fcn.00403710
mov dword [esp], 0x4f9a81
call fcn.00462d40
jmp 0x41945c
movq xmm5, qword [ebp - 0x20d18]
movq qword [ebp - 0x20048], xmm5
jmp 0x41927a
lea edx, [ebp - 0x1001c]
mov dword [ebp - 0x20ca0], edx
jmp 0x41918b
mov eax, dword [ebp - 0x20ca0]
mov edx, dword [eax + 0x40]
mov eax, dword [eax + 0x44]
mov dword [ebp - 0x20ce0], eax
or eax, edx
mov dword [ebp - 0x20cd8], edx
jne 0x418a12
mov edx, dword [ebp - 0x20cb0]
cmp dword [ebp - 0x20cc0], edx
je 0x419772
mov esi, dword [edx + 0x28]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x20cd8], eax
or eax, esi
mov dword [ebp - 0x20cc8], esi
jne 0x41980f
mov dword [esp], 0x4fa4ab
call fcn.00462d40
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20ca0]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x42
call fcn.00403710
mov esi, dword [ebp - 0x20ca0]
mov eax, dword [ebp - 0x20654]
cmp eax, dword [esi + 0x14]
je 0x419820
mov dword [esp], 0x4fa51e
call fcn.00462d40
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20658]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x42
call fcn.00403710
mov dword [esp], 0x4f9a81
call fcn.00462d40
mov eax, dword [ebp - 0x20ca0]
mov edx, dword [eax + 0x2c]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x20cc4], edx
mov dword [ebp - 0x20cc8], eax
jmp 0x418a12
mov dword [esp], 0x4fa5d3
call fcn.00462d40
jmp 0x41977e
test eax, eax
mov ecx, dword [esi + 0x10]
mov edx, dword [ebp - 0x20658]
je 0x4197e6
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4197b6
jmp 0x4197e6
mov dword [esp], str.Out_of_memory
mov dword [ebp - 0x20c90], 0x42
call fcn.00402a80
mov eax, 5
mov dword [esp], eax
mov ecx, dword [ebp - 0x20ce0]
mov dword [ebp - 0x20c90], 0x42
call fcn.00465fd0
sub esp, 4
xor eax, eax
sub dword [ebp - 0x20cc8], 1
jne 0x419862
mov eax, dword [ebp - 0x20ca0]
mov dword [ebp - 0x20cd8], 5
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x20cc4], edx
mov dword [ebp - 0x20cc8], eax
movzx eax, byte [ebp - 0x20cc8]
mov dword [esp], eax
mov ecx, dword [ebp - 0x20ce0]
mov dword [ebp - 0x20c90], 0x42
call fcn.00465fd0
mov edx, dword [ebp - 0x20cc4]
mov eax, dword [ebp - 0x20cc8]
sub esp, 4
shrd eax, edx, 8
shr edx, 8
sub dword [ebp - 0x20cd8], 1
mov dword [ebp - 0x20cc8], eax
mov dword [ebp - 0x20cc4], edx
jne 0x4198aa
jmp 0x418c27
mov dword [ebp - 0x20cc8], 4
mov eax, 3
mov dword [esp], eax
mov ecx, dword [ebp - 0x20ce0]
mov dword [ebp - 0x20c90], 0x42
call fcn.00465fd0
sub esp, 4
xor eax, eax
sub dword [ebp - 0x20cc8], 1
jne 0x419908
mov eax, dword [ebp - 0x20ca0]
mov dword [ebp - 0x20cd8], 3
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x20cc4], edx
mov dword [ebp - 0x20cc8], eax
movzx eax, byte [ebp - 0x20cc8]
mov dword [esp], eax
mov ecx, dword [ebp - 0x20ce0]
mov dword [ebp - 0x20c90], 0x42
call fcn.00465fd0
mov edx, dword [ebp - 0x20cc4]
mov eax, dword [ebp - 0x20cc8]
sub esp, 4
shrd eax, edx, 8
shr edx, 8
sub dword [ebp - 0x20cd8], 1
mov dword [ebp - 0x20cc8], eax
mov dword [ebp - 0x20cc4], edx
jne 0x419950
jmp 0x418c27
mov eax, dword [ebp - 0x20550]
jmp 0x418da3
mov dword [esp], str.Out_of_memory
mov dword [ebp - 0x20c90], 0x36
call fcn.00402a80
mov dword [esp], edi
call sub.msvcrt.dll_malloc
jmp 0x418582
mov dword [esp], str.StringBuffer_overflow
mov dword [ebp - 0x20c90], 0x36
call fcn.00402a80
mov dword [esp], str.Out_of_memory
mov dword [ebp - 0x20c90], 0x36
call fcn.00402a80
mov dword [esp], esi
call sub.msvcrt.dll_malloc
jmp 0x416fa4
mov dword [esp], 0x4fa52d
call fcn.00462d40
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20ca0]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call fcn.00403710
mov dword [esp], 0x4f9a81
call fcn.00462d40
jmp 0x4186e8
mov dword [esp], str.Out_of_memory
mov dword [ebp - 0x20c90], 0x36
call fcn.00402a80
mov dword [esp], esi
call sub.msvcrt.dll_malloc
jmp 0x418652
xor eax, eax
jmp 0x418666
mov dword [esp], str.StringBuffer_overflow
mov dword [ebp - 0x20c90], 0x36
call fcn.00402a80
mov eax, dword [ebp - 0x20550]
jmp 0x418672
mov dword [esp], esi
call sub.msvcrt.dll_malloc
jmp 0x418b0e
xor eax, eax
jmp 0x418b22
mov dword [esp], str.StringBuffer_overflow
mov dword [ebp - 0x20c90], 0x42
call fcn.00402a80
mov eax, dword [ebp - 0x20550]
jmp 0x418b2e
mov dword [esp], str.StringBuffer_overflow
mov dword [ebp - 0x20c90], 0x42
call fcn.00402a80
mov eax, dword [ebp - 0x20ca0]
mov dword [ebp - 0x20cc8], eax
mov edi, eax
jmp 0x418c5c
mov dword [esp], str.Out_of_memory
mov dword [ebp - 0x20c90], 0x42
call fcn.00402a80
mov eax, dword [ebp - 0x20cd8]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
jmp 0x418d80
mov dword [esp], str._method_must_begin_with_0..5__x__s
mov dword [ebp - 0x20c90], 4
call fcn.00402a80
mov dword [esp], str.cannot_update_streaming_archive_in_journaling_format
mov dword [ebp - 0x20c90], 4
call fcn.00402a80
mov dword [esp], 4
call fcn.004f2ae0
mov dword [eax], fcn.004e70f0
mov dword [esp + 8], fcn.004e70f0
mov dword [esp + 4], 0x506d24
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x48
call fcn.004f34a0
mov dword [ebp - 0x20c90], 0x19
call fcn.004ea1a0
mov dword [esp], str.GetModuleFileNameW
mov dword [ebp - 0x20c90], 0x2d
call fcn.004ea920
mov dword [esp], str.StringBuffer_overflow
mov dword [ebp - 0x20c90], 0x33
call fcn.00402a80
mov dword [esp], str.StringBuffer_overflow
mov dword [ebp - 0x20c90], 0x33
call fcn.00402a80
mov dword [esp], str.GetModuleFileNameW
mov dword [ebp - 0x20c90], 0x28
call fcn.004ea920
mov dword [ebp - 0x20bdc], 0
mov dword [esp], str.Out_of_memory
mov dword [ebp - 0x20c90], 0x49
call fcn.00402a80
mov dword [ebp - 0x20bdc], 0
mov dword [esp], str.Array_too_big
mov dword [ebp - 0x20c90], 0x49
call fcn.00402a80
mov dword [ebp - 0x20d10], 0
mov dword [ebp - 0x20d0c], 0
jmp 0x414621
mov dword [esp], str.blocksize_must_be_0..11
mov dword [ebp - 0x20c90], 4
call fcn.00402a80
mov dword [esp], str.StringBuffer_overflow
mov dword [ebp - 0x20c90], 0x33
call fcn.00402a80
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20bbc]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 4
call fcn.00403710
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.:_archive_exists_n
add eax, 0x40
mov dword [esp], eax
call fcn.00462d60
mov dword [esp], str.archive_exists
call fcn.00402a80
mov dword [esp], str.cannot_read_salt_from_index
call fcn.00402a80
mov dword [esp], str.cannot_truncate_with_an_index
mov dword [ebp - 0x20c90], 4
call fcn.00402a80
mov edi, eax
lea eax, [ebp - 0x20b0c]
lea ecx, [ebp - 0x20b14]
mov edx, dword [edi + 8]
mov dword [ebp - 0x20b14], eax
mov eax, dword [edi + 4]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 4
call fcn.00401570
lea eax, [ebp - 0x20b14]
sub esp, 8
mov dword [esp + 8], 0
mov dword [esp + 4], eax
lea eax, [ebp - 0x20058]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0xa
call fcn.00405600
mov eax, dword [ebp - 0x20b14]
lea ebx, [ebp - 0x20b0c]
cmp eax, ebx
je 0x419d40
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20c98]
mov ebx, dword [eax + 8]
cmp dword [ebp - 0x20054], ebx
mov dword [ebp - 0x20ca8], ebx
je 0x41a269
mov eax, dword [eax + 4]
mov dword [ebp - 0x20cb0], eax
mov dword [ebp - 0x20ca0], 0
mov dword [ebp - 0x20cd8], 0
mov dword [ebp - 0x20cd4], 0
mov edx, dword [ebp - 0x20ca8]
jmp 0x419e8e
mov eax, dword [ebp - 0x20ca8]
mov dword [ebp - 0x20c90], 0xc
call fcn.00403620
cmp eax, 0xffffffff
je 0x419f76
mov esi, dword [ebp - 0x20cb8]
lea edx, [ebp - 0x20c4c]
mov dword [ebp - 0x20c4c], 0
mov dword [ebp - 0x20ca0], esi
mov dword [esp + 0xc], 2
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [ebp - 0x20ca8], eax
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
sub esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [ebp - 0x20c48]
mov dword [ebp - 0x20c48], 0
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x20ca8]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, eax
mov eax, dword [ebp - 0x20c48]
sub esp, 0x10
xor ebx, ebx
mov edx, eax
xor eax, eax
add eax, ecx
adc edx, ebx
add dword [ebp - 0x20cd8], eax
mov eax, dword [ebp - 0x20ca8]
adc dword [ebp - 0x20cd4], edx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x10038]
lea ebx, [ebp - 0x10030]
sub esp, 4
cmp eax, ebx
je 0x419e74
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20c98]
mov esi, dword [eax + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x20ca8], esi
mov dword [ebp - 0x20cb0], eax
mov edx, esi
lea esi, [ebp - 0x20af4]
mov eax, dword [ebp - 0x20ca0]
lea ecx, [ebp - 0x20afc]
mov dword [ebp - 0x20afc], esi
mov esi, dword [ebp - 0x20cb0]
add eax, 1
mov dword [ebp - 0x20cb8], eax
add edx, esi
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 0xd
call fcn.00401570
mov eax, dword [ebp - 0x20cb8]
sub esp, 8
mov dword [esp + 8], eax
lea eax, [ebp - 0x20afc]
mov dword [esp + 4], eax
lea eax, [ebp - 0x10038]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0xb
call fcn.00405600
mov eax, dword [ebp - 0x20afc]
lea edx, [ebp - 0x20af4]
cmp eax, edx
je 0x419f14
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x10034]
cmp eax, dword [ebp - 0x20054]
mov ebx, dword [ebp - 0x10038]
mov dword [ebp - 0x20ca8], ebx
jne 0x419d90
test eax, eax
jne 0x419f50
mov dword [esp], str.too_many_archive_parts
mov dword [ebp - 0x20c90], 0xc
call fcn.00402a80
lea esi, [esi]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x20058]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20ca8]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x419d90
jmp 0x419f36
mov eax, dword [ebp - 0x10038]
lea edx, [ebp - 0x10030]
cmp eax, edx
je 0x419f8e
mov dword [esp], eax
call fcn.004f28f0
mov edi, dword [ebp - 0x20c98]
mov ecx, dword [ebp - 0x20ca0]
mov eax, dword [edi + 0x58]
test eax, eax
setne dl
xor eax, eax
test ecx, ecx
sete al
lea ecx, [ebp - 0x20ae4]
and eax, edx
mov edx, dword [edi + 8]
shl eax, 5
mov dword [ebp - 0x20d18], eax
sar eax, 0x1f
mov dword [ebp - 0x20d14], eax
lea eax, [ebp - 0x20adc]
mov dword [ebp - 0x20ae4], eax
mov eax, dword [edi + 4]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 0xd
call fcn.00401570
mov eax, dword [ebp - 0x20cb8]
sub esp, 8
mov dword [esp + 8], eax
lea eax, [ebp - 0x20ae4]
mov dword [esp + 4], eax
lea eax, [ebp - 0x20acc]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0xe
call fcn.00405600
lea eax, [ebp - 0x20acc]
lea ecx, [ebp - 0x20bbc]
mov dword [esp], eax
call fcn.004dbae0
mov eax, dword [ebp - 0x20acc]
lea edx, [ebp - 0x20ac4]
sub esp, 4
cmp eax, edx
je 0x41a04b
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20ae4]
lea ebx, [ebp - 0x20adc]
cmp eax, ebx
je 0x41a063
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20bbc]
lea ecx, [ebp - 0x20ab4]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0xd
call fcn.00401630
lea eax, [ebp - 0x20ab4]
sub esp, 4
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0xf
call fcn.004047f0
mov byte [ebp - 0x20ca0], al
mov eax, dword [ebp - 0x20ab4]
lea edx, [ebp - 0x20aac]
cmp eax, edx
je 0x41a0ba
mov dword [esp], eax
call fcn.004f28f0
cmp byte [ebp - 0x20ca0], 0
jne 0x41a253
mov ebx, dword [ebp - 0x20c98]
mov eax, dword [ebx + 0x58]
test eax, eax
je 0x41a1fd
lea eax, [ebp - 0x20a94]
mov edx, dword [ebx + 8]
lea ecx, [ebp - 0x20a9c]
mov dword [ebp - 0x20a9c], eax
mov eax, dword [ebx + 4]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20c90], 0xd
call fcn.00401570
lea eax, [ebp - 0x20a84]
lea esi, [ebp - 0x20a9c]
sub esp, 8
mov dword [esp + 8], 1
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0x10
call fcn.00405600
mov eax, dword [ebp - 0x20a84]
mov dword [ebp - 0x20c90], 0x11
call fcn.00403620
mov dword [ebp - 0x20ca0], eax
mov eax, dword [ebp - 0x20a84]
lea edx, [ebp - 0x20a7c]
cmp eax, edx
je 0x41a168
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x20a9c]
lea edi, [ebp - 0x20a94]
cmp eax, edi
je 0x41a180
mov dword [esp], eax
call fcn.004f28f0
cmp dword [ebp - 0x20ca0], 0xffffffff
je 0x41a22a
lea eax, [ebp - 0x20c44]
mov dword [ebp - 0x20c44], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x20
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x206a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20ca0]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x20c90], 0xd
call eax
sub esp, 0x14
cmp dword [ebp - 0x20c44], 0x20
jne 0x41a21e
mov eax, dword [ebp - 0x20ca0]
mov dword [esp], eax
mov dword [ebp - 0x20c90], 0xd
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov eax, dword [ebp - 0x20058]
lea edx, [ebp - 0x20050]
cmp eax, edx
je 0x413f07
mov dword [esp], eax
call fcn.004f28f0
jmp 0x413f07
mov dword [esp], str.cannot_read_salt
call fcn.00402a80
cmp dword [ebp - 0x20d14], 0
jl 0x41a31a
jle 0x41a30d
mov dword [esp], str.archive_first_part_not_found
mov dword [ebp - 0x20c90], 0xd
call fcn.00402a80
mov dword [esp], str.part_exists
mov dword [ebp - 0x20c90], 0xd
call fcn.00402a80
mov edi, dword [eax + 4]
test ebx, ebx
mov eax, dword [ebp - 0x20058]
mov dword [ebp - 0x20cb0], edi
je 0x41a294
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x419d64
mov dword [ebp - 0x20cd8], 0
mov dword [ebp - 0x20cd4], 0
jmp 0x41a0c7
cmp dword [ebp - 0x20d18], 0x20
ja 0x41a23d
mov dword [ebp - 0x20d18], 0x20
mov dword [ebp - 0x20d14], 0
jmp 0x41a1fd