Function at 0x10084750
Capabilities:
Encode data using base64
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1a0
mov eax, dword [0x101d2014]
mov esi, dword [ebp + 0xc]
xor edi, edi
xorps xmm0, xmm0
xor eax, ebp
test esi, esi
mov dword [esp + 0x198], eax
mov eax, dword [ecx + 8]
mov ebx, dword [ecx]
mov dword [esp + 0xe4], edi
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe8], edi
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0x14], eax
movzx eax, word [ebp + 0x14]
je 0x100847ab
xor edi, edi
cmp dword [esi], 0x3f
cmovle edi, esi
mov esi, eax
mov dword [esp + 0xd8], edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x70], edx
and esi, 0xfffffeff
test byte [ebx + 0x4c], 0x10
cmove esi, eax
mov eax, dword [edx]
cmp eax, 0x41
jge 0x100853e6
xor edx, edx
movzx ecx, si
inc edx
mov dword [esp + 0xb0], ecx
and ecx, 0x20
cmovne eax, edx
mov dword [esp + 0x88], ecx
imul ecx, eax, 0x58
mov dword [esp + 0xb4], eax
movzx eax, word [ebx + 0x114]
lea edi, [ecx + 0x2f7]
mov dword [esp + 0x3c], ecx
and edi, 0xfffffff8
lea edx, [edi + 0x48]
cmp edx, eax
ja 0x10084845
cmp edx, 0x80
ja 0x10084c6a
mov eax, dword [ebx + 0x138]
test eax, eax
je 0x10084c5c
mov dword [esp + 0x10], eax
mov eax, dword [eax]
mov dword [ebx + 0x138], eax
inc dword [ebx + 0x120]
jmp 0x1008486c
cmp dword [ebx + 0x110], 0
je 0x10085235
cmp byte [ebx + 0x51], 0
jne 0x10088238
mov ecx, ebx
push 0
call fcn.1001a100
add esp, 4
mov dword [esp + 0x10], eax
cmp byte [ebx + 0x51], 0
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x94], ebx
jne 0x100853fe
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x70]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x18]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 8], eax
mov dword [edx + 0x10], edi
mov dword [edx + 0xc], ebx
mov ebx, dword [esp + 0xb4]
xor eax, eax
xor edi, edi
dec eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x14], eax
mov dword [esp + 0xac], eax
mov byte [edx + 0x2c], bl
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
mov dword [edx + 0x1c], eax
mov dword [edx + 0x20], eax
mov eax, dword [esp + 0x2c]
mov word [edx + 0x28], ax
mov word [edx + 0x2a], si
mov eax, dword [ecx + 0x88]
mov ecx, dword [esp + 0x3c]
add ecx, 0x48
mov dword [edx + 0x24], eax
mov dword [edx + 0x49], edi
mov dword [edx + 0x31], edi
mov dword [edx + 0x2d], edi
mov dword [edx + 0x39], edi
mov dword [edx + 0x35], edi
mov dword [edx + 0x41], edi
mov dword [edx + 0x3d], edi
mov dword [edx + 0x45], edi
mov dword [edx + 0x4c], edi
lea eax, [edx + 0x2f0]
push ecx
mov esi, edx
push edi
mov dword [esp + 0x44], eax
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov edx, dword [esp + 0x20]
lea ecx, [esi + 0x50]
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xb8], ecx
lea eax, [esi + edx]
mov dword [esp + 0xdc], eax
lea eax, [esi + edx + 0x38]
mov edx, dword [ebp + 8]
mov dword [eax - 8], eax
mov word [eax - 0x10], 0
mov word [eax - 0xc], 3
mov dword [eax - 0x14], edi
lea eax, [esi + 0x68]
mov dword [esi + 0x1ec], edi
mov dword [esi + 0x50], esi
mov byte [esi + 0x59], 0
mov dword [esi + 0x54], edi
mov dword [esi + 0x5c], edi
mov dword [esi + 0x60], 8
mov dword [esi + 0x64], eax
push 0x2c
call fcn.1008e340
add esp, 4
test ebx, ebx
je 0x10084f09
mov edi, dword [esp + 0x70]
xor eax, eax
lea esi, [eax + eax*8]
mov ebx, dword [esp + 0x10]
mov ecx, dword [edi + esi*8 + 0x34]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx + 0x1ec]
lea edx, [ecx + 1]
mov dword [ebx + 0x1ec], edx
mov edx, dword [esp + 0x20]
mov dword [ebx + ecx*4 + 0x1f0], edx
test byte [edi + esi*8 + 0x30], 4
jne 0x1008525e
inc eax
cmp eax, dword [edi]
jl 0x1008499a
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x5c]
test esi, esi
jle 0x100849fa
inc esi
mov edx, dword [esp + 0xb8]
lea eax, [esi - 2]
mov ecx, edi
push eax
call fcn.10090280
add esp, 4
dec esi
cmp esi, 1
jg 0x100849df
mov ebx, dword [esp + 0x94]
cmp byte [ebx + 0x51], 0
jne 0x10088215
mov eax, dword [esp + 0xd4]
cmp dword [eax + 0xc], 0
jle 0x10084a50
xor ecx, ecx
xorps xmm0, xmm0
lea edx, [esp + 0x130]
xor ebx, ebx
xor edi, edi
mov esi, dword [eax + 0x14]
test byte [esi + ebx + 0xa], 2
jne 0x10084a40
mov eax, dword [esi + ebx + 0x28]
or eax, dword [esi + ebx + 0x2c]
je 0x10084f51
mov eax, dword [esp + 0xd4]
inc edi
add ebx, 0x30
cmp edi, dword [eax + 0xc]
jl 0x10084a28
bt dword [esp + 0xb0], 8
jb 0x10084ff4
cmp dword [esp + 0xb4], 1
jne 0x10084cdb
mov eax, dword [esp + 0xd0]
test byte [eax + 0x28], 0x20
jne 0x10084cdb
mov ecx, dword [eax + 4]
mov ebx, dword [ecx + 0x18]
cmp dword [ebx + 0x38], 0
jne 0x10084cdb
test byte [ecx + 0x30], 2
jne 0x10084cdb
mov edx, dword [ecx + 0x34]
mov esi, dword [esp + 0xdc]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
add eax, 0x50
xor edi, edi
lea ecx, [esp + 0x130]
mov dword [esp + 0x38], eax
mov dword [esi + 0x24], edi
mov word [esi + 0x2a], 0
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], edi
mov byte [ecx + 0x10], 0
mov dword [ecx + 8], edi
mov dword [ecx + 0x14], 0x82
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x1c], edx
mov word [ecx + 0x11], 0x101
mov dword [esp + 0x34], edx
mov word [ecx + 0x48], 0xffff
call fcn.10092f50
test eax, eax
jne 0x10084c91
mov ebx, dword [ebx + 8]
mov edi, dword [esp + 0x20]
test ebx, ebx
je 0x10084cd1
xor edx, edx
cmp byte [ebx + 0x36], 0
jne 0x10084b1f
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x10084b0d
jmp 0x10084cd1
cmp dword [ebx + 0x24], 0
jne 0x10084b13
movzx eax, word [ebx + 0x32]
cmp ax, 3
ja 0x10084b13
test ax, ax
je 0x10084c58
mov al, byte [ebx + 0x38]
xor ecx, ecx
and al, 8
shr al, 3
movzx edi, al
shl edi, 7
or edi, 2
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x13c], edx
mov byte [esp + 0x140], 0
mov dword [esp + 0x138], edx
mov dword [esp + 0x144], edi
mov dword [esp + 0x148], edx
mov dword [esp + 0x14c], eax
mov word [esp + 0x141], 0x101
mov eax, dword [ebx + 4]
movsx eax, word [eax + ecx*2]
cmp eax, 0xfffffffe
je 0x10088dd3
mov ecx, dword [ebx + 0xc]
cmp ax, word [ecx + 0x28]
je 0x10084c3e
test ax, ax
js 0x10084be2
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov cl, byte [ecx + edx*4 + 0xd]
mov edx, dword [esp + 0xc]
mov byte [esp + 0x140], cl
mov ecx, dword [ebx + 0x20]
mov ecx, dword [ecx + edx*4]
mov dword [esp + 0x138], ecx
lea ecx, [esp + 0x130]
mov word [esp + 0x178], ax
call fcn.10092f50
mov ecx, dword [esp + 0xc]
test eax, eax
mov edx, 0
je 0x10084c43
xor edi, edi
mov ecx, dword [eax + 0x20]
or ecx, dword [eax + 0x24]
jne 0x100890f0
movzx ecx, word [eax + 0xc]
test dword [esp + 0x1c], ecx
je 0x100890f0
mov edi, eax
mov eax, dword [esi + 0x30]
mov ecx, dword [esp + 0xc]
mov dword [eax + ecx*4], edi
mov edi, dword [esp + 0x1c]
inc ecx
movzx eax, word [ebx + 0x32]
cmp ecx, eax
jb 0x10084b4f
jmp 0x10084c43
xor eax, eax
dec eax
jmp 0x10084be2
movzx eax, word [ebx + 0x32]
mov edi, dword [esp + 0x20]
cmp ecx, eax
jne 0x10084b13
jmp 0x10084eb2
xor ecx, ecx
jmp 0x10084c43
mov eax, dword [ebx + 0x134]
test eax, eax
jne 0x10084f40
mov eax, dword [ebx + 0x130]
test eax, eax
jne 0x10084ef8
mov eax, dword [ebx + 0x12c]
test eax, eax
jne 0x100851c0
inc dword [ebx + 0x128]
jmp 0x1008485c
lea ecx, [esp + 0x130]
mov edx, dword [eax + 0x20]
or edx, dword [eax + 0x24]
jne 0x10088c8b
test byte [eax + 0xc], 0x82
je 0x10088c8b
mov edi, eax
mov dword [esi + 0x24], 0x1101
mov eax, dword [esi + 0x30]
mov dword [eax], edi
mov edi, dword [esp + 0x20]
xor eax, eax
inc eax
mov word [esi + 0x28], ax
mov word [esi + 0x18], ax
mov word [esi + 0x14], 0x21
cmp dword [esi + 0x24], 0
jne 0x10084e62
mov edx, dword [esp + 0xd0]
mov esi, dword [esp + 0xdc]
xor edi, edi
mov ecx, dword [edx]
movzx eax, byte [edx + 0x2c]
mov ebx, dword [edx + 4]
mov dword [esp + 0x4c], edx
mov ecx, dword [ecx]
test eax, eax
mov dword [esp + 0x1c], ecx
lea ecx, [esi + 0x38]
mov dword [esi + 0x30], ecx
mov word [esi + 0x28], 0
mov word [esi + 0x2c], 3
mov dword [esi + 0x24], 0
mov dword [esp + 0xe8], 0x4e20
mov dword [esp + 0x24], ecx
je 0x10085552
lea eax, [eax + eax*8]
mov dword [esp + 0x20], 0
mov dword [esp + 0x34], 0
lea eax, [ebx + eax*8 + 8]
add ebx, 8
mov dword [esp + 0x84], eax
xor eax, eax
mov edi, dword [esp + 0x4c]
mov byte [esi + 0x10], al
add dword [esp + 0xe8], 0x3e8
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x1ec]
test eax, eax
jle 0x10084e57
mov edx, dword [ebx + 0x2c]
xor ecx, ecx
cmp dword [edi + ecx*4 + 0x1f0], edx
jne 0x10084e4e
xor edx, edx
xor eax, eax
inc eax
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne edx, eax
cmovne eax, ecx
mov dword [esi + 0xc], edx
mov dword [esi + 8], eax
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
test byte [ebx + 0x24], 0xa
mov eax, dword [ebx + 0x10]
cmove edi, ecx
cmove edx, ecx
cmp dword [eax + 0x38], ecx
mov dword [esp + 0x5c], edi
mov dword [esp + 0xc], edx
jne 0x10085420
lea ecx, [esp + 0xd0]
push edi
call fcn.100938e0
add esp, 4
mov edi, eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
mov ecx, dword [esp + 0x24]
test edi, edi
jne 0x100851f2
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0xc]
cmp byte [eax + 9], 0
jne 0x100851d1
mov eax, dword [esp + 0x20]
or eax, dword [esi + 8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
or eax, dword [esi + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x51], 0
jne 0x10085545
mov eax, dword [esp + 0x38]
add ebx, 0x48
xor edi, edi
inc eax
cmp ebx, dword [esp + 0x84]
jb 0x10084d51
jmp 0x10085547
inc ecx
cmp eax, ecx
jne 0x10084d7a
xor eax, eax
xor edx, edx
xor ecx, ecx
jmp 0x10084d9f
mov ecx, dword [esp + 0x34]
xor eax, eax
inc eax
mov word [esi + 0x16], ax
mov dword [edi + 0x338], esi
mov dword [esi + 0xc], 0
mov dword [esi + 8], 1
mov dword [edi + 0x2f4], ecx
mov word [edi + 0x34], ax
mov eax, dword [edi + 8]
test eax, eax
jne 0x100851b6
test byte [edi + 0x29], 1
mov eax, edi
mov esi, dword [esp + 0x10]
mov edi, dword [ebp + 0x10]
je 0x100855d4
mov byte [eax + 0x2f], 1
jmp 0x100855d4
mov dword [esi + 0x24], 0x1201
test byte [ebx + 0x38], 0x20
jne 0x10084edb
mov dword [esp + 0xc], ecx
mov eax, dword [ebx + 0x40]
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x44]
and ecx, dword [edx + 0x44]
and eax, dword [edx + 0x40]
or eax, ecx
mov ecx, dword [esp + 0xc]
jne 0x10084ee2
mov dword [esi + 0x24], 0x1241
mov word [esi + 0x28], cx
mov word [esi + 0x18], cx
mov dword [esi + 0x20], ebx
mov word [esi + 0x14], 0x27
jmp 0x10084cd1
mov dword [esp + 0x10], eax
mov eax, dword [eax]
mov dword [ebx + 0x130], eax
jmp 0x1008483d
cmp dword [esp + 0x34], 0
jne 0x1008914c
bt dword [esp + 0xb0], 8
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x70]
jb 0x1008915c
push str.SCAN_CONSTANT_ROW
push 0
push eax
call fcn.100777a0
add esp, 0xc
jmp 0x100849d3
mov dword [esp + 0x10], eax
mov eax, dword [eax]
mov dword [ebx + 0x134], eax
jmp 0x1008483d
cmp dword [esp + 0xb4], 0
je 0x10084fc6
mov eax, edx
mov edx, dword [esi + ebx]
mov dword [esp + 0x144], ecx
movaps xmmword [esp + 0x130], xmm0
mov dword [esp + 0x140], ecx
mov dword [esp + 0x148], ecx
mov word [esp + 0x144], 1
mov dword [esp + 0x134], 0x10092f20
mov dword [esp + 0x138], 0x10076950
test edx, edx
je 0x10084fc6
mov ecx, eax
call fcn.10076970
cmp word [esp + 0x144], 0
lea edx, [esp + 0x130]
mov ecx, 0
xorps xmm0, xmm0
je 0x10084a40
push 0x10
mov eax, dword [esp + 0x14]
push dword [eax + 0x20]
push dword [esi + ebx]
push dword [esp + 0x24]
call fcn.100755f0
lea edx, [esp + 0x140]
xorps xmm0, xmm0
xor ecx, ecx
add esp, 0x10
or byte [esi + ebx + 0xa], 4
jmp 0x10084a40
mov ecx, dword [esp + 0x70]
mov ebx, dword [ebp + 0x10]
cmp dword [ecx], 1
jne 0x10085240
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x34]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx]
test ecx, ecx
jle 0x1008504e
xor edx, edx
lea esi, [edx + edx*4]
mov esi, dword [ebx + esi*4 + 4]
test esi, esi
je 0x10085049
mov edi, dword [esi + 4]
test edi, 0x41000
jne 0x10089169
cmp byte [esi], 0xa4
jne 0x10085049
mov edi, dword [esp + 0x20]
cmp dword [esi + 0x1c], edi
jne 0x10085049
cmp word [esi + 0x20], 0
js 0x100851a9
inc edx
cmp edx, ecx
jne 0x10085016
mov esi, dword [eax + 8]
test esi, esi
je 0x10085240
xor edi, edi
cmp byte [esi + 0x36], 0
jne 0x1008506d
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x1008505b
jmp 0x10085240
xor ebx, ebx
cmp word [esi + 0x32], 0
je 0x10085198
xor ebx, ebx
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x13c], edi
mov byte [esp + 0x140], 0
mov dword [esp + 0x138], edi
mov dword [esp + 0x144], 2
mov dword [esp + 0x148], edi
mov dword [esp + 0x14c], eax
mov word [esp + 0x141], 0x101
mov eax, dword [esi + 4]
movsx eax, word [eax + ebx*2]
cmp eax, 0xfffffffe
je 0x10089372
mov ecx, dword [esi + 0xc]
cmp ax, word [ecx + 0x28]
je 0x1008516c
test ax, ax
js 0x1008510e
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov cl, byte [ecx + edx*4 + 0xd]
mov byte [esp + 0x140], cl
mov ecx, dword [esi + 0x20]
mov ecx, dword [ecx + ebx*4]
mov dword [esp + 0x138], ecx
lea ecx, [esp + 0x130]
mov word [esp + 0x178], ax
call fcn.10092f50
test eax, eax
jne 0x10085171
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0
jle 0x10085198
mov eax, dword [esi + 0x20]
xor edi, edi
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x38], eax
mov ecx, dword [ebp + 0x10]
lea eax, [edi + edi*4]
mov eax, dword [ecx + eax*4 + 4]
test eax, eax
je 0x10085162
mov edx, eax
mov ecx, dword [edx + 4]
test ecx, 0x41000
jne 0x100893ab
cmp byte [edx], 0xa4
je 0x100893bd
mov eax, dword [ebp + 0x10]
inc edi
cmp edi, dword [eax]
jl 0x1008513a
jmp 0x100851a5
xor eax, eax
dec eax
jmp 0x1008510e
xor edi, edi
mov ecx, dword [eax + 0x20]
or ecx, dword [eax + 0x24]
jne 0x10089790
test byte [eax + 0xc], 2
je 0x1008978b
xor edi, edi
movzx eax, word [esi + 0x32]
inc ebx
cmp ebx, eax
jb 0x1008507c
movzx eax, word [esi + 0x32]
cmp ebx, eax
je 0x100851a9
jmp 0x10085061
xor edi, edi
jmp 0x10085198
mov eax, dword [esp + 0x10]
mov byte [eax + 0x2f], 1
jmp 0x10084a5f
mov al, byte [eax]
mov byte [edi + 0x2d], al
jmp 0x10084e96
mov dword [esp + 0x10], eax
mov eax, dword [eax]
mov dword [ebx + 0x12c], eax
jmp 0x1008483d
lea ecx, [esp + 0xd0]
push dword [esp + 0x68]
push dword [esp + 0x5c]
push dword [esp + 0x64]
call fcn.10094250
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov edi, eax
mov eax, dword [esp + 0x20]
or eax, dword [esi + 8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
or eax, dword [esi + 0xc]
test edi, edi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
je 0x10084e28
cmp edi, 0x65
jne 0x10085547
push str.abbreviated_query_algorithm_search
push 0x1c
call sym.nss3.dll_sqlite3_log
mov ecx, dword [esp + 0x2c]
add esp, 8
jmp 0x10084e32
inc dword [ebx + 0x124]
jmp 0x1008485c
cmp dword [esp + 0x34], 0
jne 0x10084a5f
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x10]
or byte [eax + 0x28], 0x80
mov dword [eax + 8], ecx
jmp 0x10084a5f
mov ecx, dword [edi + esi*8 + 0x48]
mov edx, esi
test ecx, ecx
mov dword [esp + 0x38], ecx
je 0x100849ce
mov ecx, dword [esp + 0x38]
cmp dword [ecx], 0
jle 0x100849ce
lea ecx, [edi + edx*8 + 0x34]
xor esi, esi
mov dword [esp + 0xc], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [ecx - 0x1c]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
movsx eax, word [eax + 0x2a]
cmp esi, eax
jge 0x10088c63
mov ecx, dword [esp + 0x20]
lea edx, [esi + esi*4]
mov ecx, dword [ecx + 4]
lea ecx, [ecx + edx*4 + 0x10]
test byte [ecx], 2
jne 0x100852d2
mov edx, esi
add ecx, 0x14
inc edx
mov esi, edx
cmp eax, edx
jne 0x100852bc
jmp 0x10088c63
mov eax, dword [esp + 0x18]
mov edx, 0x34
mov ecx, dword [eax]
push 0
call fcn.10019ed0
add esp, 4
mov ebx, eax
test eax, eax
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x24]
je 0x100849ce
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov edx, ebx
mov edx, dword [esp + 0x38]
mov dword [ebx], eax
mov dword [ebx + 0x20], eax
mov dword [ebx + 4], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x30], eax
mov byte [ebx], 0xa4
mov word [ebx + 0x22], 0xffff
mov dword [ebx + 0x18], 1
mov ecx, dword [ecx]
mov dword [ebx + 0x1c], ecx
mov ecx, dword [esp + 0x20]
mov word [ebx + 0x20], si
mov dword [ebx + 0x2c], ecx
mov ecx, dword [esp + 0xc]
lea ecx, [ecx + ecx*4]
mov edx, dword [edx + ecx*4 + 4]
test edx, edx
je 0x10085369
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
xor eax, eax
push eax
push eax
call fcn.10078d60
add esp, 8
mov edi, dword [esp + 0x18]
mov edx, 0xab
mov ecx, edi
push 0
push eax
call fcn.100582e0
add esp, 8
mov ecx, edi
mov edx, 0x35
push eax
push ebx
call fcn.100582e0
add esp, 8
mov edi, eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x4c]
test byte [eax + ecx*8 + 0x2c], 8
je 0x100853ae
mov eax, dword [esp + 0x1c]
mov ecx, edi
mov edx, dword [eax]
call fcn.10081590
mov ecx, dword [esp + 0xb8]
inc esi
mov edx, edi
push 1
call fcn.1008fef0
add esp, 4
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x70]
inc edx
cmp edx, dword [eax]
mov eax, dword [esp + 0x24]
mov ecx, edx
mov dword [esp + 0xc], edx
jl 0x1008529e
jmp 0x100849ce
push 0x40
push str.at_most__d_tables_in_a_join
push dword [esp + 0x20]
call fcn.1000f470
add esp, 0xc
jmp 0x10088238
xor esi, esi
cmp dword [esp + 0x10], 0
je 0x10086859
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x10]
call fcn.10019c40
jmp 0x10086859
lea edi, [ebx + 0x48]
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
cmp edi, dword [esp + 0x84]
jae 0x1008551f
mov ecx, ebx
xor eax, eax
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x28]
mov dword [esp + 0x44], edi
or edx, eax
jne 0x10085472
test byte [ecx + 0x6c], 0xa
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
je 0x100854ff
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
mov edx, dword [edi + 0x1ec]
test edx, edx
mov dword [esp + 0xc4], edx
jle 0x100854f3
mov ecx, dword [ecx + 0x74]
mov dword [esp + 0xc0], ecx
xor ecx, ecx
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0xc0]
cmp dword [edi + ecx*4 + 0x1f0], edx
je 0x100854d3
inc ecx
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
cmp dword [esp + 0xc4], ecx
jne 0x100854a3
jmp 0x100854f3
xor edx, edx
xor edi, edi
inc edi
shld edx, edi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne edx, edi
cmovne edi, ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x58], edi
mov ecx, dword [esp + 0x28]
or dword [esp + 0x68], eax
or dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x58]
lea edi, [ecx + 0x48]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x68]
cmp edi, dword [esp + 0x84]
jb 0x1008544c
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0xd0]
push dword [esp + 0x68]
push dword [esp + 0x5c]
push dword [esp + 0x64]
call fcn.100932a0
add esp, 0xc
mov edi, eax
jmp 0x10084ded
xor edi, edi
mov edx, dword [esi + 0x30]
cmp edx, ecx
jne 0x100871d3
mov eax, dword [esi + 0x24]
mov ebx, dword [esp + 0x94]
test eax, 0x4400
jne 0x100868c8
test edi, edi
mov dword [esi + 0x30], ecx
mov word [esi + 0x28], 0
mov word [esi + 0x2c], 3
mov dword [esi + 0x24], 0
jne 0x10088215
mov ecx, dword [esp + 0x10]
xor edx, edx
call fcn.1008e3c0
cmp byte [ebx + 0x51], 0
jne 0x10088215
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edi, dword [ebp + 0x10]
cmp dword [esi + 8], 0
jne 0x100855bc
test byte [ebx + 0x21], 0x10
je 0x100855e5
xor eax, eax
dec eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x48], eax
jmp 0x100855e5
mov eax, dword [esi + 0x34]
mov ecx, esi
inc eax
movsx edx, ax
call fcn.1008e3c0
cmp byte [ebx + 0x51], 0
jne 0x1008821d
cmp dword [esi + 8], 0
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x94]
je 0x100855ab
cmp dword [ecx + 0x24], 0
jne 0x1008821d
mov eax, dword [esp + 0x94]
cmp byte [eax + 0x51], 0
jne 0x1008821d
test edi, edi
je 0x1008560e
cmp byte [esi + 0x2c], 2
jae 0x10086a44
xor eax, eax
dec eax
mov dword [esp + 0x68], eax
movsx eax, word [esi + 0x34]
mov ecx, dword [esi]
add dword [ecx + 0x88], eax
test byte [esp + 0xb0], 4
jne 0x10086871
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x1c], 0
cmp dword [esp + 0xb4], 0
jle 0x10086839
mov eax, dword [esp + 0x14]
xor ecx, ecx
lea edi, [eax + 0x6c]
add eax, 0x68
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], edi
mov dword [esp + 0x20], eax
movzx eax, byte [eax + 0x34]
mov dword [esp + 0x24], ecx
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], ecx
mov esi, dword [eax + ecx*8 + 0x18]
mov eax, dword [esi + 0x48]
test eax, eax
je 0x100871c9
mov ecx, dword [ebx + 0x10]
add ecx, 0xc
xor ebx, ebx
dec ebx
inc ebx
cmp dword [ecx], eax
lea ecx, [ecx + 0x10]
jne 0x10085693
mov eax, dword [esp + 0x20]
test byte [esi + 0x24], 2
mov ecx, dword [eax + 0x48]
mov dword [esp + 0x2c], ecx
jne 0x100857ac
cmp dword [esi + 0xc], 0
jne 0x100857ac
mov eax, dword [ecx + 0x24]
bt eax, 0xa
jb 0x1008827c
cmp dword [esi + 0x38], 0
jne 0x100857ac
and eax, 0x40
or eax, dword [esp + 0x88]
jne 0x10085930
mov edi, dword [esp + 0x10]
mov eax, 0x60
cmp byte [edi + 0x2e], 0
jne 0x10085961
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0xc]
mov edx, dword [ecx + edx*8 + 0x34]
mov ecx, dword [esp + 0x18]
push eax
push esi
push ebx
call fcn.10070c20
add esp, 0xc
cmp byte [edi + 0x2e], 0
jne 0x10085788
cmp word [esi + 0x2a], 0x3f
jg 0x10085788
test byte [esi + 0x24], 0xe0
jne 0x10085788
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0xc]
mov ecx, dword [eax + edx*8 + 0x40]
mov edx, dword [eax + edx*8 + 0x44]
bsr edi, ecx
bsr eax, edx
xor edi, 0x1f
xor eax, 0x1f
add edi, 0x20
test edx, edx
cmovne edi, eax
mov eax, 0x40
sub eax, edi
or ecx, edx
mov ecx, 0
cmove eax, ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
cmp byte [ecx + 0x51], 0
jne 0x10085788
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
dec edx
lea edx, [edx + edx*4]
cmp byte [ecx + edx*4 + 1], 0
jne 0x1008597a
lea ecx, [ecx + edx*4 + 1]
mov dword [ecx + 0xf], eax
mov byte [ecx], 0xfd
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov eax, dword [edi]
test eax, eax
jle 0x100857ac
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
mov word [ecx + eax*4 - 0x12], dx
mov ecx, dword [esp + 0x2c]
test byte [ecx + 0x25], 2
jne 0x10085804
test ebx, ebx
js 0x100857df
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x74]
test eax, eax
cmove eax, ecx
xor esi, esi
mov ecx, ebx
mov edx, dword [eax + 0x54]
inc esi
shl esi, cl
bt edx, ebx
jb 0x100857df
or edx, esi
cmp ebx, 1
mov dword [eax + 0x54], edx
je 0x100869e1
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x94]
inc ecx
add eax, 0x58
cmp ecx, dword [esp + 0xb4]
jne 0x10085664
jmp 0x10085991
mov eax, dword [ecx + 0x20]
cmp byte [esi + 0x24], 0
mov dword [esp + 0x4c], eax
js 0x1008594e
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x2e], 0
jne 0x10086be4
cmp dword [ebp + 0x18], 0
je 0x10085837
cmp dword [esp + 0x88], 0
jne 0x100874c4
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x28]
lea ecx, [eax + 1]
mov dword [edx + 0x28], ecx
mov edx, 0x60
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx + 0x2c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x10086bb5
mov esi, dword [esp + 0x34]
lea edi, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [esi], edi
mov edi, dword [esp + 0x38]
mov edi, dword [edi]
mov byte [edi + ecx*4], dl
mov edx, dword [esp + 0xc]
mov word [edi + ecx*4 + 2], 0
mov dword [edi + ecx*4 + 4], eax
mov dword [edi + ecx*4 + 8], edx
mov dword [edi + ecx*4 + 0xc], ebx
mov dword [edi + ecx*4 + 0x10], 0
mov byte [edi + ecx*4 + 1], 0
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x4c]
mov esi, dword [ecx + 8]
call fcn.10070f10
test eax, eax
je 0x100858da
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
jne 0x10088b8e
mov edx, dword [esi + 0x6c]
mov ecx, dword [esi + 0x68]
lea edx, [edx + edx*4]
mov byte [ecx + edx*4 - 0x13], 0xf7
mov dword [ecx + edx*4 - 4], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x24]
test eax, 0x188002
jne 0x100857b2
and eax, 0xf
je 0x100857b2
mov eax, dword [esp + 0x10]
test byte [eax + 0x28], 1
jne 0x100857b2
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x2f], 2
je 0x100857b2
mov eax, dword [edi]
test eax, eax
jle 0x100857b2
mov ecx, dword [esp + 0x38]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
mov word [ecx + eax*4 - 0x12], 2
jmp 0x100857b2
mov ecx, dword [esp + 0x18]
mov edx, ebx
push dword [esi]
push 0
push dword [esi + 0x1c]
call fcn.10070dc0
mov ecx, dword [esp + 0x38]
add esp, 0xc
jmp 0x100857ac
cmp dword [esp + 0x88], 0
je 0x10085815
jmp 0x1008693e
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + ecx*8 + 0x34]
mov dword [edi + 0x14], eax
mov eax, 0x61
jmp 0x100856f4
lea edx, [ecx + edx*4]
mov ecx, dword [esp + 0x14]
push 0xfffffffffffffffd
push eax
call fcn.1004e710
add esp, 8
jmp 0x10085788
mov eax, dword [edi]
mov esi, dword [esp + 0x10]
mov dword [esi + 0x38], eax
cmp byte [ebx + 0x51], 0
jne 0x1008821d
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x10], esi
dec ecx
lea eax, [ebx + 0x2c]
mov dword [esp + 0x74], eax
lea eax, [esi + 0x37c]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x58], edi
imul edi, edi, 0x58
mov dword [esp + 0xc4], edx
mov dword [esp + 0xcc], ecx
lea ebx, [eax + edi]
mov eax, dword [eax + edi + 0x48]
test byte [eax + 0x25], 0x40
jne 0x10087651
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x20], edi
lea edi, [eax + edi + 0x48]
mov ecx, esi
push dword [esp + 0xb0]
mov dword [esp + 0x60], ebx
push ebx
call fcn.1008f8c0
add esp, 8
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], edi
mov eax, dword [eax]
mov dword [edi - 0x28], eax
mov eax, dword [esi]
mov esi, dword [esp + 0x10]
movzx ecx, byte [edi - 0x14]
mov dword [esp + 0x8c], eax
mov eax, dword [edi]
mov edx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x1ec]
mov dword [esp + 0x4c], edx
mov edx, dword [edx + ecx*8 + 0x34]
test eax, eax
mov dword [esp + 0x54], edx
jle 0x1008823f
mov edi, dword [esp + 0x20]
xor ecx, ecx
cmp dword [esi + ecx*4 + 0x1f0], edx
jne 0x1008680b
xor edx, edx
xor eax, eax
inc eax
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne edx, eax
cmovne eax, ecx
not eax
not edx
mov ecx, dword [esp + 0x3c]
and edx, dword [esp + 0x68]
and eax, dword [esp + 0xac]
mov dword [ecx + edi + 0x50], eax
mov dword [ecx + edi + 0x54], edx
mov eax, dword [esi + 0x48]
mov ebx, dword [esi + 0x4c]
mov esi, ecx
mov ecx, dword [esp + 0x58]
shrd eax, ebx, cl
shr ebx, cl
test cl, 0x20
cmove ebx, eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x38]
dec edx
mov dword [eax + 0x38], edx
mov dword [esi + edi + 0x10], edx
mov dword [esi + edi + 0xc], edx
mov dword [esp + 0x28], edx
mov edx, dword [eax + 0x38]
dec edx
mov dword [eax + 0x38], edx
mov dword [esp + 0xbc], edx
mov dword [esi + edi + 0x18], edx
mov edx, dword [esp + 0xc]
cmp byte [edx - 0x14], 0
jne 0x10086960
xor edi, edi
test ecx, ecx
jne 0x10086915
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x84]
lea ecx, [esi + eax + 0x50]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + edx*8 + 0x30]
test dl, 0x10
jne 0x1008754c
lea eax, [esi + eax + 0x10]
mov ecx, ebx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x2c]
and ecx, 1
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0x24]
bt eax, 0xa
jb 0x1008824c
mov esi, dword [esp + 0x10]
imul ecx, edi, 0x58
bt eax, 8
mov esi, dword [esi + ecx + 0x2fc]
jae 0x10085b6e
mov ecx, eax
and ecx, 5
jne 0x10085fc1
mov ecx, eax
mov edi, 0x102
mov dword [esp + 0x1c], esi
and ecx, edi
cmp ecx, edi
je 0x100882a3
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x20]
bt eax, 9
jb 0x10085e32
bt eax, 0xd
jb 0x1008769b
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x34]
test dl, 0x20
jne 0x10087471
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
mov al, byte [esi + 0x10198e58]
mov byte [ecx + edx + 0x35], al
mov dword [ecx + edx + 0x38], ebx
mov cl, byte [esi + 0x10198e5a]
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jle 0x10086b5b
mov esi, dword [esp + 0x38]
lea eax, [edx + 1]
lea edx, [edx + edx*4]
mov dword [edi], eax
mov edi, dword [esp + 0x1c]
mov esi, dword [esi]
mov byte [esi + edx*4], cl
mov word [esi + edx*4 + 2], 0
mov dword [esi + edx*4 + 4], ebx
mov dword [esi + edx*4 + 8], edi
xor edi, edi
mov dword [esi + edx*4 + 0xc], edi
mov dword [esi + edx*4 + 0x10], edi
mov byte [esi + edx*4 + 1], 0
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
mov dword [ecx + edx + 0x3c], eax
mov byte [ecx + edx + 0x37], 1
xor eax, eax
mov dword [esp + 0x1c], eax
cmp eax, 1
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x84]
mov edi, 1
adc edi, 0
lea eax, [eax + ecx*8 + 0x2c]
mov dword [esp + 0xc], eax
mov ebx, dword [esi + 0x5c]
test ebx, ebx
jle 0x10085dd0
mov eax, dword [esp + 0x10]
inc ebx
mov esi, dword [eax + 0x64]
xor eax, eax
mov ecx, eax
movzx eax, word [esi + 0xa]
test al, 6
jne 0x10085cde
mov edx, dword [esp + 0x88]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx]
mov edx, dword [edx + 4]
and edx, dword [esi + 0x2c]
and ecx, dword [esi + 0x28]
or ecx, edx
jne 0x10085d75
mov ecx, dword [esp + 0xc]
mov edx, dword [esi]
test byte [ecx], 8
jne 0x10086e6c
mov ecx, dword [esp + 0x2c]
cmp edi, 1
je 0x10085cf2
cmp edi, 2
jg 0x10085cb4
bt eax, 0xc
jb 0x10087443
bt eax, 9
jb 0x1008830c
push 0x10
push dword [esp + 0xc0]
push edx
push dword [esp + 0x24]
call fcn.100755f0
add esp, 0x10
or byte [esi + 0xa], 4
mov eax, dword [esp + 0x2c]
jmp 0x10085ce0
mov eax, ecx
dec ebx
add esi, 0x30
cmp ebx, 1
jg 0x10085c65
jmp 0x10085d82
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
xorps xmm0, xmm0
mov dword [esp + 0x24], edx
mov eax, dword [eax + ecx + 4]
lea ecx, [esp + 0x110]
movaps xmmword [esp + 0x130], xmm0
mov dword [esp + 0x114], eax
xor eax, eax
test edx, edx
mov dword [esp + 0x144], eax
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x134], 0x10096800
mov dword [esp + 0x148], ecx
mov dword [esp + 0x110], eax
je 0x100873a9
lea ecx, [esp + 0x130]
call fcn.10076970
cmp word [esp + 0x144], 0
mov eax, 2
jne 0x10085ce0
jmp 0x100873a9
mov eax, dword [esp + 0x10]
or byte [eax + 0x30], 2
jmp 0x10085cd8
mov esi, dword [esp + 0x10]
test eax, eax
mov edi, eax
jg 0x10085c50
mov edi, dword [esi + 0x5c]
test edi, edi
jle 0x10085dd0
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x64]
test byte [ebx + 0xa], 6
je 0x10085db3
lea eax, [edi - 1]
add ebx, 0x30
cmp edi, 1
mov edi, eax
jg 0x10085d9e
jmp 0x10085dd0
movzx eax, word [ebx + 0xc]
test al, 0x82
je 0x10085da4
and eax, 0x800
je 0x10085da4
mov eax, dword [esp + 0x54]
cmp dword [ebx + 0x14], eax
jne 0x10085da4
jmp 0x10086c6d
mov eax, dword [esp + 0x5c]
mov eax, dword [eax]
test eax, eax
jne 0x10086da1
mov ecx, dword [esp + 0x88]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [esp + 0xac], eax
mov dword [esp + 0x68], edx
mov eax, dword [ecx - 0x38]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0xc4]
mov ecx, dword [esp + 0xcc]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0xc0]
inc edi
add edx, 0x58
dec ecx
add eax, 0x58
cmp edi, dword [esp + 0xb4]
jne 0x100859c2
jmp 0x10086833
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x50], ebx
test al, 0x20
mov dword [esp + 0x48], 0
movzx edx, word [ecx + 0x1a]
movzx ebx, word [ecx + 0x18]
mov dword [esp + 0x28], edx
movzx edx, word [ecx + 0x1c]
mov ecx, dword [ecx + 0x20]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esi + edi + 8]
mov word [esp + 0x64], dx
mov esi, 0
mov edx, ebx
mov dword [esp + 0x6c], ecx
mov ecx, 0
jne 0x10086e7b
mov ebx, dword [esp + 0x50]
test al, 0x10
mov dword [esp + 0x30], esi
jne 0x100871f4
mov edi, ecx
xor esi, esi
mov eax, dword [esp + 0x2c]
mov ecx, 0x80030
mov dword [esp + 0x40], 0
mov eax, dword [eax + 0x24]
and eax, ecx
cmp eax, 0x80000
je 0x100888cc
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 0x32]
cmp word [esp + 0x44], ax
jb 0x100860fd
cmp dword [esp + 0x24], 0
je 0x10085ed8
cmp ax, word [esp + 0x44]
je 0x10087081
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x48]
mov dword [esp + 0xa0], eax
movzx eax, word [esp + 0x64]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x28]
mov word [esp + 0x64], ax
mov dword [esp + 0x48], 0
mov dword [esp + 0xa4], esi
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov ecx, dword [esi]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
movzx edx, word [eax + 0x18]
movzx ebx, word [eax + 0x2a]
mov dword [esp + 0x9c], eax
add edi, edx
mov dword [esp + 0x7c], edx
mov edx, dword [eax + 0x20]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x30], ebx
mov dword [esp + 0xa8], edi
mov dword [esp + 0x80], eax
add eax, edi
mov dword [esi + 0x2c], eax
call fcn.100984b0
test eax, eax
je 0x10088930
mov edi, dword [esi]
mov ebx, eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov esi, eax
mov dword [esp + 0x28], ebx
inc esi
test edi, edi
je 0x1008893d
movzx eax, word [edi + 0x114]
cmp esi, eax
ja 0x1008611f
cmp esi, 0x80
mov dword [esp + 0xc], 0
ja 0x10086089
mov ebx, dword [edi + 0x138]
test ebx, ebx
je 0x10086923
mov eax, dword [ebx]
mov dword [edi + 0x138], eax
inc dword [edi + 0x120]
jmp 0x1008614a
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x30]
mov edi, dword [ecx + 0x2c]
mov esi, dword [eax]
lea eax, [edi + 1]
mov dword [ecx + 0x2c], eax
mov edx, esi
push eax
push dword [esp + 0x28]
push 0
push dword [esp + 0x68]
call fcn.10097940
add esp, 0x10
inc edi
je 0x10086012
cmp eax, edi
je 0x10086012
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x10086012
mov ebx, dword [esp + 0x18]
mov edx, ecx
inc dl
mov byte [ebx + 0x13], dl
mov dword [ebx + ecx*4 + 0x98], edi
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x14]
mov edi, dword [ecx]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x10086e50
mov ebx, dword [esp + 0x34]
lea edx, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [ebx], edx
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x54]
mov edx, dword [edx]
mov dword [edx + ecx*4], 0x1f
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], edi
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov byte [eax + ecx + 0x35], 0xae
mov ecx, dword [esp + 0x88]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
and ecx, dword [esi + 0x2c]
and eax, dword [esi + 0x28]
or eax, ecx
jne 0x10086080
or byte [esi + 0xa], 4
mov esi, dword [esp + 0x10]
jmp 0x10085c2c
mov ebx, dword [edi + 0x130]
test ebx, ebx
jne 0x10086c4c
mov ebx, dword [edi + 0x12c]
test ebx, ebx
jne 0x1008753f
inc dword [edi + 0x128]
jmp 0x1008613a
test byte [esi + 0xa], 6
je 0x100860c3
inc edi
add esi, 0x30
cmp edi, eax
jl 0x100860b0
jmp 0x10085dde
mov edx, dword [esp + 0x88]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
and edx, dword [esi + 0x2c]
and ecx, dword [esi + 0x28]
or ecx, edx
jne 0x100860b6
push 0x10
push dword [esp + 0xc0]
push dword [esi]
push dword [esp + 0x24]
call fcn.100755f0
add esp, 0x10
or byte [esi + 0xa], 4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x5c]
jmp 0x100860b6
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov ecx, dword [ecx + 0x1c]
cmp byte [ecx + edx], 0
setne cl
and bl, 1
xor bl, cl
je 0x10085ec6
jmp 0x10087081
cmp dword [edi + 0x110], 0
je 0x10087c8d
cmp byte [edi + 0x51], 0
mov dword [esp + 0xc], 0
jne 0x10086160
mov ecx, edi
mov edx, esi
push 0
call fcn.1001a100
add esp, 4
mov ebx, eax
test ebx, ebx
je 0x10086160
push esi
push dword [esp + 0x2c]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x30]
inc eax
test bx, bx
mov dword [esp + 0x28], eax
jne 0x10088953
cmp bx, word [esp + 0x7c]
jae 0x10086443
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x30]
mov esi, dword [eax + ebx*4]
mov eax, dword [esp + 0x28]
lea edi, [eax + ebx]
mov edx, esi
push edi
push dword [esp + 0x28]
push ebx
push dword [esp + 0x68]
call fcn.10097940
add esp, 0x10
cmp eax, edi
jne 0x10087de2
movzx eax, word [esi + 0xc]
mov edi, dword [esp + 0xc]
test al, 1
jne 0x10087452
bt eax, 8
jb 0x10086351
mov eax, dword [esi]
test byte [esi + 0xb], 8
mov eax, dword [eax + 0x10]
mov dword [esp + 0x30], eax
jne 0x10086266
mov edx, dword [esp + 0x30]
mov cl, byte [edx]
mov eax, ecx
and al, 0xfe
cmp al, 0xaa
mov eax, edx
je 0x10087c36
cmp cl, 0xad
je 0x10087f01
cmp cl, 0xa4
je 0x1008630c
cmp cl, 0x73
je 0x10086266
add cl, 0x6a
cmp cl, 3
jb 0x10086266
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x60]
mov edi, ebx
lea esi, [ecx + ebx]
mov ecx, dword [esp + 0x90]
mov eax, dword [eax - 4]
mov ebx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], ebx
jle 0x10086c16
lea edx, [ebx + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [ebx + ebx*4]
mov dword [edx + ecx*4], 0x32
mov dword [edx + ecx*4 + 4], esi
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov ebx, edi
mov edi, dword [esp + 0xc]
test edi, edi
je 0x10086351
mov eax, ebx
mov ecx, dword [esp + 0x30]
mov ebx, edi
mov bl, byte [edi + eax]
mov esi, eax
call fcn.10076710
cmp bl, 0x41
jl 0x1008628d
cmp al, 0x41
jge 0x10086332
cmp al, 0x41
movzx ecx, bl
movzx eax, al
cmovl eax, ecx
and al, 0xbf
cmp al, 1
je 0x10086343
mov edi, dword [esp + 0xc]
mov ebx, esi
mov al, byte [edi + esi]
cmp al, 0x41
je 0x1008634d
mov ecx, dword [esp + 0x30]
mov dl, byte [ecx]
xor ecx, ecx
mov ah, dl
and ah, 0xfe
cmp ah, 0xaa
je 0x10087627
cmp dl, 0xad
je 0x10087dc9
cmp dl, 0xa3
jg 0x100862f3
cmp dl, 0x98
je 0x100871bd
cmp dl, 0x96
je 0x100871bd
cmp dl, 0x97
jne 0x10086351
jmp 0x10089089
cmp dl, 0xa4
je 0x10086bcc
cmp dl, 0x73
jne 0x10086351
jmp 0x10086c59
test edx, edx
jne 0x1008634d
jmp 0x10086351
test byte [eax + 6], 0x10
jne 0x10086218
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x10086218
movsx eax, word [eax + 0x20]
test eax, eax
jns 0x10086b77
jmp 0x10086266
cmp bl, 0x42
jg 0x100862a2
cmp al, 0x42
jg 0x100862a2
mov edi, dword [esp + 0xc]
mov ebx, esi
mov byte [edi + esi], 0x41
mov byte [edi + ebx], 0x41
inc ebx
cmp ebx, dword [esp + 0x7c]
jne 0x10086184
cmp word [esp + 0x78], 0
je 0x1008636c
test edi, edi
jne 0x10087012
mov dword [esp + 0x7c], 0
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0xa4]
test esi, esi
lea eax, [eax + ecx + 0x28]
cmove eax, dword [esp + 0x60]
test ebx, ebx
mov eax, dword [eax]
mov dword [esp + 0x60], eax
mov ah, 1
mov al, 1
jne 0x1008722c
cmp dword [esp + 0x50], 0
mov ecx, dword [esp + 0x18]
jne 0x10086e96
test ebx, ebx
movzx edx, al
mov edi, dword [esp + 0xc]
mov byte [esp + 0x9c], ah
setne al
cmp word [esp + 0x44], 0
mov dword [esp + 0x80], edx
setne dl
or dl, al
test ebx, ebx
movzx edx, dl
mov dword [esp + 0x90], edx
jne 0x10087238
cmp byte [esp + 0xa0], 0
jne 0x10088bb2
xor ecx, ecx
test esi, esi
jne 0x10088be7
mov edx, dword [esp + 0x44]
test edi, edi
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x30], edx
je 0x1008647b
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x18]
test eax, eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x64], ecx
jle 0x1008644c
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
cmp byte [edi], 0x41
jg 0x10086454
inc ebx
inc edi
xor ecx, ecx
cmp eax, 1
lea eax, [eax - 1]
jg 0x10086430
jmp 0x10086456
mov edi, dword [esp + 0xc]
jmp 0x1008635c
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0xc]
mov ecx, eax
mov eax, ecx
cmp eax, 2
jl 0x1008646e
cmp byte [edi + eax - 1], 0x42
lea esi, [eax - 1]
mov eax, esi
jl 0x10086458
jmp 0x10086b55
test ecx, ecx
mov esi, 1
jg 0x10086776
mov eax, dword [esp + 0x2c]
movzx eax, word [eax + 0x2a]
test eax, eax
je 0x1008648f
cmp edx, eax
je 0x10088e19
cmp dword [esp + 0x40], 0
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x80]
jne 0x10088a5f
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x64], 0
lea esi, [eax + ecx*4]
lea eax, [esi + ebx*2]
cmp eax, 6
jne 0x100864d7
mov eax, dword [esp + 0x2c]
mov ecx, 0x100000
mov eax, dword [eax + 0x24]
and eax, ecx
jne 0x10088e2a
mov edx, dword [esp + 0x14]
mov cl, byte [esi + ebx*2 + 0x10198e4c]
mov eax, dword [edx + 0x6c]
cmp dword [edx + 0x70], eax
jle 0x10086b95
lea edx, [eax + 1]
lea esi, [eax + eax*4]
mov ebx, dword [esp + 0x60]
mov dword [edi], edx
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x6c]
mov edx, dword [edx]
mov byte [edx + esi*4], cl
mov word [edx + esi*4 + 2], 0
mov dword [edx + esi*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [edx + esi*4 + 8], ebx
mov dword [edx + esi*4 + 0xc], edi
mov dword [edx + esi*4 + 0x10], 0
mov byte [edx + esi*4 + 1], 0
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
mov ecx, dword [ecx]
cmp byte [ecx + 0x51], 0
jne 0x10086551
mov ecx, dword [esp + 0x38]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], edx
test esi, esi
jne 0x10088a7d
mov ecx, dword [esp + 0x50]
mov al, byte [esp + 0x9c]
movzx ebx, al
test ecx, ecx
jne 0x10086ea6
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xa0], esi
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10086e36
lea edx, [eax + 1]
mov dword [esp + 0xa8], edi
mov edi, esi
mov dword [ecx + 0x6c], edx
lea edx, [eax + eax*4]
mov esi, dword [ecx + 0x68]
mov dword [esi + edx*4], 0x5a
mov dword [esi + edx*4 + 4], ebx
mov dword [esi + edx*4 + 8], edi
mov edi, dword [esp + 0xa8]
xor ebx, ebx
mov dword [esi + edx*4 + 0xc], ebx
mov dword [esi + edx*4 + 0x10], ebx
mov edx, ecx
mov ecx, dword [ecx]
cmp byte [ecx + 0x51], 0
jne 0x10089074
mov esi, dword [esp + 0xa0]
test eax, eax
js 0x10086d91
mov ecx, edx
lea edx, [eax + eax*4]
shl edx, 2
add edx, dword [ecx + 0x68]
push esi
push edi
call fcn.1004e710
add esp, 8
mov edx, dword [esp + 0x30]
jmp 0x1008647b
inc ecx
cmp eax, ecx
jne 0x10085a6e
jmp 0x10088243
cmp dword [eax], 0
jne 0x10086d9a
add eax, 0xffffffa8
cmp edx, 1
lea edx, [edx - 1]
jle 0x10085b06
jmp 0x10086819
mov eax, dword [esp + 0x34]
jmp 0x10086854
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x6c]
mov dword [esi + 0x38], eax
cmp byte [ebx + 0x51], 0
jne 0x1008821d
mov eax, dword [esp + 0x14]
add eax, 0x6c
mov eax, dword [eax]
mov dword [esi + 0x3c], eax
mov ecx, dword [esp + 0x198]
xor ecx, ebp
call fcn.10192ef0
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x338]
mov ebx, dword [esp + 0x94]
mov dl, 1
mov ecx, dword [eax + 0x24]
bt ecx, 0xc
jae 0x100869fb
test cl, 0x40
mov byte [esi + 0x2e], dl
mov dword [esp + 0x1c], 0
je 0x1008563e
mov edx, dword [esp + 0x70]
mov edx, dword [edx + 0x18]
cmp byte [edx + 0x24], 0
js 0x1008563e
mov edx, dword [esp + 0x2c]
and ecx, 0xffffffbf
mov dword [eax + 0x24], ecx
and edx, 8
mov dword [esp + 0x1c], edx
jmp 0x1008563e
bt eax, 0xa
jb 0x1008911c
bt eax, 0xe
jae 0x10085567
mov edx, dword [esi + 0x20]
test edx, edx
je 0x10085567
mov eax, dword [edx + 0x10]
test eax, eax
je 0x100868fc
mov ecx, dword [esp + 0x1c]
mov edx, eax
call fcn.10019c40
mov edx, dword [esi + 0x20]
mov ecx, dword [esp + 0x1c]
call fcn.10019c40
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x20], 0
jmp 0x10085567
mov eax, dword [esp + 0xc4]
mov edx, ecx
jmp 0x10086819
mov ebx, dword [edi + 0x134]
test ebx, ebx
je 0x10086089
mov eax, dword [ebx]
mov dword [edi + 0x134], eax
jmp 0x10085fb6
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x38]
and eax, 3
cmp eax, 2
jne 0x10085815
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
jmp 0x100857b2
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x84]
test byte [eax + edx*8 + 0x2c], 8
je 0x10085afc
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx]
inc eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x88], eax
mov dword [ecx], eax
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x10087c6a
lea edx, [ecx + 1]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x88]
xor eax, eax
mov dword [ecx], edx
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x45
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], edi
xor edi, edi
mov dword [edx + ecx*4 + 0xc], edi
mov dword [edx + ecx*4 + 0x10], edi
mov ecx, dword [esp + 0x58]
jmp 0x10085afc
mov ecx, eax
call fcn.1001d1e0
jmp 0x100857df
test byte [esp + 0xb0], 8
je 0x10085636
mov edx, dword [esp + 0x70]
mov edx, dword [edx + 0x18]
cmp dword [edx + 0x38], 0
jne 0x10085636
test byte [esp + 0xb0], 0x10
mov dl, 2
jne 0x1008688d
mov ebx, ecx
and ebx, 0x2000
mov ebx, dword [esp + 0x94]
je 0x1008688d
jmp 0x10085636
mov eax, dword [esp + 0x94]
test byte [eax + 0x4d], 1
jne 0x10086e0c
mov ecx, dword [edi]
lea eax, [esi + 0x1e8]
mov dword [esp + 0x34], eax
test ecx, ecx
jle 0x100871e5
lea esi, [edi + 4]
xor edx, edx
xor edi, edi
mov dword [esp + 0x20], 0
mov ebx, edx
mov edx, dword [esi]
test edx, edx
je 0x10088e10
mov ecx, dword [esp + 0x34]
call fcn.10092a00
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
or dword [esp + 0x20], edx
mov edx, ebx
inc edi
add esi, 0x14
or edx, eax
cmp edi, ecx
jl 0x10086a78
mov ebx, dword [esp + 0xd8]
test ebx, ebx
jne 0x10087155
mov esi, dword [esp + 0x10]
movzx ebx, byte [esi + 0x2c]
cmp ebx, 2
jb 0x10086e0c
xor eax, eax
mov dword [esp + 0x38], edx
mov ecx, ebx
mov byte [esp + 0xc], bl
dec eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x68], eax
lea eax, [ebx - 1]
mov edi, ebx
mov ecx, dword [esi + 4]
mov dword [esp + 0x34], eax
imul ebx, eax, 0x58
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + ebx + 0x48]
movzx eax, byte [edx + 0x10]
lea eax, [eax + eax*8]
test byte [ecx + eax*8 + 0x2c], 8
jne 0x10086b0d
mov ebx, dword [esp + 0x34]
cmp edi, 2
jg 0x10086ada
jmp 0x10085615
bt dword [esp + 0xb0], 8
mov dword [esp + 0x24], ebx
jb 0x10086b22
test byte [edx + 0x25], 0x10
je 0x10086aff
mov dword [esp + 0x1c], edi
mov esi, dword [edx + 8]
mov edi, dword [edx + 0xc]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x84], esi
and edi, dword [esp + 0x20]
and esi, dword [esp + 0x38]
or esi, edi
je 0x10087e1f
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
jmp 0x10086b03
inc esi
jmp 0x10086776
movzx edx, cl
mov ecx, dword [esp + 0x14]
push 0
push dword [esp + 0x20]
push ebx
call fcn.1004e590
add esp, 0xc
inc eax
jmp 0x10085c17
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x10086266
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 0xc], 0
je 0x10086218
jmp 0x10086266
movzx edx, cl
mov ecx, dword [esp + 0x14]
push dword [esp + 0x28]
push dword [esp + 0x64]
push dword [esp + 0x74]
call fcn.1004e590
add esp, 0xc
jmp 0x1008652b
mov ecx, dword [esp + 0x14]
push ebx
push dword [esp + 0x10]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x100858a8
cmp al, 0x43
jl 0x10086351
mov eax, dword [esp + 0x30]
movzx edx, word [eax + 0x20]
shr edx, 0xf
jmp 0x10086306
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0xc]
lea eax, [eax + ecx*8 + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ebp + 0x18]
test ecx, ecx
je 0x10086c09
cmp ecx, dword [esp + 0x4c]
mov eax, dword [ebp + 0x18]
jne 0x100892ca
mov dword [edx + 0x18], eax
mov edx, 0x61
jmp 0x10085849
mov edx, 0x32
push 0
push eax
push esi
call fcn.1004e590
add esp, 0xc
jmp 0x10086260
mov eax, dword [ebx]
mov dword [edi + 0x130], eax
jmp 0x10085fb6
test ecx, ecx
sete cl
cmp al, 0x42
sete al
and al, cl
movzx edx, al
jmp 0x10086306
mov eax, dword [esp + 0xc]
test byte [eax], 8
jne 0x10085da4
mov eax, dword [ebx + 0x18]
mov ecx, dword [esp + 0xb8]
mov esi, dword [ebx]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], ecx
mov ecx, 0
cmp eax, 0xfffffffe
mov dword [esp + 0x13c], ecx
mov byte [esp + 0x140], 0
mov dword [esp + 0x138], ecx
mov dword [esp + 0x144], 0x83
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], edx
mov word [esp + 0x141], 0x101
je 0x10085da4
lea ecx, [esp + 0x130]
mov word [esp + 0x178], ax
call fcn.10092f50
test eax, eax
je 0x10085da4
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x2c], edi
mov esi, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
mov edi, edx
mov ecx, esi
and edi, dword [esp + 0x68]
and ecx, dword [esp + 0xac]
or ecx, edi
jne 0x10089491
or esi, edx
jne 0x10089484
test byte [eax + 0xc], 0x82
je 0x10089484
mov edi, dword [esp + 0x2c]
test byte [eax + 0xa], 4
jne 0x10085da4
test byte [eax + 0xc], 1
jne 0x10087da9
mov esi, dword [eax]
lea edx, [esp + 0x130]
mov ecx, 0xd
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x13c], eax
push 0x10
push dword [esp + 0xc0]
push edx
push dword [esp + 0x24]
call fcn.100755f0
add esp, 0x10
jmp 0x10085da4
mov eax, dword [edx + 0x6c]
dec eax
jmp 0x100867df
mov edi, edx
jmp 0x10085b06
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x20]
mov ecx, dword [edx + 0x6c]
mov dword [esi + edi + 0x1c], ecx
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x10087c4f
mov esi, dword [esp + 0x34]
lea edx, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [esi], edx
mov edx, dword [esp + 0x38]
mov edx, dword [edx]
mov dword [edx + ecx*4], 0x45
mov dword [edx + ecx*4 + 4], 1
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x5c]
test eax, eax
jle 0x10085dde
mov ecx, dword [esp + 0x10]
xor edi, edi
mov esi, dword [ecx + 0x64]
jmp 0x100860b0
xor eax, eax
dec eax
mov dword [esp + 0xac], eax
jmp 0x10085611
mov edx, 0x5a
push 0
push esi
push ebx
call fcn.1004e590
mov ecx, dword [esp + 0x70]
add esp, 0xc
jmp 0x100867c2
mov ecx, dword [esp + 0x14]
mov edx, 0x1f
push eax
push edi
push dword [esp + 0x5c]
call fcn.1004e590
add esp, 0xc
jmp 0x10086059
test byte [edx + 4], 1
jne 0x10085c9c
jmp 0x10085cd8
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x44]
movzx ecx, word [esp + 0x28]
mov esi, dword [edx + 0x30]
lea edx, [edi + 1]
mov esi, dword [esi + edi*4]
jmp 0x10085e7e
mov edx, dword [esp + 0x50]
test byte [edx + 0xc], 0x28
setne ah
jmp 0x100863b3
mov eax, dword [esp + 0x44]
mov ebx, edi
mov dword [esp + 0x7c], 0
lea ebx, [edi + eax]
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, dword [esp + 0x8c]
mov esi, eax
inc esi
test ecx, ecx
je 0x1008933a
movzx eax, word [ecx + 0x114]
cmp esi, eax
ja 0x10087483
cmp esi, 0x80
ja 0x100875f9
mov ecx, dword [esp + 0x8c]
mov edi, dword [ecx + 0x138]
test edi, edi
je 0x100875eb
mov eax, dword [edi]
mov dword [ecx + 0x138], eax
inc dword [ecx + 0x120]
jmp 0x100874a8
movzx eax, byte [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xa0], 0
mov dword [esp + 0x78], eax
mov dword [esp + 0x50], ecx
jmp 0x10085f05
mov dword [esp + 0x38], edx
mov edx, dword [ebx]
xor eax, eax
mov ecx, 0
test edx, edx
jle 0x100871ae
lea esi, [ebx + 4]
xor eax, eax
xor ecx, ecx
xor edi, edi
mov dword [esp + 0xc], edx
mov edx, dword [esi]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
test edx, edx
je 0x100892c1
mov ecx, dword [esp + 0x34]
call fcn.10092a00
mov ecx, dword [ebx]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
inc edi
add esi, 0x14
or ecx, edx
mov edx, dword [esp + 0x24]
or edx, eax
mov eax, edx
mov edx, dword [esp + 0xc]
cmp edi, edx
jl 0x1008716f
mov edx, dword [esp + 0x38]
or dword [esp + 0x20], ecx
or edx, eax
jmp 0x10086ab1
xor edx, edx
cmp al, 0x42
setg dl
jmp 0x10086306
mov ebx, 0xffff8000
jmp 0x1008569b
mov ecx, dword [esp + 0x1c]
call fcn.10019c40
mov ecx, dword [esp + 0x24]
jmp 0x10085552
xor edx, edx
mov dword [esp + 0x20], 0
jmp 0x10086aa2
mov eax, dword [esp + 0x2c]
movzx edi, word [esp + 0x64]
mov eax, dword [eax + 0x30]
cmp ecx, edi
cmova edi, ecx
mov eax, dword [eax + edx*4]
test byte [eax + 0xb], 1
mov esi, eax
jne 0x100894ba
cmp dword [esp + 0x30], 0
je 0x10089541
mov dword [esp + 0x48], 0
jmp 0x10085e92
test byte [ebx + 0xc], 0x28
setne al
jmp 0x100863a4
mov eax, dword [ebx]
movzx esi, word [esp + 0x64]
mov edx, dword [esp + 0x28]
mov edi, dword [eax + 0x10]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x30], esi
lea eax, [edx + eax]
mov edx, edi
push esi
mov esi, eax
push eax
call fcn.10098100
add esp, 8
test byte [ebx + 0xb], 1
jne 0x10089582
mov cl, byte [edi]
mov edx, dword [esp + 0x30]
mov eax, ecx
and al, 0xfe
cmp al, 0xaa
mov eax, edi
je 0x100881df
cmp cl, 0xad
je 0x1008820d
cmp cl, 0xa4
je 0x10087d6a
cmp cl, 0x73
je 0x100872df
add cl, 0x6a
cmp cl, 3
jb 0x100872df
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10088085
mov edx, dword [esp + 0x34]
lea ecx, [eax + 1]
lea eax, [eax + eax*4]
mov dword [edx], ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x60]
mov ecx, dword [ecx]
mov dword [ecx + eax*4], 0x32
mov dword [ecx + eax*4 + 4], esi
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x10087300
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
add eax, ecx
mov ecx, edi
push eax
call fcn.100982b0
mov edx, dword [esp + 0x34]
add esp, 4
mov al, byte [edi]
mov esi, dword [esp + 0x5c]
cmp al, 0xad
je 0x100895d0
add edx, dword [esp + 0x44]
cmp al, 0x88
mov dword [esp + 0x30], edx
je 0x100895d8
cmp al, 0xae
je 0x100895e0
mov eax, dword [esp + 0xa4]
add eax, 0xa
movzx edx, word [eax]
test dl, 4
jne 0x100895fc
xor ebx, ebx
mov dword [esp + 0x64], eax
cmp dword [esi], 0
mov eax, dword [esp + 0xa4]
mov ecx, ebx
jne 0x10088103
mov esi, dword [eax + 0x28]
mov ebx, dword [esp + 0x88]
mov edi, dword [eax + 0x2c]
and edi, dword [ebx + 4]
and esi, dword [ebx]
or esi, edi
jne 0x100895fc
test ecx, ecx
mov esi, 0x200
mov edi, 4
mov ebx, ecx
cmove esi, edi
bt edx, 0xa
cmovae esi, edi
mov edi, dword [esp + 0xc]
or esi, edx
mov edx, dword [esp + 0x64]
mov word [edx], si
mov edx, dword [eax + 0x10]
test edx, edx
jns 0x10088114
mov edx, dword [esp + 0x30]
xor ecx, ecx
jmp 0x10086406
movzx eax, word [esi + 0xa]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
jmp 0x10085caa
test ecx, ecx
mov eax, 3
cmove ecx, eax
jmp 0x10085cde
test edi, edi
je 0x10086351
mov eax, dword [esi]
mov ecx, 0x800
mov eax, dword [eax + 4]
and eax, ecx
je 0x10086351
jmp 0x1008634d
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov byte [eax + ecx + 0x35], 0xae
jmp 0x10085c2c
cmp dword [ecx + 0x110], 0
je 0x100881b0
cmp byte [ecx + 0x51], 0
jne 0x10086374
mov edx, esi
push 0
call fcn.1001a100
add esp, 4
mov edi, eax
test edi, edi
je 0x10086374
push esi
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esp + 0x7c], edi
jmp 0x10086374
mov eax, dword [ebp + 0x18]
mov edx, 0x5f
jmp 0x10085849
mov eax, dword [ebx]
mov dword [edi + 0x12c], eax
jmp 0x10085fb6
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x14]
mov eax, dword [ecx + edx*8 + 0x20]
mov edi, dword [ecx + edx*8 + 0x24]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jle 0x1008815f
mov ebx, dword [esp + 0x34]
lea edx, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [ebx], edx
mov edx, dword [esp + 0x38]
xor ebx, ebx
mov edx, dword [edx]
mov dword [edx + ecx*4], 0xd
mov dword [edx + ecx*4 + 4], edi
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], ebx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10088179
mov edx, dword [esp + 0x34]
lea ecx, [eax + 1]
mov ebx, dword [esp + 0x28]
mov dword [edx], ecx
mov ecx, dword [esp + 0x38]
lea edx, [eax + eax*4]
mov ecx, dword [ecx]
mov dword [ecx + edx*4], 0xe
mov dword [ecx + edx*4 + 4], edi
mov dword [ecx + edx*4 + 8], ebx
xor ebx, ebx
mov dword [ecx + edx*4 + 0xc], ebx
mov dword [ecx + edx*4 + 0x10], ebx
mov ecx, dword [esp + 0x20]
mov dword [esi + ecx + 0x3c], eax
mov byte [esi + ecx + 0x35], 0xb
jmp 0x10086080
mov edi, dword [ecx + 0x134]
test edi, edi
jne 0x10088060
mov ecx, dword [esp + 0x8c]
mov edi, dword [ecx + 0x130]
test edi, edi
jne 0x10087dd5
mov edi, dword [ecx + 0x12c]
test edi, edi
jne 0x100881a3
inc dword [ecx + 0x128]
jmp 0x1008749a
xor ecx, ecx
cmp dl, 0xaa
mov edx, 1
cmove ecx, edx
mov edx, dword [esp + 0x30]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x30], edx
mov dl, byte [edx]
mov ah, dl
and ah, 0xfe
cmp ah, 0xaa
jne 0x100862c9
jmp 0x10087629
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0xb8]
movzx eax, byte [eax + edi + 0x34]
lea eax, [eax + eax*8]
lea eax, [ecx + eax*8 + 8]
mov ecx, dword [esp + 0x18]
push ebx
push dword [esp + 0x6c]
push dword [esp + 0xb4]
push eax
call fcn.1008f040
add esp, 0x10
mov eax, dword [esp + 0x94]
cmp byte [eax + 0x51], 0
je 0x100859f3
jmp 0x1008821d
mov ecx, dword [esp + 0x18]
mov ebx, edi
mov edi, dword [ecx + 0x2c]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x30], eax
inc eax
inc edi
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], edi
mov dword [esp + 0x48], edi
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x80], eax
lea eax, [eax - 1]
mov dword [ecx + 0x38], eax
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x84]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + ecx*8 + 0x18]
mov ecx, dword [edx + 0x18]
mov byte [esi + ebx + 0x35], 0x41
mov dword [esi + ebx + 0x38], edi
mov esi, dword [esp + 0x10]
mov dword [esp + 0xc], edx
movzx ebx, byte [esi + 0x2c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
cmp ebx, 2
jb 0x100897b6
mov eax, ebx
mov ecx, dword [esp + 0x8c]
sub eax, dword [esp + 0x58]
test ecx, ecx
mov esi, eax
lea eax, [eax + eax*8]
lea edx, [eax*8 + 8]
je 0x100897c2
push 0
call fcn.10019ed0
add esp, 4
mov edx, eax
test eax, eax
je 0x100897d0
mov ecx, esi
mov edi, esi
mov esi, dword [esp + 0x4c]
movzx eax, cl
mov ecx, dword [esp + 0x84]
cmp edi, 2
lea edi, [edx + 8]
mov dword [edx + 4], eax
mov dword [edx], eax
lea esi, [esi + ecx*8 + 8]
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x6c], edx
jl 0x100877ab
mov eax, dword [esp + 0x10]
add ebx, dword [esp + 0xcc]
mov eax, dword [eax + 4]
mov dword [esp + 0x2c], eax
lea eax, [edx + 0x50]
mov edx, dword [esp + 0xc0]
movzx ecx, byte [edx]
mov esi, dword [esp + 0x2c]
mov edi, eax
add edx, 0x58
add eax, 0x48
dec ebx
lea ecx, [ecx + ecx*8]
lea esi, [esi + ecx*8 + 8]
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
jne 0x1008778b
mov esi, dword [esp + 0x10]
test byte [esi + 0x28], 0x10
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x44], 0
jne 0x1008780a
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x24], 0
js 0x100897dc
mov edi, dword [ebx]
mov ecx, dword [esp + 0x14]
xor eax, eax
mov edx, 0x48
inc edi
mov dword [ebx], edi
push eax
mov dword [esp + 0x80], edi
push edi
push eax
call fcn.1004e520
add esp, 0xc
mov eax, dword [ebx]
mov edi, dword [esp + 0x18]
inc eax
mov dword [esp + 0x44], eax
mov dword [ebx], eax
mov ecx, dword [esp + 0x14]
xor ebx, ebx
mov edx, 0x45
push ebx
push dword [esp + 0x4c]
push ebx
call fcn.1004e520
add esp, 0xc
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0x5c]
cmp eax, 2
jl 0x100878bf
xor edi, edi
xor ebx, ebx
xor esi, esi
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x64]
sub edx, ecx
cmp edx, edi
je 0x10087897
test byte [ecx + edi + 0xa], 6
jne 0x10087897
movzx edx, word [ecx + edi + 0xc]
test edx, 0x1fff
je 0x10087897
mov edx, dword [ecx + edi]
test edx, edx
je 0x10089627
mov ecx, dword [esp + 0x8c]
xor eax, eax
push eax
push eax
call fcn.10078d60
add esp, 8
mov ecx, dword [esp + 0x18]
mov edx, esi
push eax
call fcn.1006a140
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x5c]
inc ebx
add edi, 0x30
cmp ebx, eax
jl 0x1008783c
test esi, esi
je 0x10089801
mov edi, dword [esp + 0x18]
mov edx, 0x1002c
mov ecx, edi
push esi
push 0
call fcn.100582e0
add esp, 8
mov ebx, eax
mov dword [esp + 0x50], ebx
push str.MULTI_INDEX_OR
push 1
push edi
call fcn.100777a0
add esp, 0xc
mov edx, dword [esp + 0x28]
mov dword [esp + 0xa0], 0
cmp dword [edx + 0xc], 0
jle 0x10087f47
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x54]
xor ecx, ecx
mov dword [esp + 0x40], 0
mov dword [esp + 0x1c], 0
add eax, 8
mov dword [esp + 0xa4], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0x2c], ecx
lea ecx, [ecx + ecx*2]
shl ecx, 4
cmp dword [eax + ecx + 0x14], ebx
je 0x1008792e
test byte [eax + ecx + 0xd], 4
je 0x10089651
mov edx, dword [esp + 0x50]
mov edi, dword [eax + ecx]
test edx, edx
je 0x1008793e
mov dword [edx + 0xc], edi
mov edi, edx
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x64], eax
push eax
push str.INDEX__d
push 1
mov ebx, dword [esp + 0x24]
push ebx
call fcn.100777a0
add esp, 0x10
mov esi, dword [esp + 0x6c]
mov ecx, ebx
mov edx, esi
push dword [esp + 0x30]
push 0x20
xor eax, eax
push eax
push eax
push edi
call fcn.10084750
add esp, 0x14
test eax, eax
je 0x10089663
mov edi, eax
add eax, 0x2f0
mov ecx, ebx
mov edx, esi
push 0
push eax
call fcn.1008f8c0
add esp, 8
mov eax, dword [esp + 0x10]
mov dword [esp + 0x9c], edi
test byte [eax + 0x28], 0x10
jne 0x10089670
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x54]
mov eax, dword [edx + 0xc]
dec eax
cmp esi, eax
mov eax, 0xffffffff
cmove esi, eax
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x24], 0
mov eax, dword [esp + 0xa4]
js 0x10089095
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10087bb5
mov edx, dword [esp + 0x34]
lea ecx, [eax + 1]
lea eax, [eax + eax*4]
mov dword [edx], ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x44]
mov ecx, dword [ecx]
mov dword [ecx + eax*4], 0x80
mov dword [ecx + eax*4 + 4], ebx
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ebx
jle 0x10087bd2
mov ecx, dword [esp + 0x34]
lea eax, [ebx + 1]
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x44]
mov dword [ecx], eax
mov eax, dword [esp + 0x38]
lea ecx, [ebx + ebx*4]
mov eax, dword [eax]
mov dword [eax + ecx*4], 0x2d
mov dword [eax + ecx*4 + 4], edx
xor edx, edx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], edx
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x40]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
jne 0x10087a7d
mov eax, dword [esp + 0x38]
lea ecx, [ebx + ebx*4]
mov eax, dword [eax]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], esi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10087b95
lea ecx, [eax + 1]
mov esi, dword [esp + 0x78]
lea eax, [eax + eax*4]
mov dword [edx], ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
mov ecx, dword [ecx]
mov dword [ecx + eax*4], 0xc
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], esi
xor esi, esi
mov dword [ecx + eax*4 + 0xc], esi
mov dword [ecx + eax*4 + 0x10], esi
test ebx, ebx
je 0x10087aee
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 0x6c]
cmp byte [ecx + 0x51], 0
jne 0x1008967b
lea ecx, [eax - 1]
test ebx, ebx
mov edx, dword [esp + 0x38]
cmovns ecx, ebx
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [edx]
mov dword [ecx + 8], eax
mov edx, dword [esp + 0x9c]
mov ecx, 1
mov eax, dword [edx + 0x30]
mov esi, edx
test al, 2
cmovne edi, ecx
mov ecx, dword [edx + 0x338]
mov dword [esp + 0x40], edi
xor edi, edi
test byte [ecx + 0x25], 2
je 0x10089685
cmp dword [esp + 0x2c], 0
mov ecx, dword [ecx + 0x20]
mov ebx, dword [esp + 0x54]
jne 0x10087b32
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
jmp 0x10087b3c
cmp ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
jne 0x10087b4e
mov ecx, dword [esp + 0x24]
cmp byte [ecx + 0x24], 0
js 0x10089692
mov edi, dword [esp + 0x1c]
test al, 1
je 0x10087b56
or byte [edx + 0x30], 1
mov ecx, esi
call fcn.1008ba90
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov eax, dword [edx + 0xd8]
test eax, eax
jne 0x100896aa
mov dword [edx + 0xd8], ecx
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], edi
cmp eax, dword [edx + 0xc]
mov ecx, eax
mov eax, edi
jl 0x10087910
jmp 0x10087f51
mov ecx, dword [esp + 0x14]
mov edx, 0xc
push 0
push dword [esp + 0x7c]
push dword [esp + 0x50]
call fcn.1004e590
add esp, 0xc
jmp 0x10087ac0
mov ecx, dword [esp + 0x14]
mov edx, 0x80
push 0
push dword [esp + 0x48]
push ebx
call fcn.1004e590
add esp, 0xc
jmp 0x10087a18
mov ecx, dword [esp + 0x14]
mov edx, 0x2d
push dword [esp + 0x44]
push 0
push dword [esp + 0x84]
call fcn.1004e590
add esp, 0xc
mov ebx, eax
jmp 0x10087a5b
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0xc]
mov cl, byte [eax]
mov edx, ecx
and dl, 0xfe
cmp dl, 0xaa
jne 0x100861f9
jmp 0x10087c3a
mov ecx, dword [esp + 0x14]
mov edx, 0x45
push 0
push eax
push 1
call fcn.1004e590
add esp, 0xc
jmp 0x10086def
mov ecx, dword [esp + 0x14]
xor eax, eax
mov edx, 0x45
push eax
push dword [esp + 0x8c]
xor eax, eax
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x100869d8
mov dword [esp + 0xc], 0
inc dword [edi + 0x124]
jmp 0x1008613a
test byte [eax + 6], 0x10
jne 0x1008729c
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x1008729c
movsx eax, word [eax + 0x20]
test eax, eax
js 0x100872df
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x100872df
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 0xc], 0
je 0x1008729c
jmp 0x100872df
mov esi, dword [eax]
test byte [esi + 5], 8
je 0x10086d54
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jg 0x10085da4
jmp 0x10086d54
mov edx, dword [esp + 0x30]
mov dl, byte [edx + 2]
jmp 0x100862d2
mov eax, dword [edi]
mov dword [ecx + 0x130], eax
jmp 0x10087076
cmp dword [esp + 0xa8], 1
jne 0x100898a4
cmp dword [esp + 0x28], 0
je 0x10087e16
mov edi, dword [esp + 0x18]
movzx ecx, byte [edi + 0x13]
cmp ecx, 7
ja 0x10087e16
mov edx, ecx
inc dl
mov byte [edi + 0x13], dl
mov edx, dword [esp + 0x28]
mov dword [edi + ecx*4 + 0x98], edx
mov dword [esp + 0x28], eax
jmp 0x100861b8
mov esi, dword [esp + 0xd4]
mov edi, dword [esi + 0xc]
mov dword [esp + 0x58], esi
test edi, edi
mov esi, edi
mov dword [esp + 0x5c], edi
jle 0x100898cc
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x5c]
mov esi, dword [esi + 0x14]
lea edi, [edi + edi*2]
shl edi, 4
add edi, esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x28], edi
mov edi, esi
mov esi, dword [edi + 0x28]
mov dword [esp + 0x5c], edi
mov edi, dword [edi + 0x2c]
and esi, dword [esp + 0x84]
and edi, dword [esp + 0x4c]
or edi, esi
je 0x10087e93
mov esi, dword [esp + 0x5c]
mov edi, dword [esi]
mov esi, dword [esp + 0x10]
test byte [edi + 4], 1
je 0x10086b4f
movsx esi, word [edi + 0x24]
cmp dword [ecx + eax*8 + 0x34], esi
jne 0x10086b4b
mov edi, dword [esp + 0x5c]
add edi, 0x30
cmp edi, dword [esp + 0x28]
jb 0x10087e58
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x4c]
add dword [esp + 0x58], 0x30
mov esi, dword [esp + 0x58]
and eax, dword [esi - 8]
and ecx, dword [esi - 4]
or ecx, eax
je 0x10087ec6
mov eax, dword [esp + 0x58]
or byte [eax - 0x26], 4
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x58], eax
jae 0x100898c1
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
add dword [esp + 0x58], 0x30
jmp 0x10087eb0
mov cl, byte [eax + 2]
jmp 0x10086202
xor edi, edi
mov dword [esp + 0x40], 0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xd8]
test eax, eax
jne 0x1008980c
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x50]
test edi, edi
mov dword [ecx + 0xd8], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov dword [eax + ecx + 0x40], edi
je 0x10087f8c
mov edx, dword [esp + 0x30]
mov dword [eax + ecx + 8], edx
mov edi, dword [esp + 0x34]
test esi, esi
je 0x10087fa9
mov ecx, dword [esp + 0x8c]
mov edx, esi
mov dword [esi + 0xc], 0
call fcn.1004bd70
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 0x6c]
cmp byte [ecx + 0x51], 0
jne 0x1008983e
mov edx, dword [esp + 0x90]
lea ecx, [eax - 1]
mov esi, dword [esp + 0x38]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [esi]
mov esi, dword [esp + 0x14]
mov dword [ecx + 4], eax
xor eax, eax
mov edx, 0xb
mov ecx, esi
push eax
mov ebx, dword [esp + 0x64]
push dword [ebx - 4]
push eax
call fcn.1004e520
add esp, 0xc
mov ecx, dword [esi + 0xc]
mov esi, dword [esp + 0x80]
mov eax, dword [ecx + 0x38]
neg esi
add eax, dword [ecx + 0x3c]
js 0x10089848
mov eax, dword [edi]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x40]
test edx, edx
je 0x1008803a
cmp byte [edi + 0x2c], 2
jb 0x1008803a
call fcn.10019c40
xor eax, eax
test esi, esi
je 0x1008985a
mov esi, edi
jmp 0x10085c2e
mov eax, dword [edi]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x134], eax
jmp 0x10087076
mov ecx, dword [esp + 0x14]
mov edx, 0x32
push 0
push dword [esp + 0x64]
push esi
call fcn.1004e590
add esp, 0xc
jmp 0x100872db
mov esi, dword [eax]
test byte [esi + 4], 1
jne 0x10087354
jmp 0x100895fc
mov ecx, dword [eax + 4]
lea edx, [edx + edx*2]
shl edx, 4
mov ecx, dword [ecx + 0x14]
dec byte [ecx + edx + 0xe]
jne 0x1008739e
lea eax, [ecx + edx]
lea ecx, [ecx + edx + 0xa]
mov esi, dword [esp + 0x5c]
dec ebx
movzx edx, word [ecx]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x64], ecx
test dl, 4
je 0x10087342
jmp 0x1008739e
mov ecx, dword [esp + 0x14]
mov edx, 0xd
push eax
push 0
push edi
call fcn.1004e590
add esp, 0xc
jmp 0x1008759a
mov ecx, dword [esp + 0x14]
mov edx, 0xe
push 0
push dword [esp + 0x2c]
push edi
call fcn.1004e590
add esp, 0xc
jmp 0x100875d9
mov eax, dword [edi]
mov dword [ecx + 0x12c], eax
jmp 0x10087076
inc dword [ecx + 0x124]
jmp 0x1008749a
mov eax, edi
mov eax, dword [eax + 0xc]
mov cl, byte [eax]
mov edx, ecx
and dl, 0xfe
cmp dl, 0xaa
mov edx, dword [esp + 0x30]
jne 0x1008727d
jmp 0x100881e1
mov cl, byte [eax + 2]
jmp 0x10087286
mov esi, dword [esp + 0x10]
test esi, esi
je 0x10088238
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0x18]
mov edx, esi
mov dword [ecx + 0x88], eax
mov ecx, dword [esp + 0x94]
call fcn.1008fde0
xor esi, esi
jmp 0x10086859
mov edi, dword [esp + 0x20]
xor eax, eax
xor edx, edx
jmp 0x10085a93
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
movzx ebx, word [eax + 0x28]
mov ecx, dword [ecx + 0x1c]
lea eax, [ebx + 2]
sub ecx, eax
jge 0x100885da
mov edx, dword [esp + 0x74]
mov ecx, dword [edx]
lea esi, [ecx + 1]
add eax, ecx
mov dword [esp + 0x1c], esi
mov dword [edx], eax
jmp 0x100885ed
mov eax, dword [esi + 0x40]
mov dword [esp + 0x4c], 0
test eax, eax
je 0x10088d0d
mov ecx, dword [esp + 0x94]
cmp dword [eax], ecx
je 0x10088d09
mov eax, dword [eax + 0x18]
jmp 0x10088287
xor edi, edi
test al, 0x20
mov ecx, 0
mov edx, 0
je 0x100882bf
mov ecx, dword [esp + 0x2c]
xor edx, edx
inc edx
mov ecx, dword [ecx + 0x30]
mov ecx, dword [ecx]
test al, 0x10
je 0x100882cd
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x30]
mov edi, dword [eax + edx*4]
cmp dword [esp + 0x24], 0
mov esi, ecx
cmove esi, edi
cmove edi, ecx
test edi, edi
je 0x10088d4b
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x2c], eax
mov al, byte [edx]
cmp al, 0xad
jne 0x100882f4
mov al, byte [edx + 2]
cmp al, 0x88
je 0x10088ea3
cmp al, 0xae
jne 0x10088eb4
lea eax, [edx + 0x14]
jmp 0x10088ea9
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + ecx + 0x2c]
test eax, eax
je 0x10085cbe
mov ecx, eax
and eax, 1
mov dword [esp + 0x24], edx
shr ecx, 1
lea edx, [eax + eax + 0x12]
xor eax, eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x14]
push eax
push eax
push dword [esp + 0x54]
call fcn.1004e520
add esp, 0xc
mov dword [esp + 0x4c], eax
push 0x10
push dword [esp + 0xc0]
push dword [esp + 0x2c]
push dword [esp + 0x24]
call fcn.100755f0
add esp, 0x10
cmp dword [esp + 0x4c], 0
je 0x10085cd4
mov eax, dword [esp + 0x14]
mov ecx, 0x101d4a28
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
cmp byte [edx + 0x51], 0
jne 0x1008839b
mov edx, dword [esp + 0x4c]
lea ecx, [eax - 1]
test edx, edx
cmovns ecx, edx
mov edx, dword [esp + 0x38]
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [edx]
mov dword [ecx + 8], eax
jmp 0x10085cd4
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0x20]
add eax, esi
mov dword [esp + 0x1c], esi
mov dword [edx + 0x20], eax
mov dword [edx + 0x1c], ecx
mov eax, dword [esp + 0x60]
test bx, bx
mov eax, dword [eax - 4]
mov dword [esp + 0xc], eax
je 0x10088658
mov eax, dword [esp + 0x1c]
xor edi, edi
lea esi, [eax + 2]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + edi*4]
test edx, edx
je 0x10088653
test byte [edx + 0xc], 1
lea eax, [esi + edi]
jne 0x10088633
mov ecx, dword [edx]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x18]
push 1
push eax
call fcn.10098100
add esp, 8
jmp 0x10088653
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x28]
push edi
push dword [esp + 0x68]
call fcn.10097940
add esp, 0x10
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
inc edi
cmp ebx, edi
jne 0x10088606
mov edi, dword [esp + 0x14]
xor eax, eax
mov edx, 0x45
mov ecx, edi
push eax
mov esi, dword [esp + 0x20]
push esi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], esi
push dword [eax + 0x18]
call fcn.1004e520
add esp, 0xc
lea eax, [esi + 1]
xor esi, esi
mov ecx, edi
mov edx, 0x45
push esi
mov dword [esp + 0x2c], eax
push eax
push ebx
call fcn.1004e520
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov esi, 0
mov ecx, edi
mov edx, 9
cmp byte [eax + 0x1c], 1
mov eax, dword [eax + 0x20]
sbb esi, esi
mov dword [esp + 0x24], eax
or esi, 0xfffffff9
push dword [esp + 0x1c]
push dword [esp + 0x10]
push dword [esp + 0x5c]
call fcn.1004e520
add esp, 0xc
mov ecx, edi
mov edx, eax
push esi
push dword [esp + 0x28]
call fcn.1000f710
add esp, 8
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x8c]
mov byte [eax + 0x1c], 0
cmp byte [ecx + 0x51], 0
je 0x100886fe
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x20], 0
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x54]
mov edx, 0x3d
mov dword [ecx + esi + 0x38], eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x2e], 0
mov eax, 0xae
cmove eax, edx
test bx, bx
mov byte [ecx + esi + 0x35], al
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ecx + esi + 0x3c], eax
je 0x10086080
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
lea eax, [eax + ecx + 0x44]
mov dword [esp + 0x1c], eax
mov eax, dword [eax - 4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
lea edi, [ebx - 1]
mov eax, dword [eax + 0x30]
mov esi, dword [eax + ebx*4 - 4]
movzx eax, word [esi + 0xc]
mov ecx, eax
and ecx, 1
sub dword [esp + 0xc], ecx
cmp ebx, 0x10
jg 0x1008878b
mov ecx, dword [esp + 0x2c]
movzx ecx, word [ecx + 0x1e]
bt ecx, edi
jae 0x1008878b
mov ecx, dword [esp + 0x5c]
mov edx, esi
call fcn.10098220
jmp 0x1008878f
test al, 1
jne 0x1008879e
mov eax, edi
mov ebx, edi
inc eax
cmp eax, 1
jg 0x10088751
jmp 0x10086080
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
mov cl, byte [eax]
cmp cl, 0xad
jne 0x100887ad
mov cl, byte [eax + 2]
cmp cl, 0x88
je 0x100887bc
cmp cl, 0xae
jne 0x100887c9
add eax, 0x14
jmp 0x100887c2
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov eax, dword [eax]
cmp dword [eax], 1
jne 0x1008878f
mov eax, dword [esp + 0x8c]
cmp byte [eax + 0x51], 0
je 0x10088876
mov ecx, dword [esp + 0x18]
xor eax, eax
mov edx, 0x35
push eax
push eax
call fcn.100582e0
add esp, 8
test eax, eax
mov dword [esp + 0x24], eax
je 0x1008878f
mov eax, dword [esi]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x8c]
mov edx, 0xad
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
xor eax, eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], eax
push eax
lea eax, [esp + 0x134]
push eax
call fcn.10062130
add esp, 8
test eax, eax
mov dword [esi + 0x10], eax
je 0x1008885a
add ebx, dword [esp + 0x28]
mov dword [eax + 0x1c], ebx
push 0x10
mov eax, dword [esp + 0x8c]
push dword [eax - 0x38]
push dword [esp + 0x2c]
push dword [esp + 0x24]
call fcn.100755f0
add esp, 0x10
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x8c]
mov dword [edx + 0xc], 0
call fcn.1004bd70
jmp 0x1008878f
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax]
lea ecx, [ecx + ecx*4]
mov ecx, dword [eax + ecx*4 + 4]
test ecx, ecx
jns 0x10088892
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
dec ecx
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
mov eax, 0x101d4a28
cmp byte [edx + 0x51], 0
jne 0x100888af
mov edx, dword [esp + 0x38]
lea eax, [ecx + ecx*4]
shl eax, 2
add eax, dword [edx]
movzx edx, byte [eax]
mov ecx, dword [esp + 0x14]
push dword [eax + 0xc]
push dword [eax + 8]
push dword [eax + 4]
call fcn.1004e520
add esp, 0xc
jmp 0x100887da
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
mov ecx, dword [eax]
inc ecx
mov dword [eax], ecx
mov dword [esp + 0x40], ecx
mov dword [edi + edx + 0x24], ecx
mov ecx, dword [esp + 0x5c]
cmp dword [ecx], 0
je 0x10088907
mov ecx, dword [esp + 0x14]
xor eax, eax
mov edx, 0x45
push eax
push dword [esp + 0x44]
push eax
call fcn.1004e520
add esp, 0xc
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
mov eax, dword [ecx + 0x38]
dec eax
xor edi, edi
mov dword [ecx + 0x38], eax
mov dword [ebx + edx + 0x28], eax
mov ebx, dword [esp + 0x50]
mov al, 1
inc edi
mov dword [esp + 0x48], eax
jmp 0x10085eb3
mov dword [esp + 0xc], 0
jmp 0x10086160
mov ecx, esi
xor edx, edx
mov dword [esp + 0xc], 0
call fcn.10002c70
jmp 0x10086148
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
xor ebx, ebx
cmp dword [esp + 0x24], 0
mov esi, dword [esp + 0x90]
lea eax, [eax + ecx + 8]
sete bl
mov ecx, esi
mov edi, dword [eax]
xor eax, eax
lea edx, [ebx*4 + 0x21]
push eax
push eax
push edi
call fcn.1004e520
add esp, 0xc
xor eax, eax
mov ecx, esi
mov edx, 0xb
push eax
push eax
push eax
call fcn.1004e520
add esp, 0xc
mov dword [esp + 0x98], eax
lea edx, [ebx + ebx*2 + 0x16]
mov ecx, esi
push dword [esp + 0x28]
xor eax, eax
push eax
mov dword [esp + 0xd0], edi
push edi
call fcn.1004e520
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
jne 0x100889e2
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x30]
lea edx, [eax + eax*4]
mov ecx, dword [ecx + 0x68]
mov byte [ecx + edx*4 + 1], 0xfd
mov dword [ecx + edx*4 + 0x10], esi
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
mov dword [ecx + edx + 0x14], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
mov eax, dword [eax + 0x6c]
cmp byte [ecx + 0x51], 0
mov ecx, 0x101d4a28
jne 0x10088a24
mov edx, dword [esp + 0x98]
lea ecx, [eax - 1]
mov esi, dword [esp + 0x90]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [esi + 0x68]
mov edi, dword [esp + 0x80]
mov ebx, dword [esp + 0x30]
xor esi, esi
mov dword [ecx + 8], eax
inc edi
mov ecx, dword [esp + 0x90]
lea eax, [edi + esi]
mov edx, 0x59
push eax
push esi
push dword [esp + 0xd0]
call fcn.1004e520
add esp, 0xc
inc esi
cmp esi, ebx
jb 0x10088a35
jmp 0x10086179
mov ecx, dword [esp + 0x14]
mov edx, 0x45
push 0
push dword [esp + 0x44]
push 1
call fcn.1004e520
add esp, 0xc
jmp 0x100864a5
mov esi, dword [esp + 0x14]
xor edi, edi
mov ebx, edx
mov edx, 0xb
mov eax, dword [esi + 0x6c]
mov ecx, esi
add eax, 2
push edi
push eax
push edi
call fcn.1004e520
add esp, 0xc
mov ecx, dword [esp + 0x24]
xor eax, eax
cmp ebx, 1
setg al
movzx edx, byte [ecx + eax*4 + 0x10198e4e]
mov ecx, esi
push dword [esp + 0x28]
push dword [esp + 0x64]
push dword [esp + 0x74]
call fcn.1004e520
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
jne 0x10088e21
cmp dword [ecx + 0x1f0], 0
jne 0x100858da
dec dword [eax]
jne 0x100858da
mov ecx, dword [eax + 0xc]
mov edx, eax
call fcn.10019c40
jmp 0x100858da
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
xor ebx, ebx
mov edx, 0x48
add eax, esi
push ebx
push eax
mov dword [esp + 0x88], 0
push ebx
call fcn.1004e520
add esp, 0xc
xor eax, eax
lea edx, [esi + 1]
inc eax
mov ecx, eax
jmp 0x10088c0f
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
xor ebx, ebx
mov edx, 0x48
add eax, esi
push ebx
push eax
push ebx
call fcn.1004e520
xor ecx, ecx
add esp, 0xc
xor eax, eax
lea edx, [esi + 1]
inc eax
mov dword [esp + 0x90], eax
jmp 0x10086406
push dword [esp + 0xc]
mov eax, dword [esp + 0x24]
push dword [eax]
push str.too_many_arguments_on__s_____max__d
push dword [esp + 0x24]
call fcn.1000f470
add esp, 0x10
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x24]
jmp 0x100849ce
test edi, edi
cmove edi, eax
call fcn.10092f50
lea ecx, [esp + 0x130]
test eax, eax
jne 0x10084c98
test edi, edi
je 0x10084afc
jmp 0x10084cb0
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x14]
xor eax, eax
mov edx, 0xa6
push eax
push eax
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x14]
push dword [eax + edi*8 + 0x34]
call fcn.1004e520
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, eax
push 0xfffffffffffffff4
push dword [esp + 0x50]
call fcn.1000f710
add esp, 8
mov edi, dword [esp + 0x34]
jmp 0x100857a8
xor eax, eax
cmp dword [esp + 0x24], 0
mov ecx, dword [esp + 0x14]
sete al
lea edx, [eax*4 + 0x21]
push 0
push dword [esp + 0x20]
push dword [esp + 0x5c]
call fcn.1004e520
add esp, 0xc
test esi, esi
je 0x10088dbe
mov ecx, dword [esp + 0x18]
mov edi, dword [esi]
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov edx, dword [edi + 0x10]
push 1
mov dword [esp + 0x10], eax
push eax
call fcn.10098100
add esp, 8
mov eax, dword [edi + 0x10]
mov cl, byte [eax]
cmp cl, 0xad
mov edx, ecx
jne 0x10088da4
mov dl, byte [eax + 2]
cmp dl, 0x88
je 0x10088f32
cmp dl, 0xae
jne 0x10088f3f
lea edx, [eax + 0x14]
jmp 0x10088f38
mov dword [esp + 0x2c], 0xae
mov dword [esp + 0xc], 0
jmp 0x10088fe7
mov edx, dword [esp + 0xc]
mov eax, dword [ebx + 0x28]
lea ecx, [edx + edx*4]
mov eax, dword [eax + ecx*4 + 4]
lea ecx, [esp + 0x130]
mov dword [esp + 0x13c], eax
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x138], eax
mov word [esp + 0x178], 0xfffe
call fcn.10093200
jmp 0x10084bf6
xor eax, eax
xor edx, edx
jmp 0x10086a92
mov dword [esp + 0x64], 0
mov esi, dword [esp + 0x40]
jmp 0x10086559
mov eax, dword [esp + 0x1c]
mov ecx, 0x66666667
xor ebx, ebx
mov eax, dword [eax + 8]
movsx eax, word [eax]
add eax, 9
imul ecx
mov eax, edx
mov ecx, edx
mov edx, 0x76
shr ecx, 0x1f
sar eax, 2
add eax, ecx
mov ecx, dword [esp + 0x14]
push ebx
push ebx
mov ebx, dword [esp + 0x88]
push eax
call fcn.1004e520
add esp, 0xc
mov dword [esp + 0x64], eax
jmp 0x100864d7
mov eax, dword [edx + 0x14]
add eax, 0x1c
mov eax, dword [eax]
cmp dword [eax], 2
jge 0x10088f7e
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x130]
push eax
call fcn.100735c0
add esp, 4
mov ecx, dword [esp + 0x5c]
mov edx, edi
mov ebx, eax
call fcn.10098220
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x130]
movzx eax, byte [eax]
add eax, 0xffffffca
movzx edx, byte [eax + 0x10198e48]
mov ecx, dword [esp + 0x14]
push ebx
push dword [esp + 0x2c]
push dword [esp + 0x5c]
call fcn.1004e520
add esp, 0xc
test edi, edi
je 0x10088d72
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x10088d72
mov edx, dword [esp + 0x18]
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov dword [edx + eax*4 + 0x98], edi
jmp 0x10088d72
mov edx, dword [eax + 0x14]
add edx, 0x1c
mov edx, dword [edx]
cmp dword [edx], 1
jg 0x10088f5b
mov dl, byte [edi]
cmp dl, 0x38
je 0x10088f4b
cmp dl, 0x36
jne 0x10088f5b
xor edx, edx
cmp dword [esp + 0x24], 0
sete dl
lea edx, [edx + edx + 0x37]
jmp 0x10088f63
mov edx, dword [esp + 0x24]
lea edx, [edx + edx + 0x36]
cmp cl, 0xad
mov dword [esp + 0x2c], edx
jne 0x10088f6f
mov cl, byte [eax + 2]
cmp cl, 0x88
je 0x10088fcf
cmp cl, 0xae
jne 0x10088fdc
add eax, 0x14
jmp 0x10088fd5
mov eax, dword [esp + 0x18]
mov al, byte [eax + 0x13]
test al, al
je 0x1008913e
mov ecx, dword [esp + 0x18]
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov edi, dword [ecx + eax*4 + 0x98]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x130], edi
mov ecx, dword [esp + 0x18]
mov edx, dword [ebx + 0x10]
push 1
push edi
call fcn.10098100
add esp, 8
mov al, byte [ebx]
mov ebx, edi
inc al
and al, 2
or al, 1
movzx eax, al
jmp 0x10088ee6
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov eax, dword [eax]
cmp dword [eax], 1
jg 0x10088fe7
mov ecx, dword [esp + 0x5c]
mov edx, esi
call fcn.10098220
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x54]
xor bl, 5
mov eax, dword [eax]
cmp dword [esp + 0x2c], 0xae
mov byte [ecx + edx + 0x35], bl
mov dword [ecx + edx + 0x38], esi
mov dword [ecx + edx + 0x3c], eax
je 0x10086080
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x14]
mov edx, 0x80
mov ebx, dword [eax]
mov ecx, edi
inc ebx
mov dword [eax], ebx
push 0
push ebx
push dword [esp + 0x5c]
call fcn.1004e520
add esp, 0xc
mov edx, dword [esp + 0x2c]
mov ecx, edi
push ebx
push dword [esp + 0x2c]
push dword [esp + 0x14]
call fcn.1004e520
add esp, 0xc
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x10086080
mov ecx, dword [esp + 0x38]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
mov word [ecx + eax*4 - 0x12], 0x53
jmp 0x10086080
mov edx, dword [esp + 0xa0]
push edi
call fcn.1002cc10
add esp, 4
jmp 0x100867f4
xor edx, edx
test ecx, ecx
sete dl
jmp 0x10086306
mov eax, dword [eax]
mov ecx, dword [eax + 0x38]
mov dword [esp + 0xa8], eax
add eax, 0x14
and ecx, 3
cmp ecx, 2
jne 0x10089095
mov eax, dword [esp + 0xa8]
movzx eax, word [eax + 0x32]
mov edi, eax
cmp eax, 1
jne 0x1008986e
mov eax, dword [esp + 0x18]
mov al, byte [eax + 0x13]
test al, al
je 0x10089b0f
mov ecx, dword [esp + 0x18]
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x98]
mov dword [esp + 0x98], eax
jmp 0x10089962
test edi, edi
lea ecx, [esp + 0x130]
cmove edi, eax
call fcn.10092f50
xor edx, edx
test eax, eax
jne 0x10084c05
test edi, edi
jne 0x10084c21
mov ecx, dword [esp + 0xc]
jmp 0x10084c43
cmp byte [esi + 0x1c], 0
je 0x100868d2
push dword [esi + 0x20]
call sym.nss3.dll_sqlite3_free
mov ecx, dword [esp + 0x28]
add esp, 4
mov byte [esi + 0x1c], 0
jmp 0x10086909
mov eax, dword [esp + 0x74]
mov edi, dword [eax]
inc edi
mov dword [eax], edi
jmp 0x10088fa0
mov ecx, dword [esp + 0x34]
lea eax, [esi + 0x2d]
mov cl, byte [ecx]
mov byte [eax], cl
jmp 0x10084f14
mov ecx, dword [esp + 0x10]
mov byte [ecx + 0x2f], 1
jmp 0x10084f2b
bt edi, 0x12
jb 0x100892a9
add esi, 0xc
jmp 0x100892af
mov esi, dword [esi + 0x14]
add esi, 4
mov esi, dword [esi]
mov ebx, dword [ebp + 0x10]
test esi, esi
jne 0x10085021
jmp 0x10085049
xor eax, eax
xor edx, edx
jmp 0x10087194
mov eax, dword [ebp + 0x18]
mov ecx, dword [ecx + 0x14]
inc eax
test ecx, ecx
je 0x10089605
cmp ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x34]
je 0x10086c09
jmp 0x100892cd
mov ecx, esi
xor edx, edx
call fcn.10002c70
jmp 0x100874a6
mov eax, dword [esi + 0x28]
lea ecx, [ebx + ebx*4]
mov eax, dword [eax + ecx*4 + 4]
lea ecx, [esp + 0x130]
mov dword [esp + 0x13c], eax
mov eax, dword [esi + 0x20]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x138], eax
mov word [esp + 0x178], 0xfffe
call fcn.10093200
jmp 0x10085122
bt ecx, 0x12
jb 0x1008962e
add edx, 0xc
jmp 0x10089634
movzx ecx, word [edx + 0x20]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc]
mov word [esp + 0x24], cx
mov ecx, dword [esi + 4]
movzx ebx, word [esp + 0x24]
cmp bx, word [ecx + eax*2]
mov eax, edx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xc]
jne 0x10085162
mov ecx, dword [esp + 0x20]
cmp dword [eax + 0x1c], ecx
jne 0x10085162
mov ecx, dword [esp + 0x18]
call fcn.1004fb90
test eax, eax
jne 0x10089411
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + ecx]
cmp dl, al
jne 0x10089437
test dl, dl
mov edx, dword [esp + 0xc]
jne 0x1008944d
jmp 0x10089450
mov dl, byte [edx + 0x10194380]
mov ebx, dword [esp + 0xc]
cmp dl, byte [eax + 0x10194380]
jne 0x10085162
inc ecx
jmp 0x10089419
mov eax, dword [esi + 4]
movzx eax, word [eax + edx*2]
test ax, ax
js 0x10089768
mov ecx, dword [esi + 0xc]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 4]
movzx ecx, byte [ecx + eax*4 + 0xc]
mov ebx, dword [esp + 0xc]
test ecx, ecx
mov edi, 0
jne 0x1008518b
jmp 0x10085198
mov ecx, dword [esp + 0x1c]
test ecx, ecx
cmove ecx, eax
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x130]
call fcn.10092f50
mov edi, dword [esp + 0x2c]
test eax, eax
jne 0x10086d0b
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x10085da4
jmp 0x10086d3e
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x20]
mov edx, 0x45
mov eax, dword [ecx]
inc eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x3c]
mov dword [ecx + ebx + 0x2c], eax
mov ecx, dword [esp + 0x14]
push 0
push eax
push 1
call fcn.1004e520
add esp, 0xc
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0x44]
mov eax, dword [eax + 0x6c]
mov dword [edx + ebx + 0x30], eax
mov eax, dword [edx + ebx + 0x2c]
lea ecx, [eax + eax]
mov dword [edx + ebx + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x40]
cmp byte [ecx + edi], 1
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0xa8]
sete dl
xor edx, dword [esp + 0x24]
lea eax, [edx + eax*2]
mov dword [ecx + ebx + 0x2c], eax
mov ebx, dword [esp + 0x50]
jmp 0x10087214
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
mov eax, dword [eax + 4]
movzx eax, word [eax + ecx*2]
test ax, ax
js 0x10089776
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
cmp byte [ecx + eax*4 + 0xc], 0
je 0x10089780
mov dword [esp + 0x48], 0
mov ebx, dword [esp + 0x50]
jmp 0x10085e92
mov eax, dword [esp + 0x14]
mov ebx, esi
mov esi, edi
mov ecx, dword [eax]
mov eax, 0x101d4a28
cmp byte [ecx + 0x51], 0
jne 0x100895aa
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4 - 0x14]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x20]
mov ecx, dword [edx + edi + 0x2c]
shr ecx, 1
mov dword [eax + 0xc], ecx
movzx ecx, word [edx + edi + 0x2c]
mov edi, esi
mov esi, ebx
and ecx, 1
mov word [eax + 2], cx
jmp 0x10087269
mov al, byte [edi + 2]
jmp 0x1008730e
mov edi, dword [edi + 0x14]
add edi, 0x1c
jmp 0x100895e3
add edi, 0x14
mov eax, dword [edi]
mov esi, dword [esp + 0x5c]
cmp dword [eax], 1
jle 0x10087326
xor eax, eax
inc eax
mov dword [esp + 0x80], eax
mov edi, dword [esp + 0xc]
jmp 0x1008739e
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x34]
jmp 0x10086c09
xor eax, eax
jmp 0x1008787f
mov edx, dword [edx + 0x14]
add edx, 4
mov edx, dword [edx]
test edx, edx
jne 0x1008514a
jmp 0x10085162
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x64], eax
jmp 0x10087b7b
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x54]
jmp 0x10087b77
xor ebx, ebx
mov edi, dword [esp + 0x40]
jmp 0x10087a7d
mov ecx, 0x101d4a28
jmp 0x10087aeb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x54]
jmp 0x10087b4e
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x38]
and ecx, 3
cmp ecx, 2
jne 0x10087b4a
jmp 0x10087b4e
mov ecx, dword [edx + 8]
jns 0x100896b3
mov eax, dword [ecx + 0x6c]
dec eax
mov esi, dword [ecx]
mov edx, 0x101d4a28
cmp byte [esi + 0x51], 0
jne 0x100896c9
lea edx, [eax + eax*4]
shl edx, 2
add edx, dword [ecx + 0x68]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x54]
jmp 0x10087b71
xor ecx, ecx
cmp ax, 0xffff
sete cl
jmp 0x1008946e
cmp ax, 0xfffe
jne 0x10089571
mov al, 1
mov dword [esp + 0x48], eax
jmp 0x10089579
test edi, edi
cmove edi, eax
lea ecx, [esp + 0x130]
call fcn.10092f50
test eax, eax
jne 0x10085173
test edi, edi
mov edi, 0
jne 0x1008518b
jmp 0x10085126
mov eax, dword [esi + 4]
mov dword [esp + 0x6c], eax
jmp 0x100877af
mov ecx, edx
xor edx, edx
call fcn.10002c70
jmp 0x10087737
mov ecx, dword [esp + 0x88]
jmp 0x10085df5
mov eax, dword [esp + 0x24]
xor edi, edi
mov eax, dword [eax + 8]
test eax, eax
je 0x10089b26
mov ecx, dword [eax + 0x38]
and ecx, 3
cmp ecx, 2
je 0x10089b24
mov eax, dword [eax + 0x14]
jmp 0x100897e5
mov edi, dword [esp + 0x18]
xor ebx, ebx
jmp 0x100878bf
mov ecx, dword [ecx + 8]
jns 0x10089815
mov eax, dword [ecx + 0x6c]
dec eax
mov esi, dword [ecx]
mov edx, 0x101d4a28
cmp byte [esi + 0x51], 0
jne 0x1008982b
lea edx, [eax + eax*4]
shl edx, 2
add edx, dword [ecx + 0x68]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
jmp 0x10087f63
mov ecx, 0x101d4a28
jmp 0x10087fd7
mov edx, dword [esp + 0x14]
push esi
call fcn.10078ce0
add esp, 4
jmp 0x10088018
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0xc]
call fcn.10098220
xor eax, eax
jmp 0x10088044
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x1c]
sub eax, edi
jge 0x10089947
mov ecx, dword [esp + 0x74]
mov eax, dword [ecx]
lea edx, [eax + 1]
add eax, edi
mov dword [esp + 0x98], edx
mov dword [ecx], eax
jmp 0x1008995d
mov ecx, dword [esp + 0x90]
mov edx, 0x4e
push 0
push edi
push eax
call fcn.1004e520
add esp, 0xc
jmp 0x100861b8
mov eax, dword [esp + 0x10]
mov al, byte [eax + 0x2c]
mov byte [esp + 0xc], al
movzx eax, byte [esp + 0xc]
not dword [esp + 0x4c]
not dword [esp + 0x84]
cmp dword [esp + 0x1c], eax
je 0x10089910
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x24]
sub eax, ecx
imul ecx, ecx, 0x58
add esi, edx
imul eax, eax, 0x58
add ecx, edx
push eax
push ecx
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x10]
mov al, byte [eax + 0x2c]
mov byte [esp + 0xc], al
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x4c]
mov cl, byte [esp + 0xc]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
dec dword [esp + 0xb4]
and dword [esp + 0xac], eax
and dword [esp + 0x68], edx
dec cl
mov byte [esp + 0xc], cl
mov byte [esi + 0x2c], cl
jmp 0x10086aff
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x98], ecx
add ecx, edi
mov dword [edx + 0x20], ecx
mov dword [edx + 0x1c], eax
test di, di
je 0x100899a4
xor ebx, ebx
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 4]
movsx eax, word [eax + ebx*2]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x98]
lea eax, [eax + ebx]
push eax
push dword [esp + 0xcc]
push dword [esp + 0x5c]
call fcn.10075b90
add esp, 0xc
inc ebx
cmp edi, ebx
jne 0x10089964
test esi, esi
je 0x100899ef
mov ecx, dword [esp + 0x14]
mov edx, 0x1e
push dword [esp + 0x98]
push 0
push dword [esp + 0x84]
call fcn.1004e520
add esp, 0xc
mov ebx, eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
jne 0x100899e9
mov eax, dword [esp + 0x38]
lea ecx, [ebx + ebx*4]
mov eax, dword [eax]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
test esi, esi
jns 0x100899f1
jmp 0x10089a6d
xor ebx, ebx
mov ecx, dword [esp + 0x14]
mov edx, 0x5b
push dword [esp + 0x44]
push edi
push dword [esp + 0xa0]
call fcn.1004e520
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, 0x83
push dword [esp + 0x98]
push dword [esp + 0x48]
push dword [esp + 0x84]
call fcn.1004e520
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
cmp byte [ecx + 0x51], 0
jne 0x10089a4f
mov ecx, dword [esp + 0x38]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], edi
test esi, esi
je 0x10089a6d
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
test eax, eax
jle 0x10089a6d
mov ecx, dword [esp + 0x38]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
mov word [ecx + eax*4 - 0x12], 0x10
cmp di, 1
jne 0x10089ab0
cmp dword [esp + 0x98], 0
je 0x10089672
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x10089672
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x98]
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov dword [edx + eax*4 + 0x98], esi
jmp 0x10089672
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x1c], edi
jge 0x10089672
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x98]
mov dword [eax + 0x1c], edi
mov dword [eax + 0x20], ecx
jmp 0x10089672
mov eax, dword [esp + 0x74]
mov ecx, dword [eax]
inc ecx
mov dword [esp + 0x98], ecx
mov dword [eax], ecx
jmp 0x10089962
mov edi, eax
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, 0x64
mov esi, dword [ebx + 0x28]
lea eax, [esi + 1]
mov dword [ebx + 0x28], eax
movzx eax, word [edi + 0x32]
push 0
push eax
mov dword [esp + 0x84], esi
push esi
call fcn.1004e520
add esp, 0xc
mov esi, dword [ebx + 8]
mov ecx, ebx
mov edx, edi
call fcn.10070f10
test eax, eax
je 0x10089b96
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
je 0x10089b84
cmp dword [ecx + 0x1f0], 0
jne 0x10089b96
dec dword [eax]
jne 0x10089b96
mov ecx, dword [eax + 0xc]
mov edx, eax
call fcn.10019c40
jmp 0x10089b96
mov edx, dword [esi + 0x6c]
mov ecx, dword [esi + 0x68]
lea edx, [edx + edx*4]
mov byte [ecx + edx*4 - 0x13], 0xf7
mov dword [ecx + edx*4 - 4], eax
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x74]
jmp 0x100877fd