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

Disassembly:
push ebp
push edi
push esi
mov esi, ecx
xor ecx, ecx
push ebx
sub esp, 0x14c
mov ebx, dword [eax + 8]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x168]
mov dword [esp], eax
mov eax, dword [eax]
mov word [esp + 0x6a], dx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + eax + 0xb8], ecx
add eax, 4
cmp eax, 0x1c
jb 0x7c7170
mov eax, dword [esp + 0x160]
test eax, eax
je 0x7c71a8
mov eax, dword [esp + 0x160]
cmp dword [eax], 0x40
mov eax, 0
cmovl eax, dword [esp + 0x160]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x160]
and dh, 0xfe
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x50]
test byte [eax + 0x4c], 0x10
mov eax, dword [esp + 0x20]
cmove dx, word [esp + 0x6a]
mov eax, dword [eax]
mov word [esp + 0x6a], dx
mov dword [esp + 0x54], eax
cmp eax, 0x40
jg 0x7ca4d5
movzx eax, word [esp + 0x6a]
and ax, 0x20
mov word [esp + 0x6c], ax
jne 0x7c84e0
mov eax, dword [esp + 0x54]
xor ecx, ecx
lea ebx, [eax - 1]
imul ebx, ebx, 0x58
add ebx, 0x348
lea edx, [ebx + 0x48]
mov edi, dword [esp + 0x50]
mov eax, edi
call fcn.00769310
cmp byte [edi + 0x51], 0
mov dword [esp + 4], eax
mov edx, dword [esp + 4]
jne 0x7c86b0
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x54]
mov dword [edx + 0x10], esi
sub esp, 4
mov ecx, dword [esp + 4]
mov dword [edx + 0x18], 0xffffffff
mov dword [edx + 4], edi
mov eax, ebp
mov edi, dword [esp + 0x164]
mov byte [edx + 0x2c], al
mov dword [edx + 0x14], 0xffffffff
mov eax, dword [ecx + 0x38]
mov dword [edx + 8], edi
mov edi, dword [esp + 0x168]
mov dword [esp + 0xc], eax
sub eax, 1
mov dword [edx], ecx
mov dword [edx + 0xc], edi
lea edi, [edx + 0x31]
mov dword [ecx + 0x38], eax
and edi, 0xfffffffc
mov dword [edx + 0x1c], eax
mov dword [edx + 0x20], eax
movzx eax, word [esp + 0x6e]
mov word [edx + 0x28], ax
movzx eax, word [esp + 0x170]
mov word [edx + 0x2a], ax
mov eax, dword [ecx + 0x84]
lea ecx, [edx + 0x2d]
sub ecx, edi
mov dword [edx + 0x2d], 0
add ecx, 0x23
mov dword [edx + 0x24], eax
xor eax, eax
shr ecx, 2
mov dword [edx + 0x4c], 0
rep stosd dword es:[edi], eax
imul eax, ebp, 0x58
mov edi, edx
lea edx, [edx + 0x2f0]
mov dword [esp + 0x78], edx
add ebx, edi
mov dword [esp + 0x74], edx
add eax, 0x48
push eax
push 0
push edx
call sub.msvcrt.dll_memset
lea eax, [edi + 0x50]
mov ecx, 0x2c
mov edx, esi
mov dword [esp + 0x48], eax
mov dword [esp + 0xcc], eax
lea eax, [ebx + 0x38]
mov dword [ebx + 0x30], eax
xor eax, eax
mov word [ebx + 0x28], ax
mov eax, 3
mov word [ebx + 0x2c], ax
lea eax, [edi + 0x68]
mov dword [ebx + 0x24], 0
mov dword [edi + 0x64], eax
mov eax, dword [esp + 0x48]
mov dword [edi + 0x1ec], 0
mov dword [edi + 0x50], edi
mov byte [edi + 0x59], 0
mov dword [edi + 0x54], 0
mov dword [edi + 0x5c], 0
mov dword [edi + 0x60], 8
mov dword [esp + 0xc8], edi
mov dword [esp + 0xd4], ebx
call fcn.00777290
add esp, 0x10
test ebp, ebp
jne 0x7c8510
mov ebx, dword [esp + 0x160]
test ebx, ebx
je 0x7c736e
mov eax, dword [esp + 0x160]
mov eax, dword [eax]
mov byte [edi + 0x2d], al
test word [esp + 0x6a], 0x100
jne 0x7c8705
sub esp, 4
push str.SCAN_CONSTANT_ROW
push 0
push dword [esp + 0xc]
call fcn.0079b910
add esp, 0x10
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5c]
mov ebx, eax
mov dword [esp + 8], eax
sub ebx, 1
js 0x7c73c3
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x20]
lea esi, [esi]
nop
mov ecx, ebx
mov edx, esi
mov eax, edi
sub ebx, 1
call fcn.007c3eb0
cmp ebx, 0xffffffff
jne 0x7c73b0
mov eax, dword [esp + 0x50]
movzx ebp, byte [eax + 0x51]
mov eax, ebp
test al, al
jne 0x7c84ae
mov eax, dword [esp + 0xbc]
xor edi, edi
xor esi, esi
mov edx, dword [eax + 0xc]
test edx, edx
jle 0x7c747f
lea esi, [esi]
nop
lea ebx, [edi + edi*2]
shl ebx, 4
add ebx, dword [eax + 0x14]
test byte [ebx + 0xa], 2
jne 0x7c7473
mov edx, dword [ebx + 0x2c]
or edx, dword [ebx + 0x28]
jne 0x7c7473
mov eax, dword [esp + 0x54]
mov edx, dword [ebx]
test eax, eax
je 0x7c82e6
xor eax, eax
mov dword [esp + eax + 0x10c], esi
add eax, 4
cmp eax, 0x1c
jb 0x7c7417
mov dword [esp + 0x110], 0x76f810
mov eax, 1
mov word [esp + 0x120], ax
mov dword [esp + 0x114], 0x762440
test edx, edx
je 0x7c82e4
lea eax, [esp + 0x10c]
call fcn.0076d540
mov eax, dword [esp + 0xbc]
cmp word [esp + 0x120], 0
jne 0x7c82e4
add edi, 1
cmp dword [eax + 0xc], edi
jg 0x7c73f0
movzx eax, word [esp + 0x6a]
and ax, 0x100
mov word [esp + 0x78], ax
jne 0x7c9e10
mov eax, dword [esp + 0xb8]
cmp dword [esp + 0x54], 1
mov dword [esp + 8], eax
mov edi, dword [eax + 4]
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x14], eax
je 0x7c9d20
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x14]
mov ecx, 3
movzx eax, byte [esi + 0x2c]
lea eax, [eax + eax*8]
lea edx, [edi + eax*8 + 8]
mov eax, dword [esi]
mov dword [esp + 0x48], edx
mov eax, dword [eax]
mov word [ebx + 0x2c], cx
mov dword [ebx + 0x24], 0
mov dword [esp + 0x60], eax
lea eax, [ebx + 0x38]
mov dword [ebx + 0x30], eax
xor eax, eax
mov word [ebx + 0x28], ax
lea eax, [edi + 8]
mov dword [esp + 0xd0], 0x4e20
cmp edx, eax
jbe 0x7c7629
mov dword [esp + 0x18], 0
mov edx, ebp
lea ebx, [edi + 0x50]
mov eax, 0x4e20
mov dword [esp + 0x24], 0
mov ebp, esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
lea esi, [esi]
mov edi, dword [esp + 0x14]
movzx ecx, byte [esp + 0x3c]
add eax, 0x3e8
mov byte [edi + 0x10], cl
mov dword [esp + 0xd0], eax
mov eax, dword [ebp + 0x1ec]
mov esi, dword [ebx - 0x1c]
test eax, eax
jle 0x7c7589
cmp esi, dword [ebp + 0x1f0]
je 0x7c86e0
xor ecx, ecx
jmp 0x7c7582
cmp esi, dword [ebp + ecx*4 + 0x1f0]
je 0x7c8360
add ecx, 1
cmp ecx, eax
jne 0x7c7575
xor esi, esi
xor edi, edi
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0xc], edi
mov edi, dword [esp + 0x18]
mov dword [ecx + 8], esi
movzx ecx, byte [ebx - 0x24]
or edx, ecx
mov byte [esp + 0x40], cl
and edx, 0xa
mov edx, dword [ebx - 0x38]
cmovne edi, dword [esp + 0x28]
mov edx, dword [edx + 0x38]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x24]
cmovne edi, dword [esp + 0x30]
mov dword [esp + 0x24], edi
test edx, edx
jne 0x7c8380
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0xb8]
call fcn.00798ee0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
test eax, eax
jne 0x7c8310
mov eax, dword [esp + 0xbc]
cmp byte [eax + 9], 0
jne 0x7c8460
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
or dword [esp + 0x28], esi
or dword [esp + 0x30], eax
mov eax, dword [esp + 0x60]
cmp byte [eax + 0x51], 0
je 0x7c833d
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x60]
call fcn.0076f7d0
mov ebx, dword [esp + 4]
xor edx, edx
mov eax, ebx
call fcn.0079a730
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x51], 0
jne 0x7c84ae
mov eax, dword [ebx + 8]
test eax, eax
je 0x7c8712
mov eax, dword [esp + 4]
movzx ebx, word [eax + 0x34]
lea edx, [ebx + 1]
mov word [esp + 8], bx
movsx edx, dx
call fcn.0079a730
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x51], 0
jne 0x7c84ae
mov eax, dword [esp + 4]
mov ebp, dword [eax + 8]
test ebp, ebp
je 0x7c8712
mov eax, dword [esp]
mov edi, dword [eax + 0x24]
test edi, edi
jne 0x7c84ae
mov ebx, dword [esp + 0x50]
movzx eax, byte [ebx + 0x51]
mov byte [esp + 0x28], al
test al, al
jne 0x7c84ae
mov eax, dword [esp + 4]
cmp byte [eax + 0x2c], 1
jbe 0x7ca2d3
mov esi, dword [esp + 0x164]
test esi, esi
je 0x7ca2d3
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x1c], 0xffffffff
test byte [ebx + 0x4d], 1
je 0x7cb41c
mov ebx, dword [esp + 4]
mov eax, dword [ebx]
movsx edx, word [ebx + 0x34]
add dword [eax + 0x84], edx
test byte [esp + 0x6a], 4
je 0x7c7730
mov edx, dword [ebx + 0x338]
mov eax, dword [edx + 0x24]
test ah, 0x10
je 0x7caf29
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx + 0x18]
mov ebx, 1
mov esi, dword [esp + 4]
mov byte [esi + 0x2e], bl
test byte [ecx + 0x24], 0x80
je 0x7caffb
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x7cb63e
imul eax, eax, 0x58
mov ebx, dword [esp + 4]
lea eax, [ebx + eax + 0x2f0]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x24], eax
movzx edi, byte [ebx + 0x34]
mov esi, dword [esp + 0x20]
lea eax, [edi + edi*8]
mov esi, dword [esi + eax*8 + 0x18]
mov edx, dword [esi + 0x48]
test edx, edx
je 0x7cb6ac
mov eax, dword [esp + 0x50]
call fcn.0076ee70
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [eax + 0x24]
test byte [esi + 0x24], 2
jne 0x7c7794
mov edx, dword [esi + 0xc]
test edx, edx
je 0x7c9a80
test ah, 2
je 0x7c7840
mov eax, dword [esp + 0x14]
mov ebp, dword [eax + 0x20]
test byte [esi + 0x24], 0x80
je 0x7c77c1
movzx eax, byte [ebp + 0x38]
and eax, 3
cmp al, 2
jne 0x7c77c1
cmp word [esp + 0x6c], 0
jne 0x7ca650
mov eax, dword [esp + 4]
cmp byte [eax + 0x2e], 0
jne 0x7c9bb2
cmp word [esp + 0x6c], 0
je 0x7c77e6
mov edi, dword [esp + 0x16c]
test edi, edi
jne 0x7ca142
mov edi, dword [esp]
mov edx, 0x60
mov ecx, dword [edi + 0x28]
lea eax, [ecx + 1]
mov dword [edi + 0x28], eax
mov dword [ebx + 8], ecx
sub esp, 8
push dword [esp + 0x10]
push dword [ebp + 0x2c]
mov esi, dword [esp + 0x20]
mov eax, esi
call fcn.00782fd0
mov eax, dword [esp + 0x10]
mov edx, ebp
call fcn.00792d30
mov eax, dword [esp + 0x24]
add esp, 0x10
mov eax, dword [eax + 0x24]
test al, 0xf
je 0x7c7840
test eax, 0x88002
jne 0x7c7840
mov eax, dword [esp + 4]
test byte [eax + 0x28], 1
je 0x7cafc4
lea esi, [esi]
mov eax, dword [esp + 8]
test eax, eax
js 0x7c7852
mov edx, eax
mov eax, dword [esp]
call fcn.007b4200
add ebx, 0x58
cmp ebx, dword [esp + 0x24]
jne 0x7c7752
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 4]
mov eax, dword [eax + 0x6c]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x51], 0
jne 0x7c84ae
mov dword [esp + 0x3c], 0
mov ebp, dword [esp + 0x74]
lea esi, [esi]
nop
mov eax, dword [ebp + 0x48]
test byte [eax + 0x25], 0x40
jne 0x7c8770
mov edi, dword [esp]
mov eax, dword [edi + 0x74]
test eax, eax
cmove eax, edi
cmp byte [eax + 0xc7], 2
jne 0x7c78cc
sub esp, 0xc
mov ecx, ebp
movzx eax, word [esp + 0x76]
push eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
call fcn.0079ce50
add esp, 0x10
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 4]
mov eax, dword [eax + 0x6c]
mov ebx, dword [edi + 4]
mov dword [ebp + 0x20], eax
mov eax, dword [esp]
mov dword [esp + 0x24], ebx
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x14], eax
movzx eax, byte [ebp + 0x34]
mov dword [esp + 0x40], eax
lea eax, [eax + eax*8]
mov esi, dword [ebx + eax*8 + 0x34]
mov eax, dword [edi + 0x1ec]
mov dword [esp + 0x48], esi
test eax, eax
jle 0x7c7936
mov ebx, edi
cmp esi, dword [edi + 0x1f0]
je 0x7ca300
xor ecx, ecx
mov edx, esi
jmp 0x7c792f
cmp edx, dword [ebx + ecx*4 + 0x1f0]
je 0x7c8740
add ecx, 1
cmp ecx, eax
jne 0x7c7922
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov edx, esi
mov eax, edi
mov dword [ebp + 0x54], eax
mov eax, dword [esp + 4]
mov dword [ebp + 0x50], edx
mov edx, dword [eax + 0x4c]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x28], eax
mov eax, dword [esp]
mov dword [esp + 0x2c], edx
mov edi, dword [eax + 0x38]
lea ebx, [edi - 1]
mov dword [eax + 0x38], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0xc], ebx
mov edi, dword [eax + 0x38]
sub edi, 1
mov dword [eax + 0x38], edi
cmp byte [ebp + 0x34], 0
mov dword [esp + 8], edi
mov dword [ebp + 0x18], edi
je 0x7c7998
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
lea eax, [eax + eax*8]
test byte [esi + eax*8 + 0x2c], 8
jne 0x7c9680
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x7c96c0
mov esi, dword [ebp]
test esi, esi
jne 0x7ca2f0
lea edx, [ebp - 0x2f0]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
jmp 0x7c79cd
sub edx, 0x58
mov ecx, dword [edx + 0x2f0]
test ecx, ecx
jne 0x7c79d2
sub eax, 1
jne 0x7c79c0
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x40]
lea edx, [edi + edi*8]
mov edi, dword [esp + 0x24]
lea edi, [edi + edx*8]
movzx edx, byte [edi + 0x30]
mov ecx, edx
and ecx, 0x10
mov byte [esp + 0x74], cl
jne 0x7c8f20
movzx ecx, byte [esp + 0x3c]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
je 0x7c7a16
mov esi, edi
xor edi, edi
mov ecx, esi
mov dword [esp + 0x60], esi
and ecx, 1
mov dword [esp + 0x64], edi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x24]
test ch, 4
jne 0x7c9360
test ch, 1
je 0x7c7a45
test cl, 5
jne 0x7ca060
imul eax, eax, 0x58
mov esi, dword [esp + 4]
mov eax, dword [esi + eax + 0x2fc]
mov dword [esp + 0x30], eax
mov eax, ecx
and eax, 0x102
cmp eax, 0x102
je 0x7c96d0
test ch, 2
je 0x7c98b0
mov eax, dword [esp + 0x14]
movzx esi, word [eax + 0x1c]
movzx ebx, word [eax + 0x18]
movzx edi, word [eax + 0x1a]
mov word [esp + 0x98], si
mov esi, dword [eax + 0x20]
mov word [esp + 0xa0], bx
mov dword [esp + 0x44], esi
mov esi, dword [ebp + 8]
mov word [esp + 0xa8], di
mov dword [esp + 0x7c], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x9c], ebx
test cl, 0x20
je 0x7ca182
mov eax, dword [eax + 0x30]
lea edx, [ebx + 1]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x90], eax
movzx eax, di
mov dword [esp + 0x70], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x2c]
lea edi, [eax + 1]
mov dword [esp + 0x30], edi
test cl, 0x10
je 0x7ca230
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
mov ebx, dword [ebx + 0x30]
mov ebx, dword [ebx + edx*4]
movzx edx, word [esp + 0x98]
cmp esi, edx
mov dword [esp + 0x8c], ebx
cmovge edx, esi
mov dword [esp + 0x70], edx
test byte [ebx + 0xb], 1
jne 0x7cb195
mov edi, dword [esp + 0x90]
mov byte [esp + 0xa4], 0
test edi, edi
je 0x7cb273
and ecx, 0x80030
mov dword [esp + 0x84], 0
cmp ecx, 0x80000
jne 0x7c7b85
mov edi, dword [esp + 0x30]
mov esi, dword [esp]
mov byte [esp + 0xa4], 1
mov dword [esp + 0x70], 1
mov dword [esi + 0x2c], edi
lea ebx, [edi + 1]
mov dword [ebp + 0x24], edi
mov eax, dword [esi + 0x38]
mov dword [esp + 0x84], edi
mov dword [esp + 0x30], ebx
sub eax, 1
mov dword [esi + 0x38], eax
mov dword [ebp + 0x28], eax
mov eax, edi
mov esi, dword [esp + 0x44]
movzx edi, word [esp + 0xa0]
cmp di, word [esi + 0x32]
jae 0x7ca1c4
mov edx, dword [esi + 0x1c]
mov edi, dword [esp + 0x88]
cmp byte [edx + edi], 0
sete dl
movzx edx, dl
cmp dword [esp + 0x28], edx
je 0x7ca1da
mov ebx, dword [esp]
mov edi, dword [ebx + 8]
mov dword [esp + 0x60], edi
mov edi, dword [ebp + 0x48]
movzx ecx, word [edi + 0x18]
movzx esi, word [edi + 0x2a]
mov dword [esp + 0xac], edi
mov edx, dword [edi + 0x20]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x6c], ecx
add edi, ecx
add eax, edi
mov dword [esp + 0x80], edi
mov dword [ebx + 0x2c], eax
mov eax, dword [ebx]
call fcn.007691c0
mov edx, eax
mov eax, dword [ebx]
movzx ebx, si
call fcn.007697d0
mov dword [esp + 0x78], eax
test si, si
je 0x7c7cda
mov eax, dword [esp + 0x28]
mov edi, dword [ebp + 8]
test eax, eax
je 0x7ca6a4
sub esp, 8
mov ecx, edi
mov edx, 0x21
push 0
push 0
mov esi, dword [esp + 0x70]
mov eax, esi
call fcn.00782fd0
pop ecx
pop eax
push 0
push 0
mov edx, 0xb
mov eax, esi
xor ecx, ecx
call fcn.00782fd0
add esp, 0x10
mov edx, 0x16
mov esi, eax
sub esp, 8
mov ecx, edi
push dword [esp + 0x38]
push 0
mov eax, dword [esp + 0x70]
call fcn.00782fd0
mov ecx, dword [esp + 0x70]
add esp, 0x10
mov edx, dword [ecx]
cmp byte [edx + 0x51], 0
jne 0x7ca690
mov edx, dword [ecx + 0x68]
mov dword [esp + 0x60], ecx
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*4]
mov byte [ecx + 1], 0xfd
mov dword [ecx + 0x10], ebx
mov ecx, dword [esp + 0x60]
mov dword [ebp + 0x14], eax
mov eax, dword [ecx + 0x6c]
test esi, esi
js 0x7cb024
lea ecx, [esi + esi*4]
lea edx, [edx + ecx*4]
mov dword [edx + 8], eax
xor esi, esi
mov dword [esp + 0x70], ebp
mov ebp, dword [esp + 0x30]
sub esp, 8
lea eax, [esi + ebp]
mov ecx, edi
mov edx, 0x59
push eax
push esi
mov eax, dword [esp + 0x70]
add esi, 1
call fcn.00782fd0
add esp, 0x10
cmp esi, ebx
jne 0x7c7cb4
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x78]
test eax, eax
setne byte [esp + 0x94]
cmp dword [esp + 0x6c], ebx
jle 0x7c7df4
mov dword [esp + 0x70], ebp
mov ebp, dword [esp + 0xac]
jmp 0x7c7d27
mov eax, dword [esi]
test byte [eax + 5], 8
je 0x7c7d1a
cmp byte [esp + 0x94], 0
je 0x7c7d1a
mov eax, dword [esp + 0x78]
mov byte [eax + ebx], 0x41
add ebx, 1
cmp dword [esp + 0x6c], ebx
je 0x7c7df0
mov edx, dword [esp + 0x30]
mov eax, dword [ebp + 0x30]
sub esp, 4
lea edi, [edx + ebx]
mov esi, dword [eax + ebx*4]
push edi
push dword [esp + 0x30]
mov edx, esi
push ebx
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x10]
call fcn.007c6b20
add esp, 0x10
mov ecx, eax
cmp edi, eax
je 0x7c7d80
cmp dword [esp + 0x80], 1
jne 0x7c9343
mov edx, dword [esp + 0x30]
mov dword [esp + 0x30], eax
test edx, edx
je 0x7c7d80
mov eax, dword [esp]
call fcn.0076e4a0
lea esi, [esi]
movzx eax, word [esi + 0xc]
test al, 1
jne 0x7c7d00
test ah, 1
jne 0x7c7d1a
mov eax, dword [esi]
mov edi, dword [eax + 0x10]
test byte [esi + 0xb], 8
je 0x7c9ca5
mov esi, dword [esp + 0x78]
test esi, esi
je 0x7c7d1a
movsx edx, byte [esi + ebx]
mov eax, edi
call fcn.00762a40
cmp al, 0x41
je 0x7c7d12
movsx edx, byte [esi + ebx]
cmp dl, 0x41
je 0x7c7d12
mov eax, edi
call fcn.0076e150
test eax, eax
jne 0x7c7d12
add ebx, 1
cmp dword [esp + 0x6c], ebx
jne 0x7c7d27
lea esi, [esi]
nop
mov ebp, dword [esp + 0x70]
cmp word [esp + 0x98], 0
je 0x7c7e0d
cmp byte [esp + 0x94], 0
jne 0x7ca7b0
mov dword [esp + 0x6c], 0
mov esi, dword [esp + 0x84]
test esi, esi
je 0x7ca1a1
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x60], eax
cmp word [esp + 0xa0], 0
mov ebx, dword [esp + 0x90]
setne al
test ebx, ebx
setne dl
or eax, edx
movzx eax, al
mov dword [esp + 0x94], eax
test ebx, ebx
je 0x7ca500
mov dword [esp + 0x80], 1
xor eax, eax
test byte [ebx + 0xc], 0x28
setne al
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x7c7e8b
test byte [eax + 0xc], 0x28
setne al
movzx eax, al
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x90]
movzx esi, word [esp + 0xa8]
sub esp, 0xc
mov edi, dword [esp + 0x94]
add edi, dword [esp + 0x3c]
mov eax, dword [eax]
mov ecx, edi
mov ebx, dword [eax + 0x10]
push esi
mov eax, dword [esp + 0x10]
mov edx, ebx
call fcn.007c0270
add esp, 0x10
mov eax, dword [esp + 0x90]
test byte [eax + 0xb], 1
je 0x7c7ed7
mov eax, dword [esp + 0x10]
lea edx, [ebp + 0x2c]
call fcn.0076f5b0
mov eax, ebx
call fcn.00762450
test eax, eax
jne 0x7caf64
mov eax, dword [esp + 0x78]
test eax, eax
je 0x7c7f00
mov ecx, dword [esp + 0x88]
mov edx, esi
add ecx, eax
mov eax, ebx
call fcn.0076e200
mov eax, dword [esp + 0x88]
lea edi, [eax + esi]
movzx eax, byte [ebx]
cmp al, 0xad
jne 0x7c7f15
movzx eax, byte [ebx + 2]
cmp al, 0xae
je 0x7cb408
cmp al, 0x88
je 0x7cb2e1
mov ecx, dword [esp + 0x90]
lea edx, [ebp + 0x50]
mov eax, ebp
call fcn.0076f530
mov ecx, edi
mov dword [esp + 0x90], 0
mov eax, dword [esp]
sub esp, 0xc
mov eax, dword [eax + 8]
push dword [esp + 0x84]
mov edx, dword [esp + 0x40]
call fcn.00783530
mov eax, dword [esp + 0x24]
add esp, 0x10
movzx eax, word [eax + 0x2a]
test ax, ax
je 0x7c7f70
cmp edi, eax
je 0x7c7fca
mov eax, dword [esp + 0x14]
test byte [eax + 0x26], 4
jne 0x7ca625
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x94]
mov ecx, dword [esp + 0x84]
lea esi, [eax + 0xbf52a4]
mov eax, dword [esp + 0x70]
lea eax, [esi + eax*2]
movzx ebx, byte [eax + ebx*4]
test ecx, ecx
jne 0x7ca593
sub esp, 4
mov edx, ebx
push edi
push dword [esp + 0x38]
push dword [esp + 0x6c]
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x20]
call fcn.00783160
add esp, 0x10
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x7ca2a3
movzx esi, word [esp + 0x98]
mov eax, dword [eax]
sub esp, 0xc
mov edi, dword [esp + 0x94]
add edi, dword [esp + 0x3c]
mov ebx, dword [eax + 0x10]
push esi
mov ecx, edi
mov eax, dword [esp + 0x10]
mov edx, ebx
call fcn.007c0270
add esp, 0x10
mov eax, dword [esp + 0x8c]
test byte [eax + 0xb], 1
je 0x7c801e
mov eax, dword [esp + 0x10]
lea edx, [ebp + 0x2c]
call fcn.0076f5b0
mov eax, ebx
call fcn.00762450
test eax, eax
jne 0x7caf85
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x7c8059
mov ecx, eax
mov edx, esi
mov eax, ebx
call fcn.0076e200
mov edx, dword [esp]
sub esp, 0xc
mov ecx, esi
mov eax, dword [edx + 8]
push dword [esp + 0x78]
mov edx, edi
call fcn.00783530
add esp, 0x10
movzx eax, byte [ebx]
add esi, dword [esp + 0x88]
mov dword [esp + 0x9c], esi
cmp al, 0xad
jne 0x7c8072
movzx eax, byte [ebx + 2]
cmp al, 0xae
je 0x7cb412
cmp al, 0x88
je 0x7cb2c0
mov ecx, dword [esp + 0x8c]
lea edx, [ebp + 0x50]
mov eax, ebp
call fcn.0076f530
mov eax, dword [esp + 0x78]
test eax, eax
je 0x7c80a6
mov edx, eax
mov eax, dword [esp + 0x4c]
call fcn.00767880
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x7c80b9
mov edx, eax
mov eax, dword [esp + 0x4c]
call fcn.00767880
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x9c]
mov eax, dword [eax + 0x6c]
mov dword [ebp + 0x3c], eax
test esi, esi
je 0x7c8115
mov ebx, dword [esp + 0x84]
test ebx, ebx
jne 0x7cb12f
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x28]
sub esp, 4
push dword [esp + 0xa0]
movzx edx, byte [eax + ebx*2 + 0xbf52a0]
push dword [esp + 0x38]
push dword [esp + 0x6c]
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x20]
call fcn.00783160
add esp, 0x10
mov ecx, dword [esp + 0x84]
test ecx, ecx
jne 0x7ca470
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x24]
test eax, 0x40000
jne 0x7ca440
test al, 0x40
je 0x7c9bf2
mov eax, dword [esp + 4]
test byte [eax + 0x28], 0x20
jne 0x7c9bf2
mov dword [esp + 0x30], 1
mov ecx, dword [ebp]
test ecx, ecx
jne 0x7c99f0
mov edi, dword [esp + 0x44]
mov eax, dword [edi + 0x28]
mov dword [esp + 0x60], eax
test eax, eax
je 0x7cb65f
mov eax, dword [esp + 0x44]
xor edx, edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + eax + 0xd4], edx
add eax, 4
cmp eax, 0x18
jb 0x7c8181
lea eax, [esp + 0xf0]
mov ebx, dword [esp + 0x44]
xor edi, edi
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x48]
cmp word [ebx + 0x34], 0
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x104], eax
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp + 0x108], eax
je 0x7c99d8
mov dword [esp + 0x6c], ebp
jmp 0x7c8268
test si, si
js 0x7c8259
mov eax, dword [esp + 0x4c]
lea edx, [esi + esi*4]
mov eax, dword [eax + 4]
lea eax, [eax + edx*4]
test byte [eax + 0x10], 0x20
je 0x7c8259
mov ebp, dword [eax + 8]
test ebp, ebp
jne 0x7cb0f6
mov dword [esp + 0x100], esi
mov dword [esp + 0xd8], 0x774070
mov eax, dword [esp + 4]
mov dword [esp + 0xfc], edi
mov edx, dword [eax + 0x10]
test edx, edx
je 0x7c8237
lea eax, [esp + 0xd4]
call fcn.0076d540
mov esi, dword [esp + 4]
lea eax, [esp + 0xd4]
mov edx, dword [esi + 8]
call fcn.0076d5f0
mov edx, dword [esi + 0xc]
lea eax, [esp + 0xd4]
call fcn.0076d5f0
movzx eax, word [ebx + 0x34]
add edi, 1
cmp edi, eax
jge 0x7cb319
mov eax, dword [ebx + 4]
movsx esi, word [eax + edi*2]
cmp si, 0xfffe
jne 0x7c81e4
mov esi, dword [esp + 0x60]
lea eax, [edi + edi*4]
mov ebp, 1
mov edx, dword [esi + eax*4 + 4]
mov word [esp + 0x120], bp
mov dword [esp + 0x110], 0x76ddd0
mov dword [esp + 0xf0], edx
mov dword [esp + 0x114], 0x762440
mov dword [esp + 0x124], 0
test edx, edx
je 0x7c8259
lea eax, [esp + 0x10c]
call fcn.0076d540
cmp word [esp + 0x120], 0
jne 0x7c8259
mov dword [esp + 0xd8], 0x79b0a0
jmp 0x7c8219
mov edx, dword [ebx]
push 0x10
mov eax, dword [esp + 8]
push dword [eax + 0x20]
push edx
push dword [esp + 0xc]
call fcn.007be180
add esp, 0x10
or word [ebx + 0xa], 4
mov eax, dword [esp + 0xbc]
jmp 0x7c7473
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 8]
mov edi, dword [edi + 0xc]
or dword [esp + 0x28], ecx
or dword [esp + 0x30], edi
cmp eax, 0x65
jne 0x7c84a1
sub esp, 8
push str.abbreviated_query_algorithm_search
push 0x1c
call fcn.00787f60
add esp, 0x10
add dword [esp + 0x3c], 1
cmp dword [esp + 0x48], ebx
jbe 0x7c7629
mov eax, dword [esp + 0xd0]
add ebx, 0x48
movzx edx, byte [esp + 0x40]
jmp 0x7c7540
mov edi, ecx
shr edi, 5
and edi, 1
mov esi, edi
shl edi, cl
xor esi, 1
shl esi, cl
jmp 0x7c758d
mov edi, dword [esp + 0x48]
cmp edi, ebx
jbe 0x7c86f0
mov dword [esp + 8], 0
mov ecx, ebx
mov dword [esp + 0xc], 0
mov dword [esp + 0x4c], ebx
mov ebx, edi
mov esi, dword [esp + 8]
mov edi, dword [esp + 0xc]
lea edx, [ecx + 0x48]
or edi, esi
je 0x7c8411
mov esi, dword [ecx + 0x2c]
test eax, eax
jle 0x7c83e0
cmp esi, dword [ebp + 0x1f0]
je 0x7c8500
xor ecx, ecx
jmp 0x7c83d9
cmp esi, dword [ebp + ecx*4 + 0x1f0]
je 0x7c8422
add ecx, 1
cmp ecx, eax
jne 0x7c83d0
mov ecx, edx
cmp ebx, edx
ja 0x7c83a4
mov ebx, dword [esp + 0x4c]
sub esp, 8
push dword [esp + 0x14]
push dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0xc8]
call fcn.007918d0
add esp, 0x10
jmp 0x7c75f0
lea edx, [ecx + 0x48]
test byte [ecx + 0x24], 0xa
jne 0x7c83b3
mov ecx, edx
cmp ebx, edx
ja 0x7c8411
jmp 0x7c83e6
mov edi, ecx
shr edi, 5
and edi, 1
mov esi, edi
shl edi, cl
xor esi, 1
shl esi, cl
mov ecx, dword [esp + 8]
or ecx, esi
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xc]
or ecx, edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0xc], ecx
mov ecx, edx
mov dword [esp + 8], edi
cmp ebx, edx
ja 0x7c83a4
jmp 0x7c83e6
sub esp, 8
push dword [esp + 0x14]
push dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0xc8]
call fcn.007996d0
mov esi, dword [esp + 0x24]
mov edx, dword [esi + 8]
mov esi, dword [esi + 0xc]
or dword [esp + 0x38], edx
or dword [esp + 0x40], esi
add esp, 0x10
test eax, eax
je 0x7c761b
jmp 0x7c8322
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x60]
call fcn.0076f7d0
mov edx, dword [esp + 4]
mov ebx, dword [esp]
mov eax, dword [edx + 0x24]
mov dword [ebx + 0x84], eax
mov eax, dword [esp + 0x50]
call fcn.00776f70
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
add esp, 0x14c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, 0x390
xor ecx, ecx
mov ebx, 0x348
mov dword [esp + 0x54], 1
jmp 0x7c7208
mov esi, 1
xor edi, edi
jmp 0x7c8433
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], 0
lea ebp, [eax + 0x18]
nop
mov edi, dword [esp + 4]
mov edx, dword [ebp + 0x1c]
mov eax, dword [edi + 0x1ec]
lea ecx, [eax + 1]
mov dword [edi + 0x1ec], ecx
mov dword [edi + eax*4 + 0x1f0], edx
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
lea eax, [eax + eax*8]
test byte [edi + eax*8 + 0x30], 4
je 0x7c85d0
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x14], eax
test eax, eax
je 0x7c85d0
mov ecx, dword [eax]
test ecx, ecx
jle 0x7c85d0
mov eax, dword [ebp]
mov dword [esp + 0x18], 0
xor edi, edi
mov dword [esp + 8], eax
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x18]
movsx ebx, word [esi + 0x2a]
cmp eax, ebx
jge 0x7c85b1
mov ecx, dword [esi + 4]
mov esi, eax
lea eax, [eax + eax*4]
shl eax, 2
lea edx, [ecx + eax + 0x24]
test byte [ecx + eax + 0x10], 2
je 0x7c85aa
jmp 0x7c85f0
movzx eax, word [edx]
add edx, 0x14
test al, 2
jne 0x7c85f0
add esi, 1
cmp esi, ebx
jne 0x7c85a0
push edi
mov eax, dword [esp + 0xc]
push dword [eax]
push str.too_many_arguments_on__s_____max__d
push dword [esp + 0xc]
call fcn.0078f9f0
add esp, 0x10
lea esi, [esi]
mov edi, dword [esp + 0x20]
add dword [esp + 0x24], 1
add ebp, 0x48
mov eax, dword [esp + 0x24]
cmp dword [edi], eax
jg 0x7c8520
jmp 0x7c7391
sub esp, 0xc
xor ecx, ecx
mov edx, 0xa4
push 0
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
call fcn.00769bc0
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x7c85d0
mov eax, dword [ebp + 0x1c]
mov word [ebx + 0x20], si
mov dword [ebx + 0x1c], eax
lea eax, [esi + 1]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 8]
mov dword [ebx + 0x2c], eax
lea eax, [edi + edi*4]
mov eax, dword [esi + eax*4 + 4]
test eax, eax
je 0x7c864e
sub esp, 0xc
mov edx, eax
xor ecx, ecx
push 0
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
call fcn.00779c70
add esp, 0x10
sub esp, 0xc
mov ecx, eax
mov edx, 0xab
push 0
mov esi, dword [esp + 0x10]
mov eax, esi
call fcn.007903a0
mov ecx, ebx
mov edx, 0x35
mov dword [esp], eax
mov eax, esi
call fcn.007903a0
add esp, 0x10
mov ebx, eax
test byte [ebp + 0x14], 8
jne 0x7c86a5
mov eax, dword [esp + 0x38]
mov ecx, 1
mov edx, ebx
add edi, 1
call fcn.007770e0
mov eax, dword [esp + 0x14]
cmp edi, dword [eax]
jl 0x7c8575
jmp 0x7c85d0
mov edx, dword [ebp + 0x1c]
call fcn.00762ee0
jmp 0x7c8681
test edx, edx
je 0x7c84cf
mov eax, dword [esp + 0x50]
call fcn.00767880
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
add esp, 0x14c
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, 1
xor edi, edi
jmp 0x7c758d
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
jmp 0x7c83ea
mov eax, dword [esp + 4]
mov byte [eax + 0x2f], 1
jmp 0x7c737b
mov eax, dword [esp + 0x50]
test byte [eax + 0x21], 0x10
je 0x7c7691
mov eax, dword [esp + 4]
mov dword [eax + 0x48], 0xffffffff
mov dword [eax + 0x4c], 0xffffffff
jmp 0x7c7691
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
mov ecx, eax
mov eax, edx
not ecx
not eax
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
and ecx, esi
and eax, edi
mov edx, ecx
jmp 0x7c7942
movzx eax, byte [ebp + 0x34]
mov edi, dword [esp + 0x20]
sub esp, 8
xor ecx, ecx
mov edx, 0x11
lea esi, [eax + eax*8]
mov dword [esp + 0x7c], eax
lea ebx, [esi*8]
lea eax, [edi + ebx + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
mov dword [esp + 0x4c], eax
push 0
push 0
call fcn.00782fd0
mov dword [esp + 0x8c], eax
mov eax, dword [edi + ebx + 0x18]
mov edi, dword [ebp + 0x48]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x80], edi
mov ebx, dword [eax + 0x64]
mov eax, dword [eax + 0x5c]
lea eax, [eax + eax*2]
shl eax, 4
add eax, ebx
mov dword [esp + 0x34], eax
add esp, 0x10
mov dword [esp + 8], 0
cmp ebx, eax
jae 0x7cb25a
mov dword [esp + 0x4c], esi
mov esi, edi
mov byte [esp + 0x14], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x6c], ebp
jmp 0x7c8879
mov eax, dword [esp + 8]
add eax, 1
mov ecx, eax
mov dword [esp + 0x14], eax
movzx eax, word [esi + 0x2c]
cmp ecx, eax
jle 0x7c884d
mov eax, dword [esp]
mov ecx, dword [esp + 0x14]
mov edx, esi
mov eax, dword [eax]
call fcn.00773cb0
test eax, eax
jne 0x7ca572
mov eax, dword [esi + 0x30]
mov ecx, dword [esp + 8]
or dword [esp + 0x30], edi
mov dword [eax + ecx*4], ebx
mov eax, dword [esp + 0x14]
or dword [esp + 0x40], ebp
mov dword [esp + 8], eax
mov byte [esp + 0x14], 1
add ebx, 0x30
cmp dword [esp + 0x24], ebx
jbe 0x7c8900
mov eax, dword [esi + 4]
or eax, dword [esi]
jne 0x7c8892
test byte [ebx + 0xa], 2
jne 0x7c8892
mov edi, dword [ebx]
test byte [edi + 4], 1
je 0x7c8ea0
sub esp, 8
mov eax, ebx
push dword [esp + 0x24]
push dword [esp + 0x24]
mov edx, dword [esp + 0x38]
call fcn.0076f6a0
add esp, 0x10
test eax, eax
je 0x7c886c
mov ecx, dword [ebx + 0x1c]
xor edi, edi
mov ebp, 0x80000000
cmp ecx, 0x3f
jg 0x7c88cf
mov ebp, ecx
shr ebp, 5
and ebp, 1
mov edi, ebp
shl ebp, cl
xor edi, 1
shl edi, cl
cmp byte [esp + 0x14], 0
je 0x7c8e70
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x40]
and eax, edi
and edx, ebp
or edx, eax
je 0x7c8820
mov byte [esp + 0x14], 1
add ebx, 0x30
cmp dword [esp + 0x24], ebx
ja 0x7c8879
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
mov ebp, dword [esp + 0x6c]
movzx ecx, word [esp + 8]
not eax
not edx
or eax, 0x80000000
mov ebx, dword [esp + 0x70]
mov word [ebx + 0x28], cx
mov word [ebx + 0x18], cx
mov dword [ebx + 0x24], 0x4241
mov ebx, dword [esp + 0x74]
lea ecx, [ebx + ebx*8]
mov ebx, dword [esp + 0x20]
lea ecx, [ebx + ecx*8]
mov ebx, dword [ecx + 0x44]
and edx, dword [ecx + 0x40]
mov dword [esp + 0x58], edx
and eax, ebx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x48]
movsx edi, word [eax + 0x2a]
mov eax, 0x3f
cmp di, 0x3f
mov word [esp + 0x78], di
cmovle eax, edi
mov dword [esp + 0x30], eax
test di, di
jle 0x7c89b1
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x14], ebp
xor ecx, ecx
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x40], ebx
mov ebx, eax
mov edx, ebp
mov eax, edi
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x7c8995
mov eax, edx
and eax, 1
cmp eax, 1
sbb esi, 0xffffffff
add ecx, 1
cmp ebx, ecx
jne 0x7c8985
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x40]
mov dword [esp + 8], esi
test ebx, ebx
jns 0x7c89c6
mov edi, dword [esp + 8]
movsx eax, word [esp + 0x78]
lea eax, [edi + eax - 0x3f]
mov dword [esp + 8], eax
movzx eax, word [esp + 8]
sub esp, 0xc
xor ecx, ecx
lea edx, [eax + 1]
lea eax, [esp + 0x118]
push eax
mov eax, dword [esp + 0x10]
movsx edx, dx
mov eax, dword [eax]
call fcn.00769480
mov dword [esp + 0x50], eax
add esp, 0x10
test eax, eax
je 0x7c8e49
mov ebx, dword [esp + 0x70]
mov dword [ebx + 0x20], eax
mov ebx, dword [esp + 0x48]
mov dword [eax], str.auto_index
mov dword [eax + 0xc], ebx
mov eax, dword [esp + 4]
xor ebx, ebx
mov esi, dword [eax + 0x64]
cmp dword [esp + 0x24], esi
jbe 0x7cadd3
mov dword [esp + 0x80], ebp
mov ebp, ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x4c], 0
jmp 0x7c8a4d
add esi, 0x30
cmp dword [esp + 0x24], esi
jbe 0x7c8af0
sub esp, 8
mov eax, esi
lea edi, [ebp + ebp]
push dword [esp + 0x24]
push dword [esp + 0x24]
mov edx, dword [esp + 0x38]
call fcn.0076f6a0
add esp, 0x10
test eax, eax
je 0x7c8a40
mov ebx, dword [esi + 0x1c]
xor eax, eax
mov edx, 0x80000000
mov dword [esp + 0x6c], ebx
cmp ebx, 0x3f
jg 0x7c8a94
xor eax, eax
xor edx, edx
test bl, 0x20
mov ecx, ebx
sete al
setne dl
shl edx, cl
shl eax, cl
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x4c]
and ebx, eax
and ecx, edx
or ecx, ebx
jne 0x7c8a40
or dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
movzx ecx, word [esp + 0x6c]
mov ebx, dword [esi]
mov eax, dword [eax + 4]
or dword [esp + 0x4c], edx
mov edx, ebx
mov word [eax + edi], cx
mov eax, dword [esp]
call fcn.007940b0
mov edx, str.BINARY
test eax, eax
je 0x7c8ad3
mov edx, dword [eax]
mov eax, dword [esp + 0x40]
add edi, 2
add esi, 0x30
mov eax, dword [eax + 0x20]
mov dword [eax + ebp*4], edx
add ebp, 1
cmp dword [esp + 0x24], esi
ja 0x7c8a4d
mov ebx, ebp
mov ebp, dword [esp + 0x80]
lea eax, [ebx*4]
mov esi, dword [esp + 0x40]
cmp word [esp + 0x78], 0
mov ecx, dword [esi + 4]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], esi
jle 0x7cadc0
mov dword [esp + 0x4c], ebp
xor ecx, ecx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
lea edi, [ebx + ebx]
lea esi, [ebx*4]
add eax, edi
lea ebp, [edx + esi]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x58]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x7c8b53
mov eax, edx
and eax, 1
je 0x7c8b7d
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
add ebx, 1
mov word [eax], cx
mov eax, dword [esp + 0x24]
mov dword [ebp], str.BINARY
lea ebp, [edx + esi + 4]
lea eax, [eax + edi + 2]
mov dword [esp + 0x14], eax
add ecx, 1
cmp dword [esp + 0x30], ecx
jne 0x7c8b24
mov edi, ebp
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x20]
lea eax, [eax + eax*8]
mov esi, dword [esi + eax*8 + 0x44]
test esi, esi
js 0x7c9b60
mov esi, dword [esp]
mov eax, dword [esp + 0x14]
mov ecx, 0xffffffff
sub esp, 8
mov edx, 0x63
mov word [eax], cx
mov ecx, dword [esi + 0x28]
mov dword [edi], str.BINARY
lea eax, [ecx + 1]
mov dword [esi + 0x28], eax
mov dword [ebp + 8], ecx
push 0
mov eax, dword [esp + 0x14]
add eax, 1
push eax
mov eax, dword [esp + 0x54]
call fcn.00782fd0
mov edx, dword [esp + 0x50]
mov eax, esi
call fcn.00792d30
mov eax, dword [esp + 0x14]
movzx edi, byte [ebp + 0x34]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 4]
mov ecx, eax
mov dword [esp + 0x24], eax
lea eax, [edi + edi*8]
add esp, 0x10
lea esi, [ecx + eax*8]
test byte [esi + 0x30], 0x10
je 0x7c9a50
mov eax, dword [esi + 0x24]
sub esp, 8
xor ecx, ecx
mov edx, 0x45
mov dword [esp + 0x10], eax
push 0
push 0
mov eax, dword [esp + 0x54]
call fcn.00782fd0
mov edx, 0xd
mov dword [esp + 0x34], eax
pop ecx
pop eax
push dword [esi + 0x20]
push 0
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov eax, esi
call fcn.00782fd0
pop eax
pop edx
push 0
push 0
mov ecx, dword [esp + 0x18]
mov eax, esi
mov edx, 0xe
call fcn.00782fd0
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x28], 0
test eax, eax
je 0x7c8ca8
mov ecx, dword [esp]
mov edx, dword [ecx + 0x38]
mov dword [esp + 8], edx
sub edx, 1
mov dword [esp + 0x28], edx
mov dword [ecx + 0x38], edx
push 0x10
push edx
push eax
push ecx
call fcn.007be180
mov eax, dword [esp + 0x80]
add esp, 0x10
or dword [eax + 0x24], 0x20000
mov eax, dword [esp]
movzx eax, byte [eax + 0x13]
test al, al
je 0x7c9c90
mov edx, dword [esp]
sub eax, 1
mov byte [edx + 0x13], al
movzx eax, al
mov eax, dword [edx + eax*4 + 0x94]
mov dword [esp + 8], eax
sub esp, 0xc
mov ecx, dword [ebp + 4]
push 0
push 0
push 0
push 0
push dword [esp + 0x24]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
call fcn.007c6190
mov ecx, dword [ebp + 8]
mov edx, 0x83
mov dword [esp + 0x50], eax
add esp, 0x18
push 0
push dword [esp + 0x14]
mov eax, dword [esp + 0x54]
call fcn.00782fd0
mov edx, dword [esp + 0x54]
add esp, 0x10
mov eax, dword [edx + 0x6c]
test eax, eax
jle 0x7c8d2b
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov edx, 0x10
lea eax, [ecx + eax*4]
mov word [eax - 0x12], dx
mov eax, dword [esp + 0x60]
test eax, eax
je 0x7c8d40
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x44]
call fcn.00782e20
mov edx, dword [esp + 0x14]
lea eax, [edi + edi*8]
mov ecx, dword [ebp + 4]
test byte [edx + eax*8 + 0x30], 0x10
je 0x7c9ce0
mov eax, dword [esp + 0x24]
add ebx, dword [esp + 0x30]
test eax, eax
jns 0x7c8d6f
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x6c]
sub eax, 1
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x44]
mov edx, dword [eax]
mov eax, 0xc13eac
cmp byte [edx + 0x51], 0
jne 0x7c8d91
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x68]
lea edx, [edx + edx*4]
lea eax, [eax + edx*4]
mov dword [eax + 8], ebx
mov eax, dword [esp]
sub esp, 4
mov edx, dword [eax + 8]
push dword [ebp + 8]
lea eax, [edi + edi*8]
mov ebx, dword [esp + 0x1c]
lea ebx, [ebx + eax*8]
push dword [ebx + 0x28]
push ecx
mov ecx, esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
call fcn.0076f5e0
pop edi
pop eax
push 0
push esi
mov edi, dword [esp + 0x54]
xor ecx, ecx
mov edx, 0xb
mov eax, edi
call fcn.00782fd0
and byte [ebx + 0x30], 0xef
mov eax, dword [edi + 0x6c]
add esp, 0x10
mov edi, dword [esp + 0x44]
lea edx, [eax - 1]
test esi, esi
mov ecx, 0xc13eac
cmovs esi, edx
mov edx, dword [edi]
movzx edx, byte [edx + 0x51]
test dl, dl
jne 0x7c8e00
mov ecx, dword [edi + 0x68]
lea ebx, [esi + esi*4]
lea ecx, [ecx + ebx*4]
mov ebx, dword [esp + 8]
mov dword [ecx + 8], eax
test ebx, ebx
je 0x7c8e22
mov eax, dword [esp]
mov edx, ebx
call fcn.0076e4a0
mov ebx, dword [esp + 0x44]
mov edx, dword [ebx]
mov eax, dword [ebx + 0x6c]
movzx edx, byte [edx + 0x51]
mov ebx, dword [esp + 0x7c]
lea ecx, [eax - 1]
test ebx, ebx
cmovns ecx, ebx
mov ebx, ecx
mov ecx, 0xc13eac
test dl, dl
jne 0x7c8e46
mov esi, dword [esp + 0x44]
lea ecx, [ebx + ebx*4]
mov edx, dword [esi + 0x68]
lea ecx, [edx + ecx*4]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x60]
test eax, eax
je 0x7c8e5d
mov edx, eax
mov eax, dword [esp]
mov eax, dword [eax]
call fcn.00776ad0
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x51], 0
je 0x7c789d
jmp 0x7c84ae
mov edx, dword [esp + 0x48]
lea eax, [ecx + ecx*4]
shl eax, 2
add eax, dword [edx + 4]
push dword [eax]
push dword [edx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.00787f60
add esp, 0x10
jmp 0x7c88da
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x110], 0x76ddd0
mov dword [esp + 0x114], 0x762440
mov eax, dword [eax + edx*8 + 0x34]
mov edx, 3
mov word [esp + 0x120], dx
mov edx, edi
mov dword [esp + 0x124], eax
lea eax, [esp + 0x10c]
call fcn.0076d540
cmp word [esp + 0x120], 0
je 0x7c8892
sub esp, 0xc
mov edx, edi
xor ecx, ecx
push 0
mov edi, dword [esp + 0x10]
mov eax, dword [edi]
call fcn.00779c70
mov edx, dword [esp + 0x70]
mov ecx, eax
mov eax, edi
call fcn.00790520
mov dword [esp + 0x70], eax
add esp, 0x10
jmp 0x7c8892
sub esp, 8
mov esi, dword [edi + 0x24]
push dword [edi + 0x20]
mov edx, 0xd
push 0
mov edi, dword [esp + 0x20]
mov ecx, esi
mov eax, edi
call fcn.00782fd0
pop eax
pop edx
push 0
push ebx
mov ecx, esi
mov edx, 0xe
mov eax, edi
call fcn.00782fd0
add esp, 0x10
mov byte [ebp + 0x35], 0xb
mov dword [ebp + 0x3c], eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], 2
mov eax, dword [esp + 0x40]
lea eax, [eax + eax*8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 4]
mov ebx, dword [eax + 0x64]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x28], eax
test eax, eax
jle 0x7c91f5
xor edi, edi
jmp 0x7c9051
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x4c]
mov esi, dword [ebx]
test byte [ecx + edx*8 + 0x2c], 8
je 0x7c8fad
test byte [esi + 4], 1
je 0x7c9047
cmp dword [esp + 0x14], 1
je 0x7c9260
cmp dword [esp + 0x14], 3
jne 0x7c9276
test ah, 2
je 0x7c9240
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x7c9240
mov ecx, eax
and eax, 1
shr ecx, 1
cmp eax, 1
sbb edx, edx
sub esp, 8
push 0
and edx, 0xfffffffe
push 0
mov eax, dword [esp + 0x20]
add edx, 0x14
call fcn.00782fd0
mov dword [esp + 0x40], eax
push 0x10
push dword [esp + 0x1c]
push esi
push dword [esp + 0x1c]
call fcn.007be180
add esp, 0x20
mov eax, dword [esp + 0x30]
test eax, eax
je 0x7c9042
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + 0x6c]
mov esi, dword [esi]
lea edx, [ecx - 1]
cmovs eax, edx
cmp byte [esi + 0x51], 0
mov edx, 0xc13eac
jne 0x7c903f
mov esi, dword [esp + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea edx, [eax + edx*4]
mov dword [edx + 8], ecx
or word [ebx + 0xa], 4
add ebx, 0x30
sub dword [esp + 0x28], 1
je 0x7c907f
movzx eax, word [ebx + 0xa]
test al, 6
jne 0x7c9047
mov edx, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
and edx, dword [ebp + 0x50]
and ecx, dword [ebp + 0x54]
or ecx, edx
je 0x7c8f92
mov eax, dword [esp + 4]
add ebx, 0x30
or byte [eax + 0x30], 2
sub dword [esp + 0x28], 1
jne 0x7c9051
mov dword [esp + 0x14], edi
test edi, edi
jne 0x7c8f75
mov eax, dword [esp + 4]
mov esi, dword [eax + 0x5c]
mov ebx, dword [eax + 0x64]
test esi, esi
jle 0x7c91f5
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x48]
lea edi, [eax + eax*8]
lea esi, [esi]
test byte [ebx + 0xa], 6
jne 0x7c91e5
movzx eax, word [ebx + 0xc]
test al, 0x82
je 0x7c91e5
test ah, 8
je 0x7c91e5
cmp ebp, dword [ebx + 0x14]
jne 0x7c91e5
mov eax, dword [esp + 0x24]
test byte [eax + edi*8 + 0x2c], 8
jne 0x7c91e5
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x1c]
mov edx, ebp
mov dword [esp + 0x28], eax
push 0
push 0x83
push dword [esp + 0x24]
push dword [esp + 0x24]
mov eax, dword [esp + 0x48]
call fcn.00798420
add esp, 0x10
test eax, eax
je 0x7c91e5
test byte [eax + 0xa], 4
jne 0x7c91e5
mov edx, dword [eax]
test byte [eax + 0xc], 1
je 0x7c913c
test byte [edx + 5], 8
je 0x7c913c
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jg 0x7c91e5
mov eax, dword [edx]
mov dword [esp + 0x10c], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x110], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x114], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 0x118], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x11c], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0x120], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x124], eax
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x128], eax
mov eax, dword [edx + 0x20]
mov dword [esp + 0x12c], eax
mov eax, dword [edx + 0x24]
mov dword [esp + 0x130], eax
mov eax, dword [edx + 0x28]
mov dword [esp + 0x134], eax
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x138], eax
mov eax, dword [edx + 0x30]
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x118], eax
push 0x10
push dword [esp + 0xc]
lea eax, [esp + 0x114]
push eax
push dword [esp + 0xc]
call fcn.007be180
add esp, 0x10
add ebx, 0x30
sub esi, 1
jne 0x7c90b0
mov ebp, dword [esp + 0x14]
mov eax, dword [ebp]
test eax, eax
jne 0x7c92a0
mov eax, dword [ebp + 0x50]
mov edx, dword [ebp + 0x54]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov eax, dword [ebp + 0x18]
mov edi, dword [esp + 4]
add ebp, 0x58
add dword [esp + 0x3c], 1
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x54], eax
jne 0x7c7890
mov eax, dword [esp + 4]
add esp, 0x14c
pop ebx
pop esi
pop edi
pop ebp
ret
push 0x10
push dword [esp + 0xc]
push esi
push dword [esp + 0xc]
call fcn.007be180
add esp, 0x10
jmp 0x7c9042
mov edx, dword [ebp + 4]
mov ecx, dword [esp + 0x44]
mov eax, esi
call fcn.0076d910
test eax, eax
je 0x7c9290
movzx eax, word [ebx + 0xa]
test ah, 0x10
je 0x7c8fc3
test edi, edi
mov eax, 3
cmove edi, eax
jmp 0x7c9047
mov edi, 2
jmp 0x7c9047
mov ebx, dword [esp + 0x10]
sub esp, 8
mov ecx, 1
mov edx, dword [ebx + 0x6c]
mov dword [ebp + 0x1c], edx
mov edx, 0x45
push 0
push eax
mov eax, ebx
call fcn.00782fd0
mov eax, dword [esp + 0x14]
add esp, 0x10
mov esi, dword [eax + 0x5c]
mov ebx, dword [eax + 0x64]
test esi, esi
jle 0x7c9200
xor esi, esi
mov edx, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x14], ebp
mov edi, esi
mov esi, dword [esp + 4]
lea esi, [esi]
nop
test byte [ebx + 0xa], 6
jne 0x7c9327
mov eax, dword [ebx + 0x28]
mov ebp, dword [ebx + 0x2c]
and eax, edx
and ebp, ecx
or ebp, eax
jne 0x7c9327
push 0x10
push dword [esp + 0xc]
push dword [ebx]
push dword [esp + 0xc]
call fcn.007be180
mov eax, dword [esp + 0x24]
or word [ebx + 0xa], 4
add esp, 0x10
mov edx, dword [eax + 0x50]
mov ecx, dword [eax + 0x54]
add edi, 1
add ebx, 0x30
cmp edi, dword [esi + 0x5c]
jl 0x7c92f0
mov dword [esp + 0x18], edx
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
jmp 0x7c920e
sub esp, 8
mov edx, 0x4e
push 0
push edi
mov eax, dword [esp + 0x70]
call fcn.00782fd0
add esp, 0x10
jmp 0x7c7d80
mov eax, dword [esp + 0x14]
movzx ebx, word [eax + 0x28]
mov eax, dword [esp]
lea edx, [ebx + 2]
call fcn.0076e4d0
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x60], eax
mov dword [esp + 0x44], esi
test ebx, ebx
je 0x7c93f2
mov edi, eax
mov dword [esp + 0x30], ebp
xor esi, esi
mov ebp, dword [esp + 0x14]
add edi, 2
jmp 0x7c93be
sub esp, 4
push ecx
push dword [esp + 0x30]
push esi
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
call fcn.007c6b20
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x54], eax
add esp, 0x10
add esi, 1
cmp ebx, esi
je 0x7c93ee
mov eax, dword [ebp + 0x30]
lea ecx, [edi + esi]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x7c93b7
test byte [edx + 0xc], 1
jne 0x7c9393
mov eax, dword [edx]
sub esp, 0xc
add esi, 1
mov edx, dword [eax + 0x10]
push 1
mov eax, dword [esp + 0x10]
call fcn.007c0270
add esp, 0x10
cmp ebx, esi
jne 0x7c93be
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
sub esp, 8
mov edx, 0x45
mov ecx, dword [edi + 0x18]
push 0
push dword [esp + 0x6c]
mov esi, dword [esp + 0x20]
mov eax, esi
call fcn.00782fd0
pop eax
pop edx
push 0
mov eax, dword [esp + 0x6c]
mov ecx, ebx
mov edx, 0x45
add eax, 1
push eax
mov eax, esi
mov dword [esp + 0x20], esi
call fcn.00782fd0
pop ecx
pop esi
mov edx, 9
cmp byte [edi + 0x1c], 1
mov dword [esp + 0x1c], edi
mov edi, dword [edi + 0x20]
push dword [esp + 0x68]
sbb esi, esi
push dword [esp + 0x50]
or esi, 0xfffffff9
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
mov dword [esp], esi
mov esi, dword [esp + 0x20]
mov ecx, edi
mov edx, eax
mov eax, esi
call fcn.00774970
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x58]
add esp, 0x10
mov byte [edi + 0x1c], 0
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 4]
cmp byte [eax + 0x2e], 1
sbb eax, eax
sub ebx, 1
and eax, 0xffffff90
sub eax, 0x53
mov byte [ebp + 0x35], al
mov eax, dword [esi + 0x6c]
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x40]
mov dword [esp + 0x14], eax
cmp ebx, 0xffffffff
je 0x7c9634
lea eax, [ebp + 0x50]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], eax
jmp 0x7c95f8
sub dword [esp + 0x14], 1
cmp ebx, 0xf
jle 0x7c9650
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
movzx eax, byte [edx]
cmp al, 0xad
jne 0x7c94de
movzx eax, byte [edx + 2]
cmp al, 0xae
je 0x7c9672
cmp al, 0x88
je 0x7c9660
mov eax, dword [esp + 0x4c]
cmp byte [eax + 0x51], 0
jne 0x7c9554
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
shl eax, 2
add eax, dword [edx + 0x44]
mov edx, dword [eax + 4]
test edx, edx
jns 0x7c951e
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x6c]
mov dword [esp + 0x44], eax
lea edx, [eax - 1]
mov ebp, dword [esp + 0x10]
mov eax, 0xc13eac
mov ecx, dword [ebp]
cmp byte [ecx + 0x51], 0
jne 0x7c9539
mov eax, dword [ebp + 0x68]
lea edx, [edx + edx*4]
lea eax, [eax + edx*4]
sub esp, 8
mov ecx, dword [eax + 4]
movzx edx, byte [eax]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
add esp, 0x10
sub esp, 0xc
xor ecx, ecx
mov edx, 0x35
push 0
mov eax, dword [esp + 0x10]
call fcn.007903a0
add esp, 0x10
mov ebp, eax
test eax, eax
je 0x7c95f0
mov eax, dword [esi]
sub esp, 0xc
mov edx, 0xad
mov eax, dword [eax + 0xc]
mov dword [ebp + 0xc], eax
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
push 0
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0x11c]
call fcn.00769bc0
add esp, 0x10
mov dword [ebp + 0x10], eax
test eax, eax
je 0x7c95d5
mov esi, dword [esp + 0x60]
lea edx, [esi + ebx + 2]
mov dword [eax + 0x1c], edx
push 0
mov eax, dword [esp + 0x2c]
push dword [eax + 0x18]
push ebp
push dword [esp + 0xc]
call fcn.007be180
add esp, 0x10
mov dword [ebp + 0xc], 0
mov eax, dword [esp + 0x4c]
mov edx, ebp
call fcn.00776ad0
lea esi, [esi]
nop
sub ebx, 1
cmp ebx, 0xffffffff
je 0x7c9630
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ebx*4]
test byte [esi + 0xc], 1
jne 0x7c94c0
cmp ebx, 0xf
jg 0x7c95f0
movzx eax, word [edi + 0x1e]
bt eax, ebx
jae 0x7c95f0
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov ecx, esi
sub ebx, 1
call fcn.0076f530
cmp ebx, 0xffffffff
jne 0x7c95f8
lea esi, [esi]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], 2
jmp 0x7c8f6a
movzx eax, word [edi + 0x1e]
bt eax, ebx
jae 0x7c94ce
jmp 0x7c9616
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp eax, 1
jne 0x7c95f0
jmp 0x7c94ee
mov eax, dword [edx + 0x14]
mov eax, dword [eax]
jmp 0x7c9668
mov esi, dword [esp]
sub esp, 8
xor ecx, ecx
mov edx, 0x45
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x38], eax
add eax, 1
mov dword [esi + 0x2c], eax
mov dword [ebp], eax
push 0
push eax
mov eax, dword [esp + 0x20]
call fcn.00782fd0
add esp, 0x10
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x7c79a4
lea esi, [esi]
nop
xor eax, eax
jmp 0x7c79da
test cl, 0x20
je 0x7ca100
mov eax, dword [esp + 0x14]
and ecx, 0x10
mov eax, dword [eax + 0x30]
mov edi, dword [eax]
mov eax, 1
jne 0x7ca10d
mov esi, dword [esp + 0x28]
test esi, esi
jne 0x7ca660
mov dword [esp + 0x44], 0
test edi, edi
je 0x7cb681
mov dword [esp + 0x10c], 0x18161719
mov esi, dword [edi]
mov edx, dword [esi + 0x10]
movzx eax, byte [edx]
cmp al, 0xad
jne 0x7c9727
movzx eax, byte [edx + 2]
cmp al, 0xae
je 0x7cb250
cmp al, 0x88
je 0x7caebb
mov eax, dword [esp]
lea ecx, [esp + 0xf0]
call fcn.007c06c0
lea edx, [ebp + 0x50]
mov ecx, edi
mov dword [esp + 0x14], eax
mov eax, ebp
call fcn.0076f530
movzx eax, byte [esi]
movzx edx, byte [esp + eax + 0xd6]
sub esp, 8
push dword [esp + 0x1c]
push ebx
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
mov edx, dword [esp + 0x100]
add esp, 0x10
test edx, edx
je 0x7c978c
mov eax, dword [esp]
call fcn.0076e4a0
mov eax, dword [esp + 0x44]
test eax, eax
je 0x7ca275
mov esi, dword [eax]
mov eax, dword [esp]
sub esp, 0xc
mov edi, dword [eax + 0x2c]
mov edx, dword [esi + 0x10]
lea ecx, [edi + 1]
mov dword [esp + 0x20], ecx
mov dword [eax + 0x2c], ecx
push 1
call fcn.007c0270
mov edx, dword [esi + 0x10]
add esp, 0x10
movzx eax, byte [edx]
cmp al, 0xad
jne 0x7c97c8
movzx eax, byte [edx + 2]
cmp al, 0xae
je 0x7cb3fe
cmp al, 0x88
je 0x7ca417
movzx ecx, byte [esi]
sub ecx, 0x36
and ecx, 0xfd
jne 0x7ca428
cmp dword [esp + 0x28], 1
sbb edi, edi
and edi, 2
add edi, 0x37
cmp al, 0xae
je 0x7cb3f4
cmp al, 0x88
je 0x7cb2aa
mov ecx, dword [esp + 0x44]
lea edx, [ebp + 0x50]
mov eax, ebp
call fcn.0076f530
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x6c]
test ecx, ecx
je 0x7ca580
mov esi, dword [esp + 0x48]
mov byte [ebp + 0x35], 4
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x38], esi
mov eax, dword [esp]
sub esp, 8
mov edx, 0x7f
mov esi, dword [eax + 0x2c]
mov dword [esp + 0x30], esi
add esi, 1
mov dword [eax + 0x2c], esi
push 0
push esi
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
pop eax
pop edx
mov edx, edi
push esi
push ebx
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov eax, edi
call fcn.00782fd0
mov eax, dword [edi + 0x6c]
add esp, 0x10
test eax, eax
jle 0x7c9634
mov edx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov ecx, 0x53
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], 2
lea eax, [edx + eax*4]
mov word [eax - 0x12], cx
jmp 0x7c8f6a
and ch, 0x20
je 0x7ca160
mov ebx, dword [esp]
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x74], eax
add eax, 1
mov dword [ebx + 0x28], eax
mov eax, ebx
mov ebx, dword [ebx + 0x2c]
mov edi, dword [eax + 0x38]
lea ebx, [ebx + 1]
lea edi, [edi - 1]
mov dword [eax + 0x2c], ebx
mov dword [eax + 0x38], edi
mov eax, dword [esp + 0x40]
mov dword [esp + 0x84], edi
lea esi, [eax + eax*8]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x80], ebx
shl esi, 3
mov edi, dword [eax + esi + 0x18]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x30]
mov eax, dword [eax]
mov edi, dword [eax + 0x1c]
mov dword [ebp + 0x38], ebx
mov ebx, dword [esp + 4]
mov dword [esp + 0x98], eax
mov byte [ebp + 0x35], 0x41
movzx eax, byte [ebx + 0x2c]
mov dword [esp + 0x28], edi
cmp al, 1
ja 0x7cade0
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 4]
test byte [eax + 0x28], 0x10
jne 0x7ca7d0
mov eax, dword [esp + 0x44]
test byte [eax + 0x24], 0x80
je 0x7cb067
mov eax, dword [esp + 0x44]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x7c997b
jmp 0x80aef0
mov ebx, dword [ebx + 0x14]
test ebx, ebx
je 0x80aef0
movzx eax, byte [ebx + 0x38]
and eax, 3
cmp al, 2
jne 0x7c9970
mov esi, dword [esp]
sub esp, 8
mov edx, 0x64
mov ecx, dword [esi + 0x28]
lea eax, [ecx + 1]
mov dword [esp + 0x9c], ecx
mov dword [esi + 0x28], eax
movzx eax, word [ebx + 0x32]
push 0
push eax
mov eax, dword [esp + 0x20]
call fcn.00782fd0
mov edx, ebx
mov eax, esi
call fcn.00792d30
add esp, 0x10
jmp 0x7cb097
mov eax, dword [esp + 4]
test byte [eax + 0x28], 0x20
je 0x7c815f
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x7c99f0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
call fcn.0079b120
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x24]
test ah, 0x10
je 0x7ca1b0
mov byte [ebp + 0x35], 0xad
mov edx, eax
mov ebx, dword [esp + 0x7c]
shr edx, 0x10
and edx, 1
mov dword [ebp + 0x38], ebx
mov byte [ebp + 0x36], dl
test al, 0xf
jne 0x7c9a1e
mov byte [ebp + 0x37], 1
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x14], 1
test ebx, ebx
je 0x7c8f6a
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], 2
jmp 0x7c8f6a
sub esp, 8
mov ecx, dword [ebp + 4]
mov edx, 0x25
push 0
push 0
mov eax, dword [esp + 0x54]
call fcn.00782fd0
add esp, 0x10
mov esi, eax
mov dword [esp + 0x24], 0
jmp 0x7c8c69
test ah, 4
jne 0x7ca6e0
mov ebp, dword [esi + 0x38]
test ebp, ebp
jne 0x7c7794
test al, 0x40
jne 0x7c9b30
cmp word [esp + 0x6c], 0
jne 0x7c9b30
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x20]
lea eax, [edi + edi*8]
cmp byte [ecx + 0x2e], 0
mov edx, dword [edx + eax*8 + 0x34]
mov eax, 0x60
je 0x7c9aca
mov dword [ecx + 0x14], edx
mov eax, 0x61
sub esp, 8
push eax
push esi
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
call fcn.00792d60
add esp, 0x10
mov eax, dword [esp + 4]
cmp byte [eax + 0x2e], 0
jne 0x7c9afa
cmp word [esi + 0x2a], 0x3f
jg 0x7c9afa
test byte [esi + 0x24], 0xe0
je 0x7cb90d
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx + 0x6c]
mov eax, dword [eax + 0x24]
test edx, edx
jle 0x7c7794
mov ebp, dword [ecx + 0x68]
lea edx, [edx + edx*4]
movzx ecx, byte [esp + 0x28]
lea edx, [ebp + edx*4]
mov word [edx - 0x12], cx
jmp 0x7c7794
sub esp, 8
mov ecx, dword [esi + 0x1c]
push dword [esi]
push 0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
call fcn.00782cb0
mov eax, dword [esp + 0x24]
add esp, 0x10
mov eax, dword [eax + 0x24]
jmp 0x7c7794
mov ecx, dword [esp + 0x48]
cmp word [ecx + 0x2a], 0x3f
jle 0x7c8ba3
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov eax, 0x3f
lea esi, [esi]
mov word [esi + ebx*2], ax
movsx edx, word [ecx + 0x2a]
add eax, 1
mov dword [edi + ebx*4], str.BINARY
add ebx, 1
cmp eax, edx
jl 0x7c9b80
mov eax, dword [esp + 0x24]
lea eax, [eax + ebx*2]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
lea eax, [eax + ebx*4]
mov edi, eax
jmp 0x7c8ba3
mov esi, dword [esp + 0x20]
lea eax, [edi + edi*8]
mov ecx, dword [esp + 0x16c]
mov eax, dword [esi + eax*8 + 0x18]
mov eax, dword [eax + 8]
cmp ebp, eax
je 0x7c9bde
test eax, eax
je 0x7c9bde
nop
mov eax, dword [eax + 0x14]
add ecx, 1
test eax, eax
je 0x7c9bde
cmp ebp, eax
jne 0x7c9bd0
mov eax, dword [esp + 4]
mov edx, 0x61
mov dword [eax + 0x18], ecx
mov dword [ebx + 8], ecx
jmp 0x7c77fa
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0xc]
test byte [eax + 0x24], 0x80
jne 0x7ca310
mov ebx, dword [esp + 4]
movzx eax, word [ebx + 0x28]
test ah, 4
jne 0x7ca760
test ah, 0x10
je 0x7c9c32
cmp byte [ebx + 0x2e], 1
je 0x7ca760
mov eax, dword [esp + 0x14]
cmp word [eax + 0x28], 0
je 0x7ca760
mov edi, dword [esp + 4]
sub esp, 8
mov edx, 0x85
mov ebx, dword [edi]
mov esi, dword [ebx + 8]
or byte [edi + 0x30], 1
push dword [esp + 0x50]
push 0
mov eax, esi
mov ecx, dword [esp + 0x8c]
call fcn.00782fd0
add esp, 0x10
test byte [edi + 0x28], 0x20
je 0x7cb68f
mov eax, dword [ebx + 0x74]
test eax, eax
cmove eax, ebx
mov eax, dword [eax + 0x50]
test eax, eax
je 0x7cb7d6
mov edx, dword [ebp]
test edx, edx
je 0x7c99d0
jmp 0x7ca40a
mov eax, dword [esp]
mov edx, dword [eax + 0x2c]
lea ecx, [edx + 1]
mov dword [esp + 8], ecx
mov dword [eax + 0x2c], ecx
jmp 0x7c8cce
mov eax, edi
call fcn.00762450
test eax, eax
je 0x7c7da0
mov eax, dword [esp + 0x30]
sub esp, 8
mov edx, 0x32
push 0
lea ecx, [eax + ebx]
mov eax, dword [esp + 0x7c]
push dword [eax + 0xc]
mov eax, dword [esp + 0x70]
call fcn.00782fd0
add esp, 0x10
jmp 0x7c7da0
sub esp, 8
lea eax, [esi + 1]
mov edx, 5
push 0
push eax
mov ebx, dword [esp + 0x54]
mov eax, ebx
call fcn.00782fd0
mov eax, dword [ebx + 0x6c]
add esp, 0x10
test eax, eax
jle 0x7c8ddc
mov ecx, dword [ebx + 0x68]
lea edx, [eax + eax*4]
mov ebx, 3
lea edx, [ecx + edx*4]
mov word [edx - 0x12], bx
jmp 0x7c8ddc
mov eax, dword [esp + 8]
test byte [eax + 0x28], 0x20
jne 0x7c74b7
mov ebx, dword [edi + 0x18]
mov esi, dword [ebx + 0x38]
test esi, esi
jne 0x7c74b7
test byte [edi + 0x30], 2
jne 0x7c74b7
mov edx, dword [edi + 0x34]
mov esi, dword [esp + 0x14]
add eax, 0x50
xor ecx, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edx
mov word [esi + 0x2a], cx
mov ecx, 0xffffffff
mov dword [esi + 0x24], 0
push 0
push 0x82
push 0
push 0
call fcn.00798420
add esp, 0x10
test eax, eax
je 0x7cb6e2
mov edx, dword [esi + 0x30]
mov dword [esi + 0x24], 0x1101
mov dword [edx], eax
mov eax, 1
mov word [esi + 0x28], ax
mov eax, 1
mov word [esi + 0x18], ax
mov eax, 0x21
mov word [esi + 0x14], ax
mov eax, dword [esp + 0x14]
mov ebx, 1
mov esi, 1
mov word [eax + 0x16], bx
mov ebx, dword [esp + 8]
mov dword [ebx + 0x338], eax
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0
mov eax, dword [esp + 0x18]
mov word [ebx + 0x34], si
mov dword [ebx + 0x2f4], eax
mov eax, dword [ebx + 8]
test eax, eax
je 0x7c9df0
mov eax, dword [eax]
mov byte [ebx + 0x2d], al
mov eax, dword [esp + 8]
test byte [eax + 0x29], 1
je 0x7c7682
mov byte [eax + 0x2f], 1
jmp 0x7c7682
mov eax, dword [esp + 0x20]
cmp dword [eax], 1
jne 0x7ca24d
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x34]
mov edi, dword [eax + 0x18]
mov eax, dword [esp + 0x164]
mov dword [esp + 8], edx
mov esi, dword [eax]
test esi, esi
jle 0x7c9e94
mov dword [esp + 0x14], edi
lea ecx, [eax + 4]
xor ebx, ebx
mov edi, edx
mov eax, dword [ecx]
test eax, eax
je 0x80aee7
mov edx, dword [eax + 4]
test edx, 0x41000
je 0x7c9e7d
and edx, 0x40000
je 0x7c9f70
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 4]
test eax, eax
je 0x80aee7
mov edx, dword [eax + 4]
test edx, 0x41000
jne 0x7c9e58
cmp byte [eax], 0xa4
je 0x7ca040
add ebx, 1
add ecx, 0x14
cmp ebx, esi
jne 0x7c9e43
mov edi, dword [esp + 0x14]
mov edi, dword [edi + 8]
test edi, edi
je 0x7ca24d
mov eax, ebp
mov ebp, edi
mov edi, dword [esp + 0x164]
mov byte [esp + 0x3c], al
jmp 0x7c9ebb
mov ebp, dword [ebp + 0x14]
test ebp, ebp
je 0x7ca248
cmp byte [ebp + 0x36], 0
je 0x7c9eb0
cmp word [ebp + 0x32], 0
je 0x7c9f9c
xor esi, esi
jmp 0x7c9edf
movzx eax, word [ebp + 0x32]
add esi, 1
cmp esi, eax
jge 0x7c9f94
push ebp
mov ecx, esi
push 2
push 0xffffffffffffffff
push 0xffffffffffffffff
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
call fcn.00798420
add esp, 0x10
test eax, eax
jne 0x7c9ed0
mov eax, dword [ebp + 0x20]
mov ebx, dword [edi]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x18], eax
test ebx, ebx
jle 0x7c9f90
lea eax, [esi + esi]
mov dword [esp + 0x14], esi
xor ebx, ebx
mov dword [esp + 0x24], eax
mov esi, eax
nop
lea eax, [ebx + ebx*4]
mov edx, dword [edi + eax*4 + 4]
test edx, edx
je 0x80af00
mov ecx, dword [edx + 4]
mov eax, edx
test ecx, 0x41000
jne 0x7c9f59
jmp 0x7c9f80
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 4]
test eax, eax
je 0x80af00
mov ecx, dword [eax + 4]
test ecx, 0x41000
je 0x7c9f80
and ecx, 0x40000
jne 0x7c9f40
mov eax, dword [eax + 0xc]
jmp 0x7c9f46
mov eax, dword [eax + 0xc]
jmp 0x7c9e45
cmp byte [eax], 0xa4
je 0x7c9fb0
add ebx, 1
cmp ebx, dword [edi]
jl 0x7c9f20
mov esi, dword [esp + 0x14]
movzx eax, word [ebp + 0x32]
cmp esi, eax
jne 0x7c9eb0
movzx ebp, byte [esp + 0x3c]
mov eax, dword [esp + 4]
mov byte [eax + 0x2f], 1
jmp 0x7c7493
mov ecx, dword [ebp + 4]
movzx ecx, word [ecx + esi]
cmp word [eax + 0x20], cx
jne 0x7c9f85
mov ecx, dword [esp + 8]
cmp ecx, dword [eax + 0x1c]
jne 0x7c9f85
mov eax, dword [esp]
call fcn.00793eb0
test eax, eax
je 0x7cb30c
mov ecx, dword [eax]
mov dword [esp + 0x28], ebp
xor eax, eax
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x18]
mov ebp, ecx
jmp 0x7ca006
movzx ecx, byte [ecx + 0xbfad00]
cmp byte [edx + 0xbfad00], cl
jne 0x7ca565
add eax, 1
movzx edx, byte [ebp + eax]
movzx ecx, byte [ebx + eax]
cmp edx, ecx
jne 0x7c9ff0
test edx, edx
jne 0x7ca003
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 4]
movsx eax, word [eax + ebx]
test eax, eax
jns 0x7cb0d0
cmp eax, 0xffffffff
jne 0x7c9f90
jmp 0x7c9ed0
cmp edi, dword [eax + 0x1c]
jne 0x7c9e86
cmp word [eax + 0x20], 0
jns 0x7c9e86
jmp 0x7c9fa1
mov eax, dword [esp + 0x14]
sub esp, 4
mov ecx, ebp
mov eax, dword [eax + 0x30]
mov esi, dword [eax]
mov eax, dword [esp + 4]
mov edi, dword [eax + 0x2c]
mov edx, esi
mov dword [esp + 4], edi
lea ebx, [edi + 1]
mov dword [eax + 0x2c], ebx
push ebx
push dword [esp + 0x30]
push 0
mov dword [esp + 0x10], eax
call fcn.007c6b20
add esp, 0x10
mov edi, eax
cmp ebx, eax
je 0x7ca0a8
test ebx, ebx
je 0x7ca0a8
mov eax, dword [esp]
mov edx, ebx
call fcn.0076e4a0
sub esp, 8
mov edx, 0x1f
push edi
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
add esp, 0x10
and eax, dword [ebp + 0x50]
and edx, dword [ebp + 0x54]
mov byte [ebp + 0x35], 0xad
or edx, eax
jne 0x7c9634
or word [esi + 0xa], 4
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], 2
jmp 0x7c8f6a
xor eax, eax
xor edi, edi
and ecx, 0x10
je 0x7c96f0
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + 0x30]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x44], eax
test ecx, ecx
je 0x7c9704
mov eax, dword [esp + 0x44]
test eax, eax
je 0x7ca660
mov eax, edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x44], eax
jmp 0x7c970c
mov eax, dword [esp + 0x16c]
mov edx, 0x5f
mov dword [ebx + 8], eax
mov ecx, eax
jmp 0x7c77fa
and edx, 0x20
je 0x7cb155
mov byte [ebp + 0x35], 0xad
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], 2
jmp 0x7c8f6a
mov dword [esp + 0x70], 0
mov edx, dword [esp + 0x88]
mov dword [esp + 0x90], 0
jmp 0x7c7ad6
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x60], eax
jmp 0x7c7e2b
mov esi, dword [esp + 0x28]
test esi, esi
sete dl
add edx, 4
mov byte [ebp + 0x35], dl
jmp 0x7c9a04
jne 0x7c7bb9
movzx edx, byte [esp + 0x60]
and edx, 1
test dl, dl
je 0x7c7bb9
movzx ecx, byte [esp + 0xa4]
mov ebx, dword [esp + 0x8c]
mov byte [esp + 0xa4], 0
movzx edx, byte [esp + 0xa8]
mov byte [esp + 0x74], cl
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x90], ebx
movzx ebx, word [esp + 0x98]
mov dword [esp + 0x8c], ecx
mov word [esp + 0xa8], bx
mov word [esp + 0x98], dx
jmp 0x7c7bb9
mov byte [esp + 0xa4], 0
mov dword [esp + 0x8c], 0
jmp 0x7c7b33
movzx ebp, byte [esp + 0x3c]
mov esi, dword [esp + 0x160]
test esi, esi
jne 0x7c7493
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x164]
or word [eax + 0x28], 0x80
mov dword [eax + 8], edi
jmp 0x7c7493
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + 0x6c]
test edx, edx
je 0x7ca740
mov esi, dword [esp + 0x48]
mov byte [ebp + 0x35], 4
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x38], esi
mov dword [esp + 0x14], 2
jmp 0x7c8f6a
cmp byte [esp + 0x74], 0
je 0x7c8093
mov edi, dword [esp + 0x84]
test edi, edi
je 0x7cb033
mov eax, dword [esp + 0x88]
add eax, 1
mov dword [esp + 0x9c], eax
jmp 0x7c8093
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x1c], 0xffffffff
jmp 0x7c76ea
mov eax, dword [esp + 0x3c]
jmp 0x7c79da
mov ecx, 0xfffffffe
mov eax, 0xffffffff
jmp 0x7c8759
mov edi, dword [esp + 0x7c]
cmp dword [esp + 0x48], edi
je 0x7ca3fb
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x7ca33b
jmp 0x80aed5
mov ebx, dword [ebx + 0x14]
test ebx, ebx
je 0x80aed5
movzx eax, byte [ebx + 0x38]
and eax, 3
cmp al, 2
jne 0x7ca330
movzx edx, word [ebx + 0x32]
mov eax, dword [esp]
call fcn.0076e4d0
cmp word [ebx + 0x32], 0
mov dword [esp + 0x30], eax
je 0x7cb8e9
mov dword [esp + 0x4c], ebp
mov edi, dword [esp + 0x44]
xor esi, esi
lea esi, [esi]
nop
mov eax, dword [ebx + 4]
movzx edx, word [edi + 0x34]
movzx ecx, word [eax + esi*2]
test edx, edx
je 0x7ca3a2
mov ebp, dword [edi + 4]
xor eax, eax
cmp cx, word [ebp]
jne 0x7ca39b
jmp 0x7ca3a7
cmp cx, word [ebp + eax*2]
je 0x7cb0f0
add eax, 1
cmp eax, edx
jne 0x7ca390
mov eax, 0xffffffff
sub esp, 8
mov ecx, dword [esp + 0x38]
lea edx, [ecx + esi]
add esi, 1
push edx
mov edx, 0x59
push eax
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
movzx eax, word [ebx + 0x32]
add esp, 0x10
cmp esi, eax
jl 0x7ca370
mov ebp, dword [esp + 0x4c]
sub esp, 4
mov edx, 0x1d
push eax
push dword [esp + 0x38]
push dword [esp + 0x14]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x20]
call fcn.00783160
add esp, 0x10
mov eax, dword [ebp]
mov dword [esp + 0x30], eax
test eax, eax
je 0x7c99c2
mov dword [esp + 0x30], 0
jmp 0x7c99f0
mov ecx, dword [edx + 0x14]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx]
cmp ecx, 1
jle 0x7c97d8
cmp dword [esp + 0x28], 1
sbb edi, edi
and edi, 0xfffffffe
add edi, 0x38
jmp 0x7c97f7
sub esp, 8
mov edx, 0x76
push 0
push 1
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
mov eax, dword [esp + 0x24]
add esp, 0x10
mov eax, dword [eax + 0x24]
jmp 0x7c8136
sub esp, 8
mov edx, 0x12
push 0
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x58], eax
add eax, 2
push eax
mov ecx, dword [esp + 0x94]
mov eax, edi
call fcn.00782fd0
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x38]
add esp, 0xc
mov esi, dword [esp + 0xa0]
movzx edx, byte [eax + ebx*2 + 0xbf52a0]
add esi, eax
mov eax, edi
push esi
push dword [esp + 0x38]
push dword [esp + 0x6c]
mov ecx, dword [esp + 0x8c]
call fcn.00783160
add esp, 0x10
jmp 0x7c8124
sub esp, 4
push pe_nt_image_headers32
push str.at_most__d_tables_in_a_join
push dword [esp + 0xc]
call fcn.0078f9f0
add esp, 0x10
mov dword [esp + 4], 0
jmp 0x7c84cf
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x7cb626
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x70], 1
test byte [eax + 0xc], 0x28
setne al
movzx eax, al
mov dword [esp + 0x80], eax
cmp byte [esp + 0xa4], 0
jne 0x7cb202
mov ebx, dword [esp + 0x84]
test ebx, ebx
jne 0x7cb5e0
mov edi, dword [esp + 0x88]
mov dword [esp + 0x90], 0
mov ecx, edi
jmp 0x7c7f43
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x30]
jmp 0x7c9f85
mov ebp, dword [esp + 0x6c]
jmp 0x7c8e49
mov esi, dword [esp + 0x48]
mov byte [ebp + 0x35], 5
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x38], esi
jmp 0x7c9836
sub esp, 8
mov ecx, 1
mov edx, 0x45
push 0
push dword [esp + 0x90]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
add esp, 0xc
mov edx, ebx
push edi
push dword [esp + 0x38]
push dword [esp + 0x6c]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x8c]
mov eax, ebx
call fcn.00783160
pop eax
pop edx
push 0
mov eax, dword [ebx + 0x6c]
xor ecx, ecx
mov edx, 0xb
mov dword [esp + 0xa0], eax
add eax, 2
push eax
mov eax, ebx
call fcn.00782fd0
add esp, 0xc
xor eax, eax
cmp edi, 1
setg al
sub edi, dword [esp + 0x74]
push edi
movzx edx, byte [esi + eax*4 + 2]
mov eax, ebx
push dword [esp + 0x38]
push dword [esp + 0x6c]
mov ecx, dword [esp + 0x8c]
call fcn.00783160
add esp, 0x10
jmp 0x7c7fca
sub esp, 8
mov edx, 0x76
push 0
push 0
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
add esp, 0x10
jmp 0x7c7f7e
mov eax, dword [ebx + 4]
mov dword [ebx + 8], eax
jmp 0x7c7840
mov edx, 0x21
sub esp, 8
push 0
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
add esp, 0x10
mov dword [esp + 0x44], edi
jmp 0x7c978c
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x60]
mov edx, 0xc13eac
mov eax, dword [eax + 0x6c]
jmp 0x7c7ca7
sub esp, 8
mov ecx, edi
mov edx, 0x25
push 0
push 0
mov esi, dword [esp + 0x70]
mov eax, esi
call fcn.00782fd0
pop eax
pop edx
push 0
push 0
mov edx, 0xb
mov eax, esi
xor ecx, ecx
call fcn.00782fd0
add esp, 0x10
mov edx, 0x19
mov esi, eax
jmp 0x7c7c54
mov ebp, dword [esi + 0x40]
test ebp, ebp
je 0x7ca6fc
mov eax, dword [esp + 0x50]
jmp 0x7ca6f7
mov ebp, dword [ebp + 0x18]
test ebp, ebp
je 0x7ca6fc
cmp eax, dword [ebp]
jne 0x7ca6f0
sub esp, 8
lea eax, [edi + edi*8]
mov edx, 0xa5
push 0
push 0
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + eax*8 + 0x34]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
mov ecx, ebp
mov dword [esp], 0xfffffff4
mov edx, eax
mov eax, dword [esp + 0x20]
call fcn.00774970
mov eax, dword [esp + 0x24]
add esp, 0x10
mov eax, dword [eax + 0x24]
jmp 0x7c7794
mov edi, dword [esp + 0x48]
mov byte [ebp + 0x35], 5
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x38], edi
mov dword [esp + 0x14], 2
jmp 0x7c8f6a
mov eax, dword [esp]
sub esp, 8
mov edx, 0x86
mov esi, dword [eax + 0x2c]
mov dword [esp + 0x38], esi
lea ebx, [esi + 1]
mov dword [eax + 0x2c], ebx
push 0
push ebx
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x8c]
mov eax, edi
call fcn.00782fd0
pop eax
pop edx
push ebx
push 0
mov ecx, dword [esp + 0x58]
mov edx, 0x20
mov eax, edi
call fcn.00782fd0
add esp, 0x10
jmp 0x7ca3fb
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x78]
add edx, dword [esp + 0x88]
call fcn.007697d0
mov dword [esp + 0x6c], eax
jmp 0x7c7e15
mov dword [esp + 0x88], 0
mov dword [esp + 0x94], 0
sub esp, 8
xor ecx, ecx
mov edx, 0x45
xor ebx, ebx
push 0
xor esi, esi
push dword [esp + 0x8c]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
mov dword [esp + 0xac], eax
add esp, 0x10
mov eax, dword [esp + 4]
cmp dword [eax + 0x5c], 1
jle 0x7ca8a4
mov dword [esp + 0x14], ebp
mov edi, dword [esp + 4]
mov ebp, dword [esp + 0x98]
lea esi, [esi]
lea eax, [ebx + ebx*2]
shl eax, 4
add eax, dword [edi + 0x64]
cmp ebp, eax
je 0x7ca874
test byte [eax + 0xa], 6
jne 0x7ca874
test word [eax + 0xc], 0x1fff
je 0x7ca874
mov eax, dword [eax]
test eax, eax
je 0x7ca866
sub esp, 0xc
mov edx, eax
xor ecx, ecx
push 0
mov eax, dword [esp + 0x5c]
call fcn.00779c70
add esp, 0x10
mov ecx, eax
mov eax, dword [esp]
mov edx, esi
call fcn.00790520
mov esi, eax
add ebx, 1
cmp ebx, dword [edi + 0x5c]
jl 0x7ca830
mov ebp, dword [esp + 0x14]
test esi, esi
je 0x7ca8a4
sub esp, 0xc
xor ecx, ecx
mov edx, 0x1002c
push esi
mov eax, dword [esp + 0x10]
call fcn.007903a0
mov dword [esp + 0x80], eax
add esp, 0x10
jmp 0x7ca8ac
mov dword [esp + 0x70], 0
mov eax, dword [esp + 4]
sub esp, 4
movzx eax, word [eax + 0x28]
mov word [esp + 0x18], ax
mov ebx, eax
push str.MULTI_INDEX_OR
and bx, 0x400
push 1
mov esi, dword [esp + 0xc]
or ebx, 0x20
push esi
call fcn.0079b910
add esp, 0x10
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jle 0x7cb6b9
movsx eax, bx
mov dword [esp + 0xa0], ebp
xor edi, edi
mov ebp, esi
mov dword [esp + 0x60], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], eax
jmp 0x7ca9c1
sub esp, 8
mov edx, 0xc
push 0
push dword [esp + 0x90]
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
add esp, 0x10
mov eax, dword [esp + 0x30]
mov ebx, 1
test byte [eax + 0x30], 2
mov eax, dword [eax + 0x338]
cmove ebx, dword [esp + 0x60]
mov dword [esp + 0x60], ebx
test byte [eax + 0x25], 2
je 0x7ca96b
mov eax, dword [eax + 0x20]
test edi, edi
je 0x7cab50
cmp eax, dword [esp + 0x78]
je 0x7cab50
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x30]
call fcn.00784540
mov eax, dword [ebp + 0xd4]
test eax, eax
je 0x7ca9aa
mov edx, dword [ebp + 8]
jns 0x7ca991
mov eax, dword [edx + 0x6c]
sub eax, 1
mov ebx, dword [edx]
mov ecx, 0xc13eac
cmp byte [ebx + 0x51], 0
jne 0x7ca9a7
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x68]
lea ecx, [eax + ecx*4]
mov eax, dword [ecx + 8]
mov dword [ebp + 0xd4], eax
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
cmp dword [eax + 0xc], edi
jle 0x7cab80
mov ebx, dword [esp + 0x28]
lea eax, [edi + edi*2]
shl eax, 4
add eax, dword [ebx + 0x14]
lea ebx, [edi + 1]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x48]
cmp ebx, dword [eax + 0x14]
je 0x7ca9e4
test byte [eax + 0xd], 4
je 0x7ca9b0
mov ebx, dword [eax]
mov eax, dword [esp + 0x70]
test eax, eax
je 0x7ca9f3
mov dword [eax + 0xc], ebx
mov ebx, eax
push dword [esp + 0x14]
push str.INDEX__d
push 1
push ebp
call fcn.0079b910
push dword [esp + 0x84]
mov ecx, ebx
mov eax, ebp
push dword [esp + 0x90]
push 0
push 0
mov edx, dword [esp + 0x8c]
call fcn.007c7140
mov dword [esp + 0x50], eax
add esp, 0x20
test eax, eax
je 0x7ca9b0
mov eax, dword [ebp + 0x74]
test eax, eax
cmove eax, ebp
cmp byte [eax + 0xc7], 2
jne 0x7caa63
mov eax, dword [esp + 0x30]
sub esp, 0xc
push 0
mov edx, dword [esp + 0x7c]
lea ecx, [eax + 0x2f0]
mov eax, ebp
call fcn.0079ce50
add esp, 0x10
mov eax, dword [esp + 4]
test byte [eax + 0x28], 0x10
jne 0x7ca910
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x44]
mov eax, dword [eax + 0xc]
sub eax, 1
cmp eax, edi
mov eax, 0xffffffff
cmovne eax, edi
mov esi, eax
mov dword [esp + 0x8c], eax
test byte [edx + 0x24], 0x80
jne 0x7cac90
sub esp, 8
push dword [esp + 0x90]
push 0xffffffffffffffff
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x58]
mov eax, ebx
call fcn.007bfbd0
pop eax
pop edx
push dword [esp + 0x90]
push 0
mov eax, ebx
mov edx, 0x2d
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x20], ebx
call fcn.00782fd0
mov ecx, dword [esp + 0x20]
add esp, 0x10
mov ebx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x51], 0
jne 0x7caafa
mov edx, dword [ecx + 0x68]
lea eax, [ebx + ebx*4]
lea eax, [edx + eax*4]
mov byte [eax + 1], 0xfd
mov dword [eax + 0x10], esi
sub esp, 8
mov edx, 0xc
push 0
push dword [esp + 0x90]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x90]
mov eax, esi
call fcn.00782fd0
add esp, 0x10
test ebx, ebx
je 0x7ca934
mov eax, dword [esi + 0x6c]
mov ecx, dword [esi]
lea edx, [eax - 1]
cmovs ebx, edx
cmp byte [ecx + 0x51], 0
mov edx, 0xc13eac
jne 0x7cab47
mov edx, dword [esi + 0x68]
lea ecx, [ebx + ebx*4]
lea edx, [edx + ecx*4]
mov dword [edx + 8], eax
jmp 0x7ca934
mov edi, dword [esp + 0x44]
mov ebx, eax
mov dword [esp + 0x78], eax
test byte [edi + 0x24], 0x80
je 0x7ca973
movzx eax, byte [eax + 0x38]
and eax, 3
cmp al, 2
mov eax, 0
cmovne eax, ebx
mov dword [esp + 0x78], eax
jmp 0x7ca973
mov ebx, dword [esp]
mov ebp, dword [esp + 0xa0]
mov eax, dword [ebx + 0xd4]
test eax, eax
je 0x7cabb3
mov edx, dword [ebx + 8]
test eax, eax
js 0x7caff0
mov ebx, dword [edx]
mov ecx, 0xc13eac
cmp byte [ebx + 0x51], 0
je 0x7cafa6
mov eax, dword [ecx + 8]
mov esi, dword [esp]
mov dword [esi + 0xd4], eax
mov eax, dword [esp + 0x78]
mov dword [ebp + 0x40], eax
test eax, eax
je 0x7cabce
mov eax, dword [esp + 0x74]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x70]
test eax, eax
je 0x7cabe8
mov dword [eax + 0xc], 0
mov edx, eax
mov eax, dword [esp + 0x4c]
call fcn.00776ad0
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x9c]
mov eax, dword [esi + 0x6c]
test ebx, ebx
mov ecx, dword [esi]
lea edx, [eax - 1]
cmovns edx, ebx
cmp byte [ecx + 0x51], 0
mov ebx, edx
mov edx, 0xc13eac
jne 0x7cac16
mov edx, dword [esi + 0x68]
lea ecx, [ebx + ebx*4]
lea edx, [edx + ecx*4]
sub esp, 8
mov dword [edx + 4], eax
xor ecx, ecx
mov edx, 0xb
push 0
push dword [ebp + 0xc]
mov edi, dword [esp + 0x20]
mov eax, edi
call fcn.00782fd0
mov edx, dword [esp + 0x94]
mov eax, edi
call fcn.00782e20
add esp, 0x10
mov eax, dword [esp + 4]
cmp byte [eax + 0x2c], 1
jbe 0x7cac5a
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x7cafb4
mov edi, dword [esp + 0x60]
test edi, edi
jne 0x7c9634
mov ecx, dword [esp + 0x98]
lea edx, [ebp + 0x50]
mov eax, ebp
call fcn.0076f530
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], 2
jmp 0x7c8f6a
mov eax, dword [esp + 0x44]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x7cacab
jmp 0x80aede
mov ebx, dword [ebx + 0x14]
test ebx, ebx
je 0x80aede
movzx eax, byte [ebx + 0x38]
and eax, 3
cmp al, 2
jne 0x7caca0
movzx esi, word [ebx + 0x32]
mov eax, ebp
mov edx, esi
mov dword [esp + 0x90], esi
call fcn.0076e4d0
mov dword [esp + 0xa4], eax
mov edx, eax
mov eax, esi
lea esi, [esi + esi]
mov ecx, esi
xor esi, esi
test eax, eax
je 0x7cad2a
mov dword [esp + 0xa8], edi
mov edi, edx
mov dword [esp + 0xac], ebp
mov ebp, ecx
mov eax, dword [ebx + 4]
sub esp, 8
push edi
add edi, 1
movsx eax, word [eax + esi]
add esi, 2
push eax
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x20]
call fcn.007bfbd0
add esp, 0x10
cmp ebp, esi
jne 0x7cacf2
mov edi, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov ecx, dword [esp + 0x8c]
test ecx, ecx
jne 0x7cb322
sub esp, 8
mov edx, 0x5b
push dword [esp + 0x90]
push dword [esp + 0x9c]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0xb4]
mov eax, ebx
mov ecx, esi
call fcn.00782fd0
add esp, 0xc
mov eax, ebx
mov edx, 0x83
push dword [esp + 0x94]
xor ebx, ebx
push esi
push dword [esp + 0x94]
mov ecx, dword [esp + 0xa4]
call fcn.00783160
add esp, 0x10
cmp dword [esp + 0x90], 1
je 0x7cb66e
mov eax, dword [esp + 0x90]
cmp eax, dword [ebp + 0x1c]
jle 0x7caafa
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0xa4]
mov dword [ebp + 0x20], eax
jmp 0x7caafa
add edi, dword [esp + 0x24]
add eax, dword [esp + 0x28]
mov dword [esp + 0x14], edi
mov edi, eax
jmp 0x7c8b8c
xor eax, eax
xor edi, edi
jmp 0x7c8b00
mov edi, eax
sub edi, dword [esp + 0x3c]
xor ecx, ecx
lea ebx, [edi - 1]
mov dword [esp + 0x14], edi
lea eax, [ebx + ebx*8]
lea edx, [eax*8 + 0x50]
mov eax, dword [esp + 0x4c]
call fcn.007693f0
mov edi, eax
test eax, eax
je 0x7c920e
mov edx, dword [esp + 0x24]
lea eax, [ebx + 1]
movzx eax, al
lea esi, [edx + esi + 8]
mov dword [edi + 4], eax
mov dword [edi], eax
mov edx, dword [esi]
lea eax, [edi + 8]
mov dword [edi + 8], edx
mov edx, dword [esi + 0x44]
mov dword [edi + 0x4c], edx
mov dword [esp + 0x6c], edi
add edi, 0xc
and edi, 0xfffffffc
sub eax, edi
lea ecx, [eax + 0x48]
sub esi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
add eax, 8
mov dword [esp + 0x30], eax
test ebx, ebx
jle 0x7c993a
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x6c]
lea edx, [ebp + 0x8c]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x30]
lea ecx, [edi + edi*8]
lea eax, [esi + 0x50]
lea ebx, [esi + ecx*8 + 8]
lea esi, [esi]
movzx ecx, byte [edx]
lea edi, [eax + 4]
add edx, 0x58
and edi, 0xfffffffc
lea ecx, [ecx + ecx*8]
lea esi, [ebp + ecx*8]
mov ecx, dword [esi]
mov dword [eax], ecx
mov ecx, dword [esi + 0x44]
mov dword [eax + 0x44], ecx
mov ecx, eax
add eax, 0x48
sub ecx, edi
sub esi, ecx
add ecx, 0x48
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
cmp ebx, eax
jne 0x7cae80
mov ebp, dword [esp + 0x14]
jmp 0x7c993a
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp eax, 1
jle 0x7c9737
mov eax, dword [esp]
movzx eax, byte [eax + 0x13]
test al, al
je 0x7cb0b5
mov edi, dword [esp]
sub eax, 1
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x94]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
sub esp, 0xc
mov dword [esp + 0xfc], eax
mov ecx, eax
push 1
mov eax, dword [esp + 0x10]
call fcn.007c0270
movzx eax, byte [esi]
sub eax, 0x37
and eax, 2
or eax, 1
movzx edx, byte [esp + eax + 0x11c]
add esp, 0x10
jmp 0x7c9761
movzx esi, word [esp + 0x6a]
test esi, 8
je 0x7c7730
mov edi, dword [esp + 0x20]
mov ecx, dword [edi + 0x18]
mov ebx, dword [ecx + 0x38]
test ebx, ebx
jne 0x7c7730
test ah, 0x20
je 0x7caf5a
and esi, 0x10
je 0x7c7730
mov ebx, 2
jmp 0x7c771f
sub esp, 8
mov ecx, edi
mov edx, 0x32
push 0
push dword [esp + 0x6c]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
add esp, 0x10
jmp 0x7c7ee6
sub esp, 8
mov ecx, edi
mov edx, 0x32
push 0
push dword [esp + 0x6c]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
add esp, 0x10
jmp 0x7c802d
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x68]
lea ecx, [eax + ecx*4]
jmp 0x7cabb0
mov edx, eax
mov eax, dword [esp + 0x4c]
call fcn.00767880
jmp 0x7cac5a
cmp byte [eax + 0x2f], 2
je 0x7c7840
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x7c7840
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov esi, 2
lea eax, [ecx + eax*4]
mov word [eax - 0x12], si
jmp 0x7c7840
mov eax, dword [edx + 0x6c]
sub eax, 1
jmp 0x7cab9f
test al, 0x40
je 0x7c7730
movzx ebx, byte [esp + 0x28]
test byte [esp + 0x6a], 8
mov ecx, 8
cmovne ebx, ecx
and eax, 0xffffffbf
mov dword [edx + 0x24], eax
mov byte [esp + 0x28], bl
jmp 0x7c7730
mov edx, dword [esp + 0x60]
lea esi, [eax - 1]
mov edx, dword [edx + 0x68]
jmp 0x7c7ca1
sub esp, 8
xor ecx, ecx
mov edx, 0x48
push 0
mov eax, dword [esp + 0x94]
add eax, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x20]
call fcn.00782fd0
add esp, 0x10
mov dword [esp + 0x80], 0
jmp 0x7ca2bd
mov esi, dword [esp]
sub esp, 8
xor ecx, ecx
mov edx, 0x48
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x1c], eax
add eax, 1
mov dword [esp + 0x9c], eax
mov dword [esi + 0x2c], eax
push 0
push eax
mov eax, dword [esp + 0x20]
call fcn.00782fd0
add esp, 0x10
mov eax, dword [esp]
mov edi, dword [eax + 0x2c]
mov ebx, edi
mov dword [esp + 0x14], edi
add ebx, 1
mov dword [esp + 0x88], ebx
mov dword [eax + 0x2c], ebx
jmp 0x7ca7e6
mov eax, dword [esp]
mov edi, dword [eax + 0x2c]
add edi, 1
mov dword [esp + 0x14], edi
mov dword [eax + 0x2c], edi
jmp 0x7caef2
mov edx, dword [ebp + 0xc]
lea eax, [eax + eax*4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax*4]
cmp byte [eax + 0xc], 0
jne 0x7c9ed0
jmp 0x7c9f90
cwde
jmp 0x7ca3a7
xor edx, edx
mov eax, 0x42
jmp 0x7cb11d
movzx eax, byte [eax + 0xbfad00]
cmp byte [ecx + 0xbfad00], al
jne 0x7c8259
movzx eax, byte [edx + 0xbfab1d]
add edx, 1
movzx ecx, byte [ebp + edx]
cmp ecx, eax
jne 0x7cb100
test ecx, ecx
jne 0x7cb113
jmp 0x7c8207
sub esp, 8
add eax, 3
mov edx, 0x14
push 0
push eax
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
add esp, 0x10
jmp 0x7c80dd
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
sub esp, 8
movzx eax, byte [ebx + 0xbf529b]
mov dword [ebp + 0x38], ecx
movzx edx, byte [ebx + 0xbf5299]
mov byte [ebp + 0x35], al
push 0
push dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
call fcn.00782fd0
mov byte [ebp + 0x37], 1
add esp, 0x10
add eax, 1
mov dword [ebp + 0x3c], eax
jmp 0x7c9634
mov ebx, dword [esp]
sub esp, 8
mov ecx, 1
mov edx, 0x45
mov dword [ebx + 0x2c], edi
mov dword [ebp + 0x2c], edi
push 0
push edi
mov edi, dword [esp + 0x20]
mov eax, edi
call fcn.00782fd0
mov eax, dword [edi + 0x6c]
mov dword [ebp + 0x30], eax
mov eax, dword [ebp + 0x2c]
lea edx, [eax + eax]
mov eax, dword [esp + 0x54]
add esp, 0x10
mov edi, dword [esp + 0x88]
mov dword [ebp + 0x2c], edx
mov eax, dword [eax + 0x1c]
cmp byte [eax + edi], 1
sete al
movzx eax, al
xor eax, dword [esp + 0x28]
or eax, edx
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x24]
mov eax, dword [ebx + 0x2c]
lea ebx, [eax + 1]
mov dword [esp + 0x30], ebx
jmp 0x7c7b1c
sub esp, 8
xor ecx, ecx
mov edx, 0x48
push 0
mov ebx, dword [esp + 0x94]
mov eax, dword [esp + 0x3c]
lea edi, [ebx + 1]
add eax, ebx
push eax
mov eax, dword [esp + 0x20]
call fcn.00782fd0
add esp, 0x10
mov ecx, ebx
mov dword [esp + 0x70], 0
mov dword [esp + 0x90], 1
mov dword [esp + 0x94], 1
jmp 0x7c7f43
mov eax, dword [edx + 0x14]
mov eax, dword [eax]
jmp 0x7caec3
mov edx, 0xffffffff
mov eax, 0xffffffff
xor ecx, ecx
mov dword [esp + 0x60], 0
jmp 0x7c891a
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x88]
mov edx, dword [ebx + 4]
movsx edx, word [edx + edi*2]
test edx, edx
js 0x7cb69c
mov ebx, dword [ebx + 0xc]
lea edx, [edx + edx*4]
mov esi, dword [ebx + 4]
lea edx, [esi + edx*4]
cmp byte [edx + 0xc], 0
sete byte [esp + 0xa4]
jmp 0x7c7b33
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp eax, 1
jg 0x7c9815
jmp 0x7c9807
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp eax, 1
jle 0x7c8082
mov dword [esp + 0x80], 1
jmp 0x7c8093
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp eax, 1
jle 0x7c7f25
mov ecx, edi
mov dword [esp + 0x70], 1
mov dword [esp + 0x90], 0
jmp 0x7c7f43
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax + 8]
jmp 0x7c9fd6
mov ebp, dword [esp + 0x6c]
jmp 0x7c99d8
sub esp, 8
mov edx, 0x1e
push dword [esp + 0xac]
push 0
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0xa4]
mov eax, esi
call fcn.00782fd0
add esp, 0x10
mov ebx, eax
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x7cb369
mov edx, dword [esi + 0x68]
lea eax, [ebx + ebx*4]
mov esi, dword [esp + 0x90]
lea eax, [edx + eax*4]
mov byte [eax + 1], 0xfd
mov dword [eax + 0x10], esi
mov esi, dword [esp + 0x8c]
test esi, esi
js 0x7cad8d
sub esp, 8
mov edx, 0x5b
push dword [esp + 0x90]
push dword [esp + 0x9c]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0xb4]
mov eax, esi
call fcn.00782fd0
add esp, 0xc
mov edx, 0x83
mov eax, esi
push dword [esp + 0x94]
push dword [esp + 0xac]
push dword [esp + 0x94]
mov ecx, dword [esp + 0xa4]
call fcn.00783160
mov eax, dword [esi + 0x6c]
add esp, 0x10
test eax, eax
jle 0x7cad8d
mov esi, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov edx, 0x10
shl eax, 2
add eax, dword [esi + 0x68]
mov word [eax - 0x12], dx
jmp 0x7cad8d
mov eax, dword [edx + 0x14]
mov eax, dword [eax]
jmp 0x7cb2b2
mov ecx, dword [edx + 0x14]
mov ecx, dword [ecx]
jmp 0x7ca41f
mov eax, dword [ebx + 0x14]
mov eax, dword [eax]
jmp 0x7cb2e9
mov eax, dword [ebx + 0x14]
mov eax, dword [eax]
jmp 0x7cb2c8
lea ebx, [eax + 0x1e8]
mov edx, dword [esp + 0x164]
mov eax, ebx
call fcn.00779ad0
mov esi, edx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0xc0]
mov edi, eax
mov dword [esp + 0x30], eax
test edx, edx
je 0x7cb45a
mov eax, ebx
call fcn.00779ad0
or edi, eax
or esi, edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x3c], esi
mov ebx, dword [esp + 4]
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x1c], 0xffffffff
movzx eax, byte [ebx + 0x2c]
sub eax, 1
mov dword [esp + 0x14], eax
test eax, eax
jle 0x7c76ea
lea eax, [ebx + 0x348]
mov dword [esp + 0x44], eax
jmp 0x7cb49b
sub dword [esp + 0x14], 1
je 0x7c76ea
imul eax, dword [esp + 0x14], 0x58
mov ebx, dword [esp + 4]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + eax + 0x338]
mov ebx, dword [ebx + 4]
movzx edx, byte [eax + 0x10]
mov dword [esp + 8], ebx
lea ecx, [edx + edx*8]
test byte [ebx + ecx*8 + 0x2c], 8
je 0x7cb490
cmp word [esp + 0x78], 0
jne 0x7cb4d2
test byte [eax + 0x25], 0x10
je 0x7cb490
mov edi, dword [eax + 8]
mov esi, dword [eax + 0xc]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
and ecx, esi
and eax, edi
or ecx, eax
jne 0x7cb490
mov eax, dword [esp + 0xbc]
mov ebx, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
lea ebp, [ebx + eax]
cmp ebx, ebp
jae 0x7cb8f0
lea edx, [edx + edx*8]
mov eax, ebx
mov dword [esp + 0x40], ebx
mov ebx, edx
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x2c]
and edx, edi
and ecx, esi
or ecx, edx
je 0x7cb53d
mov edx, dword [eax]
test byte [edx + 4], 1
je 0x7cb5cd
mov ecx, dword [esp + 8]
movsx edx, word [edx + 0x24]
cmp edx, dword [ecx + ebx*8 + 0x34]
jne 0x7cb5cd
add eax, 0x30
cmp ebp, eax
ja 0x7cb511
mov ebx, dword [esp + 0x40]
mov edx, edi
mov eax, esi
not edx
not eax
and edx, dword [esp + 0x18]
and eax, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x28]
mov edx, dword [ebx + 0x2c]
and eax, edi
and edx, esi
or edx, eax
je 0x7cb573
or word [ebx + 0xa], 4
add ebx, 0x30
cmp ebp, ebx
ja 0x7cb560
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x14]
movzx eax, byte [edi + 0x2c]
mov edx, eax
sub eax, 1
cmp eax, ebx
je 0x7cb5b9
sub eax, ebx
sub esp, 4
imul eax, eax, 0x58
push eax
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x4c]
add eax, ebx
push eax
mov eax, dword [esp + 0x80]
add eax, ebx
push eax
call sub.msvcrt.dll_memmove
movzx edx, byte [edi + 0x2c]
add esp, 0x10
mov eax, dword [esp + 4]
sub edx, 1
sub dword [esp + 0x54], 1
mov byte [eax + 0x2c], dl
jmp 0x7cb490
mov ebx, dword [esp + 0x40]
cmp ebp, eax
ja 0x7cb490
jmp 0x7cb548
sub esp, 8
xor ecx, ecx
mov edx, 0x48
push 0
mov ebx, dword [esp + 0x94]
mov eax, dword [esp + 0x3c]
lea edi, [ebx + 1]
add eax, ebx
push eax
mov eax, dword [esp + 0x20]
call fcn.00782fd0
add esp, 0x10
mov ecx, edi
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 1
jmp 0x7c7f43
mov dword [esp + 0x80], 1
mov dword [esp + 0x70], 1
jmp 0x7ca52f
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 4]
mov eax, dword [eax + 0x6c]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x51], 0
jne 0x7c84ae
jmp 0x7c84cf
test byte [edi + 0x39], 4
jne 0x7c8172
jmp 0x7c99d8
mov edx, dword [esp + 0xa4]
mov eax, ebp
call fcn.0076e530
jmp 0x7caafa
mov edi, dword [esp + 0x44]
mov edx, 0x25
jmp 0x7ca665
mov dword [esp + 0x30], 0
jmp 0x7c8154
cmp edx, 0xfffffffe
sete byte [esp + 0xa4]
jmp 0x7c7b33
mov dword [esp + 8], 0xfff0bdc0
jmp 0x7c7779
mov esi, dword [esp]
mov eax, dword [esi + 0xd4]
test eax, eax
je 0x7cb8b1
mov edx, dword [esi + 8]
mov dword [esp + 0x60], 0
mov dword [esp + 0x78], 0
jmp 0x7cab97
mov esi, dword [ebx + 8]
test esi, esi
je 0x7cb969
mov eax, ebp
mov dword [esp + 0x28], edi
mov ebp, dword [esp + 0x14]
mov byte [esp + 0x30], al
jmp 0x7cb70b
mov esi, dword [esi + 0x14]
test esi, esi
je 0x7cb87f
cmp byte [esi + 0x36], 0
je 0x7cb700
mov eax, dword [esi + 0x24]
test eax, eax
jne 0x7cb700
movzx eax, word [esi + 0x32]
cmp ax, 3
ja 0x7cb700
movzx edx, byte [esi + 0x38]
mov ecx, edx
and ecx, 8
cmp cl, 1
sbb edi, edi
and edi, 0xffffff80
add edi, 0x82
test ax, ax
je 0x7cb975
xor ebx, ebx
jmp 0x7cb761
mov edx, dword [ebp + 0x30]
mov dword [edx + ebx*4], eax
movzx eax, word [esi + 0x32]
add ebx, 1
cmp ebx, eax
jge 0x7cb781
push esi
mov ecx, ebx
push edi
push 0
push 0
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
call fcn.00798420
add esp, 0x10
test eax, eax
jne 0x7cb750
movzx eax, word [esi + 0x32]
cmp ebx, eax
jne 0x7cb700
mov edi, dword [esp + 0x28]
movzx edx, byte [esi + 0x38]
mov ebx, dword [esp + 0x14]
and edx, 0x20
mov dword [ebx + 0x24], 0x1201
jne 0x7cb8c5
mov edx, dword [edi + 0x40]
mov ecx, dword [edi + 0x44]
and edx, dword [esi + 0x40]
and ecx, dword [esi + 0x44]
or ecx, edx
je 0x7cb8c5
mov edi, dword [esp + 0x14]
mov ebp, 0x27
mov word [edi + 0x28], ax
mov word [edi + 0x18], ax
mov dword [edi + 0x20], esi
mov word [edi + 0x14], bp
jmp 0x7c9dac
mov eax, dword [esp + 0x44]
xor ecx, ecx
mov edi, dword [eax + 0xc]
movsx eax, word [edi + 0x2a]
lea edx, [eax*4 + 4]
mov eax, dword [ebx]
call fcn.00769450
mov ecx, eax
test eax, eax
je 0x7ca3fb
movsx eax, word [edi + 0x2a]
mov dword [ecx], eax
mov eax, dword [esp + 0x44]
movzx eax, word [eax + 0x34]
cmp ax, 1
jbe 0x7cb866
mov ebx, dword [esp + 0x44]
sub eax, 1
mov dword [esp + 0x4c], esi
mov esi, ecx
mov dword [esp + 0x60], ebp
mov edx, dword [ebx + 4]
mov dword [esp + 0x30], eax
xor ebx, ebx
mov ebp, edx
jmp 0x7cb847
test ax, ax
js 0x7cb841
movsx edx, ax
mov eax, edi
call fcn.0076e7e0
cwde
mov dword [esi + eax*4 + 4], ebx
cmp dword [esp + 0x30], ebx
je 0x7cb85c
movzx eax, word [ebp + ebx*2]
add ebx, 1
test byte [edi + 0x24], 0x20
jne 0x7cb82d
test ax, ax
js 0x7cb841
jmp 0x7cb83c
mov ecx, esi
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x4c]
sub esp, 0xc
mov edx, 0xffffffff
mov eax, esi
push 0xfffffffffffffff1
call fcn.00774970
add esp, 0x10
jmp 0x7ca3fb
mov eax, dword [esp + 0x14]
movzx ebp, byte [esp + 0x30]
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x7c9dac
mov eax, dword [esp + 0xb8]
mov dword [esp + 8], eax
mov edi, dword [eax + 4]
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x14], eax
jmp 0x7c74b7
mov dword [ebp + 0x40], 0
mov dword [esp + 0x60], 0
jmp 0x7cabce
mov ebx, dword [esp + 0x14]
mov word [ebx + 0x28], ax
mov word [ebx + 0x18], ax
mov eax, 0x27
mov dword [ebx + 0x24], 0x1241
mov dword [ebx + 0x20], esi
mov word [ebx + 0x14], ax
jmp 0x7c9dac
xor eax, eax
jmp 0x7ca3da
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
not edi
not esi
and edi, eax
and esi, edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
jmp 0x7cb57a
mov edx, dword [esp + 0x20]
lea eax, [edi + edi*8]
lea edx, [edx + eax*8 + 0x40]
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov ecx, edx
mov dword [esp + 0x30], eax
mov edx, ecx
mov dword [esp + 0x34], ecx
or edx, eax
je 0x7cb94c
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x30], ebx
shrd edx, ecx, 1
shr ecx, 1
add ebp, 1
mov ebx, ecx
or ebx, edx
jne 0x7cb939
mov ebx, dword [esp + 0x30]
sub esp, 0xc
mov ecx, ebp
mov edx, 0xffffffff
push 0xfffffffffffffffd
mov eax, dword [esp + 0x20]
call fcn.00774970
add esp, 0x10
jmp 0x7c9afa
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x24]
jmp 0x7cb88b
mov edi, dword [esp + 0x28]
xor eax, eax
jmp 0x7cb791
movzx eax, word [0x32]
ud2
movzx eax, word [0x32]
ud2
movzx eax, byte [pe_dos_header]
ud2
mov eax, dword [esp]
add dword [eax + 0x28], 1
movzx eax, word [0x32]
ud2
movzx eax, byte [pe_dos_header]
ud2