Function at 0x4abb49
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x67164c
call fcn.006313fc
sub esp, 0x604
push ebx
push ebp
push esi
mov esi, dword [esp + 0x624]
lea eax, [esp + 0x6c]
push edi
mov edi, dword [esp + 0x630]
xor ebx, ebx
push eax
mov dword [esp + 0x20], ebx
mov ebp, ecx
mov eax, dword [esp + 0x630]
push 0x69da64
add eax, esi
mov dword [esp + 0x80], ebp
push eax
push edi
push esi
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
call fcn.0045c288
test eax, eax
je 0x4addb6
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x4addb6
mov al, byte [edi + 0x10]
cmp al, 5
jne 0x4addb6
mov eax, ecx
sub eax, esi
cdq
mov dword [ebp + 0x698], eax
mov eax, dword [esp + 0x74]
sub eax, ecx
mov dword [ebp + 0x69c], edx
test byte [ebp + 0x13c], 4
cdq
mov dword [ebp + 0x6a0], eax
mov dword [ebp + 0x6a4], edx
je 0x4abd8b
lea ecx, [esp + 0x12c]
call fcn.0046638e
push dword [ebp + 0x6a0]
lea ecx, [esp + 0x130]
mov dword [esp + 0x620], 1
push dword [esp + 0x74]
call fcn.0046632a
lea ecx, [ebp + 8]
push eax
mov dword [esp + 0x2c], ecx
call fcn.0054bab7
or ebx, 0xffffffff
test al, al
jne 0x4abd7f
push ebx
push str.info
mov ecx, edi
call fcn.0045ba72
mov esi, eax
test esi, esi
je 0x4abcf7
lea eax, [esp + 0x20]
mov ecx, esi
push eax
push str.althash
call fcn.0045bcaf
mov edi, eax
test edi, edi
je 0x4abcf7
cmp dword [esp + 0x20], 0x14
jne 0x4abcf7
xor ecx, ecx
mov eax, dword [ebp + ecx*4 + 8]
cmp eax, dword [edi + ecx*4]
jne 0x4abcf7
inc ecx
cmp ecx, 5
jne 0x4abc77
lea eax, [esp + 0x10]
mov ecx, esi
push eax
push 0x690ff0
call fcn.0045bcaf
mov dword [esp + 0x24], eax
test eax, eax
je 0x4abcf7
cmp dword [esp + 0x10], 0x28
jne 0x4abcf7
push edi
lea eax, [esp + 0x58]
push 0x6968b8
push eax
call fcn.00472228
add esp, 0xc
mov dword [esp + 0x1c], 1
cmp dword [eax + 0x14], 0x10
mov byte [esp + 0x61c], 2
jb 0x4abcd1
mov eax, dword [eax]
push dword [esp + 0x24]
push eax
call fcn.00638078
pop ecx
pop ecx
test eax, eax
jne 0x4abcf7
push ebx
push str.files
mov ecx, esi
call fcn.0045bb6f
mov byte [esp + 0x17], 0
test eax, eax
je 0x4abcfc
mov byte [esp + 0x17], 1
test byte [esp + 0x1c], 1
mov dword [esp + 0x61c], 1
je 0x4abd1b
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0040a0e9
cmp byte [esp + 0x17], 0
je 0x4abd7f
cmp dword [esp + 0x634], 0
je 0x4abd67
call fcn.00490095
push eax
push 8
lea ecx, [esp + 0x44]
call fcn.0048f892
mov ecx, dword [esp + 0x634]
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x620], 3
call fcn.0048f962
lea ecx, [esp + 0x3c]
mov byte [esp + 0x61c], 1
call fcn.0048f8e2
lea ecx, [esp + 0x12c]
mov dword [esp + 0x61c], ebx
call fcn.00409edb
jmp 0x4addf9
lea ecx, [esp + 0x12c]
jmp 0x4abe3d
lea ecx, [esp + 0x1a0]
call fcn.0046638e
push dword [ebp + 0x6a0]
lea ecx, [esp + 0x1a4]
mov dword [esp + 0x620], 4
push dword [esp + 0x74]
call fcn.0046632a
lea ebx, [ebp + 8]
mov dword [esp + 0x28], ebx
cmp ebx, eax
je 0x4abdcc
push 5
pop ecx
mov esi, eax
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x12c]
call fcn.0046638e
push 0x14
push ebx
lea ecx, [esp + 0x134]
mov byte [esp + 0x624], 5
call fcn.004663d4
push 6
push 0x69da84
lea ecx, [esp + 0x134]
call fcn.004663d4
lea ecx, [esp + 0x12c]
call fcn.00466319
lea edi, [ebp + 0x321]
cmp edi, eax
je 0x4abe1f
push 5
pop ecx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x12c]
mov byte [esp + 0x61c], 4
call fcn.00409edb
or ebx, 0xffffffff
lea ecx, [esp + 0x1a0]
mov dword [esp + 0x61c], ebx
call fcn.00409edb
mov esi, dword [esp + 0x630]
mov ecx, esi
push ebx
push str.info
call fcn.0045ba72
mov dword [esp + 0x34], eax
test eax, eax
je 0x4addf9
push ebx
push str.announce_list
mov ecx, esi
call fcn.0045bb6f
mov dword [esp + 0x10], eax
test eax, eax
je 0x4abf7e
mov ecx, eax
xor edi, edi
call fcn.0045ba56
test eax, eax
je 0x4ac004
mov ecx, dword [esp + 0x10]
push edi
call fcn.0045bb8b
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4abf67
xor esi, esi
mov dword [esp + 0x20], esi
mov eax, dword [ebp + 0x1d0]
sub eax, dword [ebp + 0x1cc]
sar eax, 2
mov dword [esp + 0x61c], 6
cmp eax, edi
jbe 0x4abee4
mov eax, dword [ebp + 0x1cc]
lea ecx, [esp + 0x20]
lea eax, [eax + edi*4]
push eax
call fcn.0049a8ed
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
and dword [esp + 0x24], 0
call fcn.0045ba56
test eax, eax
je 0x4abf55
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
push 0
push esi
lea eax, [esp + 0x5c]
mov ecx, ebx
push eax
call fcn.0045bd9b
cmp dword [esp + 0x64], 0
mov byte [esp + 0x61c], 7
je 0x4abf2d
lea eax, [esp + 0x20]
mov ecx, ebp
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0049bcbf
push 0
push 1
lea ecx, [esp + 0x5c]
mov byte [esp + 0x624], 6
call fcn.0042341c
mov ecx, ebx
inc esi
call fcn.0045ba56
cmp esi, eax
jne 0x4abefe
mov esi, dword [esp + 0x20]
or ebx, 0xffffffff
mov dword [esp + 0x61c], ebx
test esi, esi
je 0x4abf67
mov ecx, esi
call fcn.004aef31
mov ecx, dword [esp + 0x10]
inc edi
call fcn.0045ba56
cmp edi, eax
jne 0x4abe93
jmp 0x4ac004
push 0
push str.announce
lea eax, [esp + 0x5c]
mov ecx, esi
push eax
call fcn.0045bd54
cmp dword [esp + 0x64], 0
mov dword [esp + 0x61c], 8
je 0x4abff0
and dword [esp + 0x1c], 0
mov eax, dword [ebp + 0x1d0]
sub eax, dword [ebp + 0x1cc]
sar eax, 2
mov byte [esp + 0x61c], 9
test eax, eax
je 0x4abfd2
push dword [ebp + 0x1cc]
lea ecx, [esp + 0x20]
call fcn.0049a8ed
lea eax, [esp + 0x1c]
mov ecx, ebp
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0049bcbf
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4abff0
call fcn.004aef31
push 0
push 1
lea ecx, [esp + 0x5c]
mov dword [esp + 0x624], ebx
call fcn.0042341c
mov ecx, dword [esp + 0x34]
push ebx
push str.originator
call fcn.0045b99c
mov esi, eax
test esi, esi
je 0x4ac09d
cmp byte [esi + 0x10], 3
je 0x4ac025
xor esi, esi
test esi, esi
je 0x4ac09d
push 8
call fcn.00630af1
mov edi, eax
pop ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x61c], 0xa
test edi, edi
je 0x4ac064
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 4]
sub edx, dword [ecx]
mov eax, dword [ecx + 4]
dec edx
sub eax, dword [ecx]
dec eax
je 0x4ac059
mov eax, dword [ecx]
push edx
push eax
mov ecx, edi
call fcn.0050d058
jmp 0x4ac066
xor eax, eax
mov ecx, eax
mov dword [esp + 0x61c], ebx
mov dword [ebp + 0x488], eax
call fcn.0050e8c6
test al, al
jne 0x4ac09d
mov esi, dword [ebp + 0x488]
test esi, esi
je 0x4ac096
mov ecx, esi
call fcn.0050d131
push esi
call fcn.0040a313
pop ecx
and dword [ebp + 0x488], 0
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x54]
push str.update_url
push eax
call fcn.0045bbbd
lea edi, [ebp + 0x44c]
mov dword [esp + 0x61c], 0xb
push eax
mov ecx, edi
call fcn.00422f82
push 0
push 1
lea ecx, [esp + 0x5c]
mov dword [esp + 0x624], ebx
call fcn.0040a0e9
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x54]
push 0x69dac0
push eax
call fcn.0045bbbd
lea esi, [ebp + 0xa8]
push eax
mov ecx, esi
call fcn.00409822
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0040a0e9
mov ecx, dword [esp + 0x630]
push ebx
push str.signatures
call fcn.0045ba72
mov dword [esp + 0x24], eax
test eax, eax
je 0x4ac48f
mov eax, dword [eax + 8]
mov esi, dword [eax]
mov esi, dword [esi]
mov dword [esp + 0x18], esi
jmp 0x4ac485
lea eax, [esi + 0x1c]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4ac14a
cmp byte [eax + 0x10], 5
je 0x4ac150
xor eax, eax
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x4ac181
and dword [edi + 0x10], 0
cmp dword [edi + 0x14], 0x10
jb 0x4ac162
mov eax, dword [edi]
jmp 0x4ac164
mov eax, edi
mov byte [eax], 0
lea eax, [ebp + 0xa8]
and dword [eax + 0x10], 0
cmp dword [eax + 0x14], 0x10
jb 0x4ac179
mov eax, dword [eax]
mov byte [eax], 0
jmp 0x4ac471
push ebx
push str.signature
mov ecx, eax
call fcn.0045b99c
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4ac1c1
xor ecx, ecx
cmp dword [edi + 0x14], 0x10
mov dword [edi + 0x10], ecx
jb 0x4ac1a5
mov eax, dword [edi]
jmp 0x4ac1a7
mov eax, edi
mov byte [eax], cl
lea eax, [ebp + 0xa8]
cmp dword [eax + 0x14], 0x10
mov dword [eax + 0x10], ecx
jb 0x4ac1ba
mov eax, dword [eax]
mov byte [eax], cl
jmp 0x4ac471
cmp byte [eax + 0x10], 3
je 0x4ac1cd
xor eax, eax
mov dword [esp + 0x20], eax
test eax, eax
je 0x4ac154
mov ecx, dword [esp + 0x1c]
push ebx
push str.info
call fcn.0045b99c
lea ecx, [esp + 0x12c]
mov dword [esp + 0x10], eax
call fcn.0046638e
push dword [ebp + 0x6a0]
lea ecx, [esp + 0x130]
mov dword [esp + 0x620], 0xc
push dword [esp + 0x74]
call fcn.004663d4
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4ac252
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0045c6fd
lea eax, [esp + 0x3c]
mov byte [esp + 0x61c], 0xd
push eax
lea ecx, [esp + 0x130]
call fcn.00466398
push 0
push 1
lea ecx, [esp + 0x44]
mov byte [esp + 0x624], 0xc
call fcn.0040a0e9
push dword [esi + 0x10]
lea ecx, [esp + 0x40]
call fcn.00409ba7
mov eax, dword [esi + 0x14]
xor ecx, ecx
sub eax, dword [esi + 0x10]
dec eax
mov dword [esp + 0x64], ecx
push eax
push ecx
lea eax, [esp + 0x44]
mov byte [esp + 0x5c], cl
push eax
lea ecx, [esp + 0x60]
mov byte [esp + 0x628], 0xe
mov dword [esp + 0x74], 0xf
call fcn.0040a034
push 0
push 1
lea ecx, [esp + 0x44]
mov byte [esp + 0x624], 0x10
call fcn.0040a0e9
mov ecx, dword [esp + 0x1c]
push ebx
push str.certificate
call fcn.0045b99c
xor ecx, ecx
test eax, eax
je 0x4ac2d4
cmp byte [eax + 0x10], 3
jne 0x4ac2c3
mov ecx, eax
jmp 0x4ac2c5
xor ecx, ecx
test ecx, ecx
je 0x4ac2d4
mov eax, dword [ecx + 8]
mov edx, dword [eax + 4]
sub edx, dword [eax]
dec edx
jmp 0x4ac2d6
xor edx, edx
test ecx, ecx
je 0x4ac2e9
mov ecx, dword [ecx + 8]
mov eax, dword [ecx + 4]
sub eax, dword [ecx]
dec eax
je 0x4ac2e9
mov eax, dword [ecx]
jmp 0x4ac2eb
xor eax, eax
push edx
push eax
sub esp, 0x18
lea eax, [esp + 0x74]
mov ecx, esp
mov dword [esp + 0x4c], esp
push eax
call fcn.0040a0c6
mov ecx, dword [esp + 0x40]
mov byte [esp + 0x63c], 0x11
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 4]
sub edx, dword [ecx]
mov eax, dword [ecx + 4]
dec edx
sub eax, dword [ecx]
dec eax
je 0x4ac31f
mov eax, dword [ecx]
push edx
push eax
lea ecx, [esp + 0x154]
call fcn.00466319
push eax
lea ecx, [esp + 0x108]
mov byte [esp + 0x648], 0x10
call fcn.004995f8
mov eax, dword [ebp + 0x488]
mov byte [esp + 0x61c], 0x12
test eax, eax
je 0x4ac404
push eax
lea ecx, [esp + 0xe0]
call fcn.004b404a
test al, al
je 0x4ac404
mov esi, dword [esp + 0x10]
test esi, esi
je 0x4ac37b
cmp byte [esi + 0x10], 5
je 0x4ac37d
xor esi, esi
test esi, esi
je 0x4ac42a
push 0
push str.update_url
mov ecx, esi
call fcn.0045bcaf
test eax, eax
je 0x4ac3da
push eax
lea ecx, [esp + 0x118]
call fcn.00409ba7
lea eax, [esp + 0x114]
mov byte [esp + 0x61c], 0x13
cmp edi, eax
je 0x4ac3c2
push ebx
push 0
push eax
mov ecx, edi
call fcn.0040a034
push 0
push 1
lea ecx, [esp + 0x11c]
mov byte [esp + 0x624], 0x12
call fcn.0040a0e9
push 0
push 0x69dac0
mov ecx, esi
call fcn.0045bcaf
mov esi, eax
test esi, esi
je 0x4ac42a
push esi
call fcn.00409db4
pop ecx
push eax
push esi
lea ecx, [ebp + 0xa8]
call fcn.00409b2f
jmp 0x4ac42a
xor ecx, ecx
cmp dword [edi + 0x14], 0x10
mov dword [edi + 0x10], ecx
jb 0x4ac413
mov eax, dword [edi]
jmp 0x4ac415
mov eax, edi
mov byte [eax], cl
lea eax, [ebp + 0xa8]
cmp dword [eax + 0x14], 0x10
mov dword [eax + 0x10], ecx
jb 0x4ac428
mov eax, dword [eax]
mov byte [eax], cl
lea eax, [esp + 0xdc]
push eax
lea ecx, [ebp + 0x17c]
call fcn.004b76aa
lea ecx, [esp + 0xdc]
mov byte [esp + 0x61c], 0x10
call fcn.0049a55b
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0040a0e9
lea ecx, [esp + 0x12c]
mov dword [esp + 0x61c], ebx
call fcn.00409edb
lea ecx, [esp + 0x18]
call fcn.0045d8b6
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov eax, dword [ecx + 8]
cmp esi, dword [eax]
jne 0x4ac139
jmp 0x4ac4ab
xor eax, eax
cmp dword [edi + 0x14], 0x10
mov dword [edi + 0x10], eax
jb 0x4ac49c
mov edi, dword [edi]
mov byte [edi], al
cmp dword [esi + 0x14], 0x10
mov dword [esi + 0x10], eax
jb 0x4ac4a9
mov esi, dword [esi]
mov byte [esi], al
mov ecx, dword [esp + 0x630]
mov esi, str.collections
push ebx
push esi
call fcn.0045bb6f
mov ecx, dword [esp + 0x34]
push ebx
push esi
mov dword [esp + 0x34], eax
call fcn.0045bb6f
xor edi, edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], edi
mov eax, dword [esp + edi*4 + 0x2c]
xor esi, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], esi
test eax, eax
je 0x4ac6cd
mov ecx, eax
call fcn.0045ba56
cmp esi, eax
jae 0x4ac6c9
mov ecx, dword [esp + 0x1c]
push 0
push esi
call fcn.0045bcde
push eax
lea ecx, [esp + 0x58]
call fcn.00409ba7
lea eax, [esp + 0x54]
mov dword [esp + 0x61c], 0x14
push eax
lea edi, [ebp + 0x6fc]
push edi
call fcn.0049286f
test al, al
jne 0x4ac53e
lea eax, [esp + 0x54]
mov ecx, edi
push eax
call fcn.004b75bf
mov byte [esp + 0x17], 1
call fcn.00475044
lea eax, [ebp + 8]
mov byte [esp + 0x61c], 0x15
push eax
lea eax, [esp + 0x58]
mov edi, 0x7641fc
push eax
mov ecx, edi
call fcn.0049aaef
push eax
call fcn.00492844
test al, al
jne 0x4ac69a
cmp byte [ebp + 0xd1], 0xc
je 0x4ac680
lea eax, [esp + 0x54]
mov ecx, edi
push eax
call fcn.0049aaef
mov ecx, dword [eax]
cmp ecx, dword [eax + 4]
je 0x4ac680
lea eax, [esp + 0x54]
mov ecx, edi
push eax
call fcn.0049aaef
push 5
pop ecx
lea edi, [esp + 0x3c]
mov esi, dword [eax + 4]
lea eax, [esp + 0x3c]
push eax
add esi, 0xffffffec
lea eax, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
push eax
mov ecx, 0x7641f4
call fcn.0048eec1
mov eax, dword [esp + 0x24]
cmp eax, dword [0x7641f4]
je 0x4ac67c
mov esi, dword [eax + 0x24]
mov ecx, esi
call fcn.004a542b
test al, al
jne 0x4ac67c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x15c]
test al, 0x40
je 0x4ac604
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x15c]
test al, 0x20
je 0x4ac63d
mov al, byte [esi + 0x47d]
test al, al
jne 0x4ac63d
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x170]
test al, al
je 0x4ac63d
push ebx
push ebx
mov ecx, esi
mov byte [esi + 0x47e], 1
mov byte [esi + 0x468], 0
call fcn.0049f278
push ebp
push 7
call fcn.00489603
jmp 0x4ac657
mov ecx, esi
call fcn.0049ceaf
mov eax, dword [esi]
mov ecx, esi
push str.Hidden
call dword [eax + 0x3c]
mov byte [esi + 0x468], 0
push ebx
push ebx
mov ecx, ebp
call fcn.0049f278
lea edi, [ebp + 0x469]
mov byte [ebp + 0x468], 1
lea eax, [esp + 0x3c]
cmp edi, eax
je 0x4ac67c
push 5
pop ecx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x10]
lea eax, [ebp + 8]
mov ecx, 0x7641fc
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0049aaef
mov ecx, eax
call fcn.00553d66
mov byte [esp + 0x61c], 0x14
call fcn.00475085
push 0
push 1
lea ecx, [esp + 0x5c]
mov dword [esp + 0x624], ebx
call fcn.0040a0e9
mov eax, dword [esp + 0x1c]
inc esi
mov dword [esp + 0x10], esi
jmp 0x4ac4ed
mov edi, dword [esp + 0x20]
inc edi
mov dword [esp + 0x20], edi
cmp edi, 2
jl 0x4ac4d7
mov ecx, dword [esp + 0x630]
mov esi, str.similar
push ebx
push esi
call fcn.0045bb6f
mov ecx, dword [esp + 0x34]
push ebx
push esi
mov dword [esp + 0x34], eax
call fcn.0045bb6f
mov ebx, dword [esp + 0x28]
xor edi, edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], edi
mov ebp, dword [esp + edi*4 + 0x2c]
xor esi, esi
mov dword [esp + 0x20], esi
test ebp, ebp
je 0x4ac7b4
mov ecx, ebp
call fcn.0045ba56
cmp esi, eax
jae 0x4ac7b0
and dword [esp + 0x28], 0
lea eax, [esp + 0x28]
push eax
push esi
mov ecx, ebp
call fcn.0045bcde
cmp dword [esp + 0x28], 0x14
jne 0x4ac7a6
push 5
pop ecx
mov esi, eax
lea edi, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
push ebx
lea ecx, [esp + 0x40]
call fcn.0054bab7
test al, al
jne 0x4ac7a2
push ebx
lea eax, [esp + 0x40]
mov esi, 0x764204
push eax
mov ecx, esi
call fcn.0049aa8d
push eax
call fcn.00492844
test al, al
jne 0x4ac7a2
push ebx
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.0049aa8d
mov ecx, eax
call fcn.00553d66
lea eax, [esp + 0x3c]
mov ecx, esi
push eax
push ebx
call fcn.0049aa8d
mov ecx, eax
call fcn.00553d66
mov esi, dword [esp + 0x20]
inc esi
mov dword [esp + 0x20], esi
jmp 0x4ac71d
mov edi, dword [esp + 0x1c]
inc edi
mov dword [esp + 0x1c], edi
cmp edi, 2
jl 0x4ac70b
cmp byte [0x73fa9b], 0
mov ebp, dword [esp + 0x78]
push 0xffffffffffffffff
pop ebx
je 0x4ac7e0
cmp byte [ebp + 0xd1], 0xc
je 0x4ac7e0
xor eax, eax
inc eax
jmp 0x4ac7e2
xor eax, eax
lea esi, [ebp + 0x600]
mov byte [ebp + 0x708], al
and dword [esi + 0x10], 0
cmp dword [esi + 0x14], 0x10
jb 0x4ac7fc
mov eax, dword [esi]
jmp 0x4ac7fe
mov eax, esi
mov edi, dword [esp + 0x630]
mov ecx, edi
push ebx
push str.url_list
mov byte [eax], 0
call fcn.0045bb6f
mov dword [esp + 0x28], eax
test eax, eax
je 0x4ac93e
and dword [esp + 0x18], 0
lea edi, [esp + 0x214]
mov ecx, 0x3fa
mov dword [esp + 0x10], ecx
mov ecx, eax
call fcn.0045ba56
test eax, eax
je 0x4ac925
mov ecx, dword [esp + 0x18]
push 0
push ecx
mov ecx, dword [esp + 0x30]
call fcn.0045bcde
mov esi, eax
mov dword [esp + 0x24], esi
test esi, esi
je 0x4ac906
push esi
lea ecx, [esp + 0x58]
call fcn.00409ba7
lea eax, [esp + 0x54]
mov dword [esp + 0x61c], 0x16
push eax
lea ecx, [ebp + 0x1d8]
call fcn.00464677
push 0
push 1
lea ecx, [esp + 0x5c]
mov dword [esp + 0x624], ebx
call fcn.0040a0e9
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x4ac906
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4ac8a7
sub esi, edx
lea eax, [esi + 2]
cmp eax, ecx
jb 0x4ac8d0
mov eax, dword [str.__...]
xor ecx, ecx
mov dword [edi], eax
mov ax, word [0x69db28]
mov word [edi + 4], ax
mov dword [esp + 0x10], ecx
jmp 0x4ac906
cmp dword [esp + 0x18], 0
jbe 0x4ac8f2
mov ax, word [0x698638]
mov word [edi], ax
mov al, byte [0x69863a]
mov byte [edi + 2], al
add edi, 2
sub ecx, 2
mov dword [esp + 0x10], ecx
push ecx
push dword [esp + 0x28]
push edi
call fcn.00632650
add esp, 0xc
add edi, esi
sub dword [esp + 0x10], esi
mov ecx, dword [esp + 0x28]
inc dword [esp + 0x18]
call fcn.0045ba56
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jb 0x4ac849
lea esi, [ebp + 0x600]
lea eax, [esp + 0x214]
push eax
call fcn.00409db4
pop ecx
push eax
lea eax, [esp + 0x218]
push eax
jmp 0x4ac994
push 0
push str.url_list
mov ecx, edi
call fcn.0045bcaf
mov edi, eax
test edi, edi
je 0x4ac99b
push edi
lea ecx, [esp + 0x58]
call fcn.00409ba7
lea eax, [esp + 0x54]
mov dword [esp + 0x61c], 0x17
push eax
lea ecx, [ebp + 0x1d8]
call fcn.00464677
push 0
push 1
lea ecx, [esp + 0x5c]
mov dword [esp + 0x624], ebx
call fcn.0040a0e9
push edi
call fcn.00409db4
pop ecx
push eax
push edi
mov ecx, esi
call fcn.00409b2f
mov esi, dword [esp + 0x630]
mov ecx, esi
push ebx
push str.nodes
call fcn.0045bb6f
mov edi, eax
test edi, edi
je 0x4aca7e
and dword [esp + 0x28], 0
mov ecx, edi
call fcn.0045ba56
test eax, eax
je 0x4aca7e
mov ebp, dword [esp + 0x28]
push ebp
mov ecx, edi
call fcn.0045bb8b
mov esi, eax
test esi, esi
je 0x4aca63
mov ecx, esi
call fcn.0045ba56
cmp eax, 2
jne 0x4aca63
push 0
push 0
mov ecx, esi
call fcn.0045bcde
push 0
push 1
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.0045bb4e
mov ecx, eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4aca63
test ecx, ecx
je 0x4aca63
lea ecx, [esp + 0x17]
push ecx
push eax
lea eax, [esp + 0x44]
push eax
call fcn.004c687b
cmp byte [esp + 0x17], 0
je 0x4aca63
mov byte [esp + 0x3b], 1
call fcn.00475044
mov ecx, dword [0x763900]
lea edx, [esp + 0x3c]
push 2
push 0
push edx
mov eax, dword [ecx]
mov dword [esp + 0x628], 0x18
call dword [eax + 0x58]
mov dword [esp + 0x61c], ebx
call fcn.00475085
mov ecx, edi
inc ebp
call fcn.0045ba56
cmp ebp, eax
jne 0x4ac9d1
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x630]
push 0
push str.encoding
mov ecx, esi
call fcn.0045bb2b
mov edi, eax
mov dword [esp + 0x10], edi
test edi, edi
jne 0x4acb0d
push eax
push str.encoding
mov ecx, esi
call fcn.0045bcaf
mov esi, eax
test esi, esi
je 0x4acb06
push str.Windows_
push esi
call fcn.00479db3
test al, al
je 0x4acac6
lea eax, [esi + 8]
push eax
call fcn.00632ccc
pop ecx
mov edi, eax
jmp 0x4acb02
push 0x69dbfc
push esi
call fcn.00479db3
test al, al
je 0x4acada
lea eax, [esi + 2]
jmp 0x4acabb
xor edi, edi
push dword [edi*8 + 0x69db40]
push esi
call fcn.00638078
pop ecx
pop ecx
test eax, eax
je 0x4acafb
inc edi
cmp edi, 0xb
jne 0x4acadc
mov edi, dword [esp + 0x10]
jmp 0x4acb06
mov edi, dword [edi*8 + 0x69db44]
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x630]
push 0
push str.creation_date
mov ecx, esi
call fcn.0045bb2b
cdq
mov ecx, esi
push edi
mov dword [ebp + 0x2f8], eax
lea eax, [esp + 0x58]
push str.comment
push eax
mov dword [ebp + 0x2fc], edx
call fcn.0045bd54
push eax
lea ecx, [ebp + 0x38c]
call fcn.0044dbe6
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0042341c
push edi
push 0x69dc18
lea eax, [esp + 0x5c]
mov ecx, esi
push eax
call fcn.0045bd54
push eax
lea ecx, [ebp + 0x3a4]
call fcn.0044dbe6
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0042341c
push edi
push str.website
lea eax, [esp + 0x5c]
mov ecx, esi
push eax
call fcn.0045bd54
push eax
lea ecx, [ebp + 0x3bc]
call fcn.0044dbe6
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0042341c
push edi
push str.similar_torrents
lea eax, [esp + 0x5c]
mov ecx, esi
push eax
call fcn.0045bd54
push eax
lea ecx, [ebp + 0x3d4]
call fcn.0044dbe6
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0042341c
push edi
push str.created_by
lea eax, [esp + 0x5c]
mov ecx, esi
push eax
call fcn.0045bd54
push eax
lea ecx, [ebp + 0x3ec]
call fcn.0044dbe6
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0042341c
mov ecx, dword [ebp + 0xc8]
mov esi, dword [esp + 0x34]
push esi
push dword [esp + 0x634]
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0xa8]
push eax
push str.althash
mov ecx, esi
call fcn.0045bcaf
test eax, eax
je 0x4acc51
cmp dword [esp + 0xa8], 0x14
jne 0x4acc51
push 5
pop ecx
mov esi, eax
lea edi, [ebp + 8]
rep movsd dword es:[edi], dword [esi]
or byte [ebp + 0x335], 1
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x34]
push 0
push str.piece_length
mov ecx, esi
call fcn.0045bb2b
mov esi, eax
lea ecx, [esi - 0x4000]
cmp ecx, 0x1ffc000
ja 0x4add61
mov dword [ebp + 0xe4], esi
mov esi, dword [esp + 0x34]
mov ecx, esi
push 0
push str.private
call fcn.0045bb2b
test eax, eax
je 0x4acc96
or byte [ebp + 0x13e], 2
xor ecx, ecx
mov dword [esp + 0xa4], 7
xor eax, eax
mov dword [esp + 0xa0], ecx
mov word [esp + 0x90], ax
mov dword [esp + 0x61c], 0x1a
cmp dword [ebp + 0x52c], ecx
je 0x4ace4e
lea eax, [esp + 0x18]
mov dword [esp + 0x18], ecx
push eax
push 0x690ff0
mov ecx, esi
call fcn.0045bcaf
mov esi, eax
test esi, esi
je 0x4ace3c
xor eax, eax
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], eax
mov byte [esp + 0x3c], al
mov ecx, dword [esp + 0x18]
inc ecx
mov byte [esp + 0x61c], 0x1b
shr ecx, 1
push eax
push ecx
lea ecx, [esp + 0x44]
call fcn.0043c60e
cmp dword [esp + 0x50], 0x10
mov eax, dword [esp + 0x3c]
jae 0x4acd25
lea eax, [esp + 0x3c]
push 0
push dword [esp + 0x1c]
push esi
push eax
call fcn.0046c175
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x3c]
lea edx, [edx + 1]
shr edx, 1
cmp dword [esp + 0x50], 0x10
mov dword [esp + 0x18], edx
jae 0x4acd4e
lea esi, [esp + 0x3c]
mov ecx, dword [ebp + 0x52c]
push edx
push esi
push 0
mov eax, dword [ecx]
push 0
call dword [eax + 4]
and dword [esp + 0xbc], 0
xor eax, eax
mov dword [esp + 0xc0], 7
mov word [esp + 0xac], ax
push eax
push dword [esp + 0x1c]
lea ecx, [esp + 0xb4]
mov byte [esp + 0x624], 0x1c
call fcn.0043c638
cmp dword [esp + 0xc0], 8
mov esi, dword [esp + 0xac]
mov byte [esp + 0x17], 0
jae 0x4acdb2
lea esi, [esp + 0xac]
cmp dword [esp + 0x50], 0x10
mov edx, dword [esp + 0x3c]
jae 0x4acdc1
lea edx, [esp + 0x3c]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x17]
push 0
push eax
lea eax, [ecx + 1]
push eax
push esi
push ecx
push edx
call fcn.0045d6cf
cmp byte [esp + 0x17], 0
mov dword [esp + 0x18], eax
jne 0x4ace17
cmp dword [esp + 0xc0], 8
mov ecx, dword [esp + 0xac]
jae 0x4acdfb
lea ecx, [esp + 0xac]
xor edx, edx
push ebx
mov word [ecx + eax*2], dx
lea eax, [esp + 0xb0]
push edx
push eax
lea ecx, [esp + 0x9c]
call fcn.0042358a
push 0
push 1
lea ecx, [esp + 0xb4]
call fcn.0042341c
push 0
push 1
lea ecx, [esp + 0x44]
mov byte [esp + 0x624], 0x1a
call fcn.0040a0e9
cmp dword [esp + 0xa0], 0
mov esi, dword [esp + 0x34]
jne 0x4acf0e
push 0xfde9
push str.name.utf_8
lea eax, [esp + 0x5c]
mov ecx, esi
push eax
call fcn.0045bd54
push eax
lea ecx, [esp + 0x94]
call fcn.0044dbe6
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0042341c
cmp dword [esp + 0xa0], 0
jne 0x4acf0e
push edi
push 0x690ff0
lea eax, [esp + 0x5c]
mov ecx, esi
push eax
call fcn.0045bd54
push eax
lea ecx, [esp + 0x94]
call fcn.0044dbe6
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0042341c
cmp dword [esp + 0xa0], 0
jne 0x4acf0e
cmp dword [esp + 0x634], 0
je 0x4acf07
call fcn.00490095
push eax
push 0xa
lea ecx, [esp + 0x44]
call fcn.0048f892
mov ecx, dword [esp + 0x634]
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x620], 0x1d
call fcn.0048f962
lea ecx, [esp + 0x3c]
mov byte [esp + 0x61c], 0x1a
call fcn.0048f8e2
xor bl, bl
jmp 0x4add4a
push ebx
push str.files
mov ecx, esi
call fcn.0045bb6f
and dword [esp + 0xcc], 0
mov edi, eax
mov dword [esp + 0x24], edi
lea ecx, [esp + 0xc8]
mov byte [esp + 0x61c], 0x1e
mov dword [esp + 0xc8], 0x689888
call fcn.0045ca92
xor esi, esi
mov dword [esp + 0x20], esi
mov byte [esp + 0x61c], 0x20
test edi, edi
jne 0x4ad009
cmp dword [ebp + 0x52c], esi
je 0x4ad113
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x62c]
and dword [esp + 0x62c], esi
push eax
push str.encrypted_files
call fcn.0045bcaf
mov edi, eax
test edi, edi
je 0x4ad113
cmp dword [esp + 0x62c], esi
jbe 0x4ad113
push dword [esp + 0x62c]
call fcn.0045d923
push dword [esp + 0x62c]
mov esi, eax
push edi
push esi
mov dword [esp + 0x2c], esi
call fcn.00631810
mov ecx, dword [ebp + 0x52c]
add esp, 0xc
push dword [esp + 0x62c]
mov eax, dword [ecx]
push esi
push 0
push 0
call dword [eax + 4]
mov eax, dword [esp + 0x62c]
add eax, esi
push eax
lea eax, [esp + 0xcc]
push eax
push esi
call fcn.0045c202
cmp byte [esp + 0xd8], 4
jne 0x4ad113
lea edi, [esp + 0xc8]
mov dword [esp + 0x24], edi
lea eax, [esp + 0x3b]
push eax
lea eax, [esp + 0x3f]
push eax
lea ecx, [esp + 0xe4]
call fcn.00498162
sub esp, 0x18
mov byte [esp + 0x634], 0x21
lea eax, [esp + 0xa8]
mov ecx, esp
push eax
call fcn.00422efb
lea eax, [esp + 0x6c]
push eax
call fcn.00461099
mov ecx, dword [ebp + 0xd8]
push eax
mov byte [esp + 0x620], 0x22
call fcn.004fec7e
push 0
push 1
lea ecx, [esp + 0x5c]
mov byte [esp + 0x624], 0x21
call fcn.0042341c
and dword [esp + 0x18], 0
mov ecx, edi
call fcn.0045ba56
test eax, eax
je 0x4ad33a
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, edi
call fcn.0045ba8e
mov edi, eax
test edi, edi
je 0x4ad921
push 0
push 0
push 0x69dc80
mov ecx, edi
call fcn.0045bac4
push ebx
push str.path.utf_8
mov ecx, edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x74], edx
call fcn.0045bb6f
mov ecx, 0xfde9
test eax, eax
jne 0x4ad0d5
push ebx
push str.path
mov ecx, edi
call fcn.0045bb6f
mov ecx, dword [esp + 0x10]
push ecx
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.0049cf81
cmp dword [esp + 0x64], 0
mov byte [esp + 0x61c], 0x25
je 0x4ad8cd
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0xe4]
call fcn.004b708e
mov eax, dword [esp + 0x28]
jmp 0x4ad19f
mov ecx, dword [esp + 0x34]
push 0
push 0
push 0x69dc80
call fcn.0045bac4
push 0
push edx
push eax
sub esp, 0x18
lea eax, [esp + 0xb4]
mov edi, esp
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00422efb
push edi
call fcn.00461099
mov ecx, dword [ebp + 0xd8]
call fcn.004fc7c6
mov ecx, dword [ebp + 0xd8]
call fcn.004fecf5
jmp 0x4ad34e
push str..alt
call fcn.004236bc
pop ecx
push eax
push str..alt
lea ecx, [esp + 0x5c]
call fcn.004234f9
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0xc8]
push eax
lea ecx, [esp + 0xe4]
call fcn.004b708e
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0xdc]
jne 0x4ad161
movzx eax, byte [0x764b62]
lea ecx, [esp + 0xdc]
push eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.00493372
push 0
push str.attr
mov ecx, edi
call fcn.0045bcaf
xor cl, cl
mov byte [esp + 0x1c], cl
test eax, eax
je 0x4ad1fd
jmp 0x4ad1f7
cmp dl, 0x68
jne 0x4ad1ea
or cl, 2
jmp 0x4ad1f2
cmp dl, 0x70
jne 0x4ad1f6
or cl, 4
mov byte [esp + 0x1c], cl
inc eax
mov dl, byte [eax]
test dl, dl
jne 0x4ad1e0
push dword [esp + 0x1c]
lea eax, [esp + 0x58]
push dword [esp + 0x70]
push dword [esp + 0x34]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00422efb
mov ecx, dword [ebp + 0xd8]
call fcn.004fc7c6
mov ecx, dword [ebp + 0xd8]
imul edi, eax, 0x9c
add edi, dword [ecx + 4]
cmp dword [edi + 0x5c], 0
lea eax, [edi + 0x34]
je 0x4ad23e
lea eax, [edi + 0x4c]
cmp dword [eax + 0x14], 8
jb 0x4ad246
mov eax, dword [eax]
push eax
call fcn.0045dccf
cmp byte [ebp + 0xd0], 0
mov dword [esp + 0x2c], eax
jne 0x4ad30a
mov ecx, dword [edi + 8]
or ecx, dword [edi + 0xc]
je 0x4ad30a
push eax
call fcn.00467f6d
test al, al
je 0x4ad30a
mov ecx, dword [ebp + 0xcc]
mov eax, dword [ecx]
call dword [eax + 0x3c]
test al, al
je 0x4ad30a
mov ecx, dword [ebp + 0xcc]
push 1
mov eax, dword [ecx]
call dword [eax + 0xc0]
mov ecx, dword [ebp + 0xcc]
push 1
mov eax, dword [ecx]
call dword [eax + 0xbc]
mov ecx, edi
call fcn.004b22a2
mov eax, dword [esp + 0x2c]
mov byte [edi + 0x90], 1
test eax, eax
je 0x4ad30a
push 0x69dca8
push eax
call fcn.0045f39d
test eax, eax
jne 0x4ad30a
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
shrd edx, eax, 0xa
shr eax, 0xa
test eax, eax
ja 0x4ad2f1
jb 0x4ad2ea
cmp edx, 0x20000
jae 0x4ad2f1
mov edx, 0x20000
xor eax, eax
push dword [edi + 0xc]
mov ecx, dword [edi + 0x94]
push dword [edi + 8]
push eax
push edx
call fcn.00497911
mov dword [ecx + 0x60], eax
mov dword [ecx + 0x64], edx
push 0
push 1
lea ecx, [esp + 0x5c]
mov byte [esp + 0x624], 0x21
call fcn.0042341c
mov edi, dword [esp + 0x24]
mov ecx, edi
inc dword [esp + 0x18]
call fcn.0045ba56
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jne 0x4ad084
lea ecx, [esp + 0xdc]
mov byte [esp + 0x61c], 0x20
call fcn.004999b8
xor eax, eax
lea ecx, [esp + 0x7c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
call fcn.0048de1c
mov ecx, dword [esp + 0x34]
push ebx
push str.profiles
mov byte [esp + 0x624], 0x28
call fcn.0045bb6f
mov edi, eax
test edi, edi
jne 0x4ad3b2
mov ecx, dword [esp + 0x630]
push ebx
push str.profiles
call fcn.0045bb6f
mov edi, eax
test edi, edi
je 0x4ad49c
and dword [esp + 0x2c], 0
mov ecx, edi
call fcn.0045ba56
test eax, eax
je 0x4ad49c
mov esi, dword [esp + 0x2c]
push 0x30
lea eax, [esp + 0xe0]
push 0
push eax
call fcn.00635a30
add esp, 0xc
mov ecx, edi
push esi
call fcn.0045ba8e
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4ad474
push 0
push str.width
mov ecx, eax
call fcn.0045bb2b
mov ecx, dword [esp + 0x1c]
push 0
push str.height
mov dword [esp + 0xe4], eax
call fcn.0045bb2b
mov ecx, dword [esp + 0x1c]
push 0x13
push 0
push str.vcodec
mov dword [esp + 0xec], eax
call fcn.0045bcaf
push eax
lea eax, [esp + 0xec]
push eax
call fcn.00632650
mov ecx, dword [esp + 0x28]
add esp, 0xc
push 0x13
push 0
push str.acodec
call fcn.0045bcaf
push eax
lea eax, [esp + 0x100]
push eax
call fcn.00632650
add esp, 0xc
mov byte [esp + 0xf7], 0
mov byte [esp + 0x10b], 0
lea eax, [esp + 0xdc]
push eax
lea ecx, [esp + 0x80]
call fcn.004b731a
mov ecx, edi
inc esi
call fcn.0045ba56
cmp esi, eax
jb 0x4ad3ca
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x34]
mov ecx, edi
push ebx
push str.file_media
call fcn.0045bb6f
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4ad4cb
mov ecx, dword [esp + 0x630]
push ebx
push str.file_media
call fcn.0045bb6f
mov dword [esp + 0x10], eax
push ebx
push str.file_duration
mov ecx, edi
call fcn.0045bb6f
mov edi, eax
mov dword [esp + 0x24], edi
test edi, edi
jne 0x4ad4fa
mov ecx, dword [esp + 0x630]
push ebx
push str.file_duration
call fcn.0045bb6f
mov edi, eax
mov dword [esp + 0x24], eax
cmp dword [esp + 0x10], 0
mov dword [esp + 0x1c], 0x9c
je 0x4ad6f5
test edi, edi
je 0x4ad6f5
mov eax, dword [ebp + 0xd8]
xor ebx, ebx
add eax, 4
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
cdq
idiv dword [esp + 0x1c]
test eax, eax
je 0x4ad6f5
mov ebp, dword [esp + 0x2c]
xor eax, eax
mov esi, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov eax, dword [eax + ecx + 8]
or eax, dword [edx + ecx + 0xc]
je 0x4ad6c7
mov ecx, esi
call fcn.0045ba56
cmp ebx, eax
jae 0x4ad6ed
mov ecx, edi
call fcn.0045ba56
cmp ebx, eax
jae 0x4ad6ed
push 0
push ebx
mov ecx, edi
call fcn.0045bb4e
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x4ad6c7
push 0
push ebx
mov ecx, esi
call fcn.0045bb4e
mov dword [esp + 0x10], eax
test eax, eax
js 0x4ad6c7
cmp eax, dword [esp + 0x8c]
jae 0x4ad6c7
push eax
lea ecx, [esp + 0x80]
call fcn.004f47a5
cmp dword [eax], 0
je 0x4ad6c7
push dword [esp + 0x10]
lea ecx, [esp + 0x80]
call fcn.004f47a5
cmp dword [eax + 4], 0
je 0x4ad6c7
mov ecx, dword [ebp]
mov ebx, dword [esp + 0x18]
add ecx, ebx
call fcn.004b22a2
mov eax, dword [ebp]
lea ecx, [esp + 0x7c]
mov edi, dword [eax + ebx + 0x94]
mov ebx, dword [esp + 0x10]
push ebx
call fcn.004f47a5
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x7c]
push ebx
mov eax, dword [eax]
mov dword [edi + 0x18], eax
mov eax, dword [ebp]
mov edi, dword [eax + edx + 0x94]
call fcn.004f47a5
push dword [esp + 0x10]
lea ecx, [esp + 0x80]
mov eax, dword [eax + 4]
mov dword [edi + 0x1c], eax
mov eax, dword [ebp]
add eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0x94]
call fcn.004f47a5
lea edi, [eax + 0x1c]
push edi
call fcn.00409db4
pop ecx
push eax
push edi
lea ecx, [ebx + 0x2c]
call fcn.00409b2f
mov eax, dword [ebp]
lea ecx, [esp + 0x7c]
add eax, dword [esp + 0x18]
push dword [esp + 0x10]
mov ebx, dword [eax + 0x94]
call fcn.004f47a5
lea edi, [eax + 8]
push edi
call fcn.00409db4
pop ecx
push eax
push edi
lea ecx, [ebx + 0x44]
call fcn.00409b2f
mov ebx, dword [esp + 0x18]
mov eax, dword [ebp]
mov edx, dword [esp + 0x2c]
mov eax, dword [ebx + eax + 0x94]
mov dword [eax + 0x14], edx
mov eax, edx
mov ecx, dword [ebp]
cdq
push edx
push eax
push dword [ebx + ecx + 0xc]
mov edi, dword [ebx + ecx + 0x94]
push dword [ebx + ecx + 8]
call fcn.00401030
mov ebx, dword [esp + 0x28]
mov dword [edi + 0xc], eax
mov edi, dword [esp + 0x24]
mov eax, dword [ebp + 4]
inc ebx
mov ecx, dword [ebp]
sub eax, ecx
cdq
idiv dword [esp + 0x1c]
add dword [esp + 0x18], 0x9c
cmp ebx, eax
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x18]
jb 0x4ad54a
mov esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x78]
lea ecx, [esp + 0x7c]
call fcn.0041fd99
mov edi, dword [ebp + 0xd8]
mov ebx, 0x9c
add edi, 4
and dword [esp + 0x2c], 0
mov dword [esp + 0x6c], edi
mov eax, dword [edi + 4]
mov ecx, dword [edi]
sub eax, ecx
cdq
idiv ebx
test eax, eax
je 0x4ad86f
mov esi, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 0x24], ebx
add ebx, ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
je 0x4ad848
mov ecx, dword [ebp + 0xc8]
test ecx, ecx
je 0x4ad794
mov eax, dword [ecx]
push esi
call dword [eax + 0x20]
test eax, eax
je 0x4ad794
mov ecx, dword [ebp + 0xcc]
mov eax, dword [ecx]
call dword [eax + 0x3c]
test al, al
jne 0x4ad794
mov ecx, dword [ebp + 0xc8]
mov edi, dword [ebp + 0xcc]
push esi
mov eax, dword [ecx]
mov ebx, dword [edi]
call dword [eax + 0x20]
push eax
call fcn.00467f34
movzx eax, al
mov ecx, edi
push eax
call dword [ebx + 0xc0]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x6c]
cmp dword [ebx + 0x5c], 0
lea eax, [ebx + 0x34]
je 0x4ad7a0
lea eax, [ebx + 0x4c]
cmp dword [eax + 0x14], 8
jb 0x4ad7a8
mov eax, dword [eax]
push eax
call fcn.0045dccf
cmp byte [ebp + 0xd0], 0
mov dword [esp + 0x2c], eax
jne 0x4ad848
push eax
call fcn.00467f6d
test al, al
jne 0x4ad7d9
mov eax, dword [ebx + 0x94]
test eax, eax
je 0x4ad848
cmp dword [eax + 0xc], 0
je 0x4ad848
mov ecx, dword [ebp + 0xcc]
mov eax, dword [ecx]
call dword [eax + 0x3c]
test al, al
je 0x4ad848
mov eax, dword [esp + 0x2c]
mov byte [ebx + 0x90], 1
test eax, eax
je 0x4ad848
push 0x69dca8
push eax
call fcn.0045f39d
test eax, eax
jne 0x4ad848
mov ecx, ebx
call fcn.004b22a2
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
shrd edx, eax, 0xa
shr eax, 0xa
test eax, eax
ja 0x4ad82f
jb 0x4ad828
cmp edx, 0x20000
jae 0x4ad82f
mov edx, 0x20000
xor eax, eax
push dword [ebx + 0xc]
mov ecx, dword [ebx + 0x94]
push dword [ebx + 8]
push eax
push edx
call fcn.00497911
mov dword [ecx + 0x60], eax
mov dword [ecx + 0x64], edx
mov eax, dword [edi + 4]
inc esi
mov ecx, dword [edi]
sub eax, ecx
cdq
idiv dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
add ebx, 0x9c
mov dword [esp + 0x24], ebx
cmp esi, eax
jb 0x4ad731
mov esi, dword [esp + 0x20]
mov eax, dword [ebp + 0xd8]
mov ebx, dword [eax + 0x24]
mov edi, dword [eax + 0x20]
cmp ebx, 0x1000
jb 0x4ad979
ja 0x4ad891
test edi, edi
jb 0x4ad979
cmp dword [esp + 0x634], 0
je 0x4ada7f
call fcn.00490095
push eax
push 0xd
lea ecx, [esp + 0x44]
call fcn.0048f892
push ebx
push edi
push str.size
lea ecx, [esp + 0x48]
mov byte [esp + 0x628], 0x29
call fcn.00496591
jmp 0x4ada5d
cmp dword [esp + 0x634], 0
je 0x4ad912
call fcn.00490095
push eax
push 0xc
lea ecx, [esp + 0x44]
call fcn.0048f892
mov ecx, dword [esp + 0x634]
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x620], 0x26
call fcn.0048f962
lea ecx, [esp + 0x3c]
mov byte [esp + 0x61c], 0x25
call fcn.0048f8e2
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0042341c
jmp 0x4ad966
cmp dword [esp + 0x634], 0
je 0x4ad966
call fcn.00490095
push eax
push 0xb
lea ecx, [esp + 0x44]
call fcn.0048f892
mov ecx, dword [esp + 0x634]
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x620], 0x23
call fcn.0048f962
lea ecx, [esp + 0x3c]
mov byte [esp + 0x61c], 0x21
call fcn.0048f8e2
lea ecx, [esp + 0xdc]
call fcn.004999b8
xor bl, bl
jmp 0x4add0c
mov edx, dword [ebp + 0xe4]
xor eax, eax
push 0
push edx
lea ecx, [edx - 1]
add ecx, edi
adc eax, ebx
push eax
push ecx
call fcn.00401030
mov dword [ebp + 0xe8], eax
test eax, eax
jne 0x4ad9c7
cmp dword [esp + 0x634], eax
je 0x4ada7f
call fcn.00490095
push eax
push 0xe
lea ecx, [esp + 0x44]
call fcn.0048f892
mov byte [esp + 0x61c], 0x2b
jmp 0x4ada5d
cmp eax, 0x100000
jb 0x4ada0b
cmp dword [esp + 0x634], 0
je 0x4ada7f
call fcn.00490095
push eax
push 0xf
lea ecx, [esp + 0x44]
call fcn.0048f892
push dword [ebp + 0xe8]
lea ecx, [esp + 0x40]
mov byte [esp + 0x620], 0x2d
push 0x69dcf8
call fcn.004626fb
jmp 0x4ada5d
push dword [ebp + 0xe4]
mov ecx, dword [ebp + 0xd8]
push eax
call fcn.004febe5
imul eax, dword [ebp + 0xe8], 0x14
mov ecx, dword [esp + 0x34]
push eax
push 0x69dcfc
call fcn.0045bc70
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x4ada86
cmp dword [esp + 0x634], eax
je 0x4ada7f
call fcn.00490095
push eax
push 0x10
lea ecx, [esp + 0x44]
call fcn.0048f892
mov byte [esp + 0x61c], 0x2f
mov ecx, dword [esp + 0x634]
lea eax, [esp + 0x3c]
push eax
call fcn.0048f962
lea ecx, [esp + 0x3c]
mov byte [esp + 0x61c], 0x28
call fcn.0048f8e2
xor bl, bl
jmp 0x4adcf1
mov eax, dword [ebp + 0xe8]
xor ecx, ecx
push 0x14
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0061c0ee
xor ebx, ebx
mov dword [ebp + 0xf8], eax
pop ecx
cmp dword [ebp + 0xe8], ebx
jbe 0x4adad8
mov esi, dword [esp + 0x2c]
xor edi, edi
mov ecx, dword [ebp + 0xf8]
lea eax, [edi + esi]
push eax
add ecx, edi
call fcn.0049a9f6
inc ebx
add edi, 0x14
cmp ebx, dword [ebp + 0xe8]
jb 0x4adab7
mov esi, dword [esp + 0x20]
push 1
push dword [ebp + 0xfc]
call fcn.0045d916
push 1
push dword [ebp + 0x10c]
call fcn.0045d916
push 1
push dword [ebp + 0x110]
call fcn.0045d916
xor eax, eax
mov ecx, ebp
mov dword [ebp + 0xfc], eax
mov dword [ebp + 0x10c], eax
mov dword [ebp + 0x110], eax
call fcn.0049bf1d
mov ecx, dword [esp + 0x34]
or edi, 0xffffffff
push edi
push str.source
call fcn.0045ba72
mov ebx, eax
test ebx, ebx
jne 0x4adb4a
mov ecx, dword [esp + 0x630]
push edi
push str.source
call fcn.0045ba72
mov ebx, eax
test ebx, ebx
je 0x4adb83
push 0x14
call fcn.00630af1
pop ecx
mov dword [esp + 0x2c], eax
mov byte [esp + 0x61c], 0x31
test eax, eax
je 0x4adb6b
mov ecx, eax
call fcn.00424b8a
jmp 0x4adb6d
xor eax, eax
push ebx
mov ecx, eax
mov byte [esp + 0x620], 0x28
mov dword [ebp + 0x6bc], eax
call fcn.0045b37e
lea eax, [ebp + 0x48c]
cmp dword [eax + 0x14], 8
jb 0x4adb91
mov eax, dword [eax]
test eax, eax
jne 0x4adc61
mov ecx, dword [ebp + 0x6bc]
test ecx, ecx
je 0x4adc61
push 0x694ac0
lea eax, [esp + 0x58]
push eax
call fcn.0045bbbd
lea ebx, [ebp + 0x4bc]
push eax
mov ecx, ebx
call fcn.00409822
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0040a0e9
mov ecx, dword [ebp + 0x6bc]
lea eax, [esp + 0x3c]
push 0
push 0x689db4
push eax
call fcn.0045bd54
push eax
lea ecx, [ebp + 0x4a4]
call fcn.0044dbe6
push 0
push 1
lea ecx, [esp + 0x44]
call fcn.0042341c
cmp dword [ebx + 0x14], 0x10
jb 0x4adc09
mov ebx, dword [ebx]
lea eax, [esp + 0x2c]
mov ecx, 0x764364
push eax
call fcn.00425373
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x24]
push ebx
push eax
call fcn.00485ef9
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x61c], 0x32
test ecx, ecx
je 0x4adc50
sub esp, 0x18
lea eax, [ecx + 0x1c]
mov ecx, esp
push eax
call fcn.00422efb
mov ecx, ebp
call fcn.004b1944
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x61c], 0x28
test ecx, ecx
je 0x4adc61
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 0x80
mov ecx, ebp
or ax, word [ebp + 0x128]
movzx eax, ax
push eax
call fcn.004b249a
mov ecx, dword [ebp + 0xcc]
push edi
mov eax, dword [ecx]
call dword [eax + 0xac]
mov edx, dword [ebp + 0xd8]
mov al, byte [edx + 0x89]
test al, al
jne 0x4adc9b
push 0
jmp 0x4adce1
mov eax, dword [edx + 4]
xor ecx, ecx
mov dword [esp + 0x2c], eax
mov ebx, edi
mov eax, dword [edx + 8]
sub eax, dword [edx + 4]
cdq
idiv dword [esp + 0x1c]
mov dword [esp + 0x6c], eax
test eax, eax
je 0x4adce0
mov eax, dword [esp + 0x2c]
xor edx, edx
cmp byte [eax + edx + 0x90], 0
je 0x4adccf
cmp ebx, edi
jne 0x4adcde
mov ebx, ecx
inc ecx
add edx, 0x9c
cmp ecx, dword [esp + 0x6c]
jb 0x4adcbf
jmp 0x4adce0
mov ebx, edi
push ebx
mov ecx, dword [ebp + 0xcc]
mov eax, dword [ecx]
call dword [eax + 0xac]
mov bl, 1
lea ecx, [esp + 0x7c]
call fcn.0041fd99
push dword [esp + 0x7c]
call fcn.0040a313
and dword [esp + 0x80], 0
pop ecx
mov byte [esp + 0x61c], 0x1f
test esi, esi
je 0x4add20
push 1
push esi
call fcn.0045d916
mov dword [esp + 0xc8], 0x689888
lea ecx, [esp + 0xc8]
mov byte [esp + 0x61c], 0x33
call fcn.0045b86a
mov dword [esp + 0xc8], 0x68987c
push 0
push 1
lea ecx, [esp + 0x98]
call fcn.0042341c
mov al, bl
jmp 0x4addfb
cmp dword [esp + 0x634], 0
je 0x4addf9
call fcn.00490095
push eax
push 9
lea ecx, [esp + 0x44]
call fcn.0048f892
push 0
push esi
push str.size
lea ecx, [esp + 0x48]
mov dword [esp + 0x628], 0x19
call fcn.00496591
mov ecx, dword [esp + 0x634]
lea eax, [esp + 0x3c]
push eax
call fcn.0048f962
mov dword [esp + 0x61c], ebx
jmp 0x4addf0
cmp dword [esp + 0x634], ebx
je 0x4addf9
call fcn.00490095
push eax
push 7
lea ecx, [esp + 0x44]
call fcn.0048f892
mov ecx, dword [esp + 0x634]
lea eax, [esp + 0x3c]
push eax
mov dword [esp + 0x620], ebx
call fcn.0048f962
or dword [esp + 0x61c], 0xffffffff
lea ecx, [esp + 0x3c]
call fcn.0048f8e2
xor al, al
mov ecx, dword [esp + 0x614]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
leave
ret 0x10