Function at 0x1003ef90
Capabilities:
Authenticate hmac
Encode data using base64
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 esi, edx
movzx eax, word [ebp + 0x14]
mov edx, dword [0x101db014]
xor edx, ebp
mov dword [esp + 0x198], edx
mov edx, dword [ecx + 8]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
mov ebx, dword [ecx]
xorps xmm0, xmm0
movups xmmword [esp + 0xdc], xmm0
movaps xmmword [esp + 0xd0], xmm0
mov ecx, dword [ebp + 0xc]
xor edx, edx
test ecx, ecx
jne 0x1003f4b0
mov dword [esp + 0x24], edx
mov dword [esp + 0xd8], edx
mov ecx, eax
and ecx, 0xfffffeff
test byte [ebx + 0x4c], 0x10
cmove ecx, eax
mov dword [esp + 0x70], esi
mov eax, dword [esi]
cmp eax, 0x41
jge 0x1003fa1d
mov dword [esp + 0x20], ecx
movzx ecx, cx
xor edx, edx
inc edx
mov dword [esp + 0xb4], ecx
and ecx, 0x20
mov dword [esp + 0x40], ecx
cmovne eax, edx
mov dword [esp + 0xb8], eax
imul esi, eax, 0x58
lea edi, [esi + 0x2f7]
and edi, 0xfffffff8
lea edx, [edi + 0x48]
mov dword [esp + 0x7c], ebx
movzx eax, word [ebx + 0x11c]
cmp edx, eax
ja 0x1003f07c
cmp edx, 0x80
ja 0x1003f4c7
mov ebx, dword [esp + 0x7c]
mov eax, dword [ebx + 0x140]
test eax, eax
je 0x1003f4bd
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov dword [ebx + 0x140], eax
inc dword [ebx + 0x128]
jmp 0x1003f0a7
mov ebx, dword [esp + 0x7c]
cmp dword [ebx + 0x118], 0
je 0x1003f854
cmp byte [ebx + 0x53], 0
jne 0x10042da5
mov ecx, ebx
push 0
call fcn.10143c10
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x44], esi
cmp byte [ebx + 0x53], 0
jne 0x1003fa35
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov dword [esi], ecx
mov eax, dword [esp + 0x70]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 8], eax
mov dword [esi + 0x10], edx
mov dword [esi + 0xc], ebx
xor eax, eax
dec eax
mov dword [esi + 0x18], eax
mov dword [esp + 0xb0], eax
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0xb8]
mov byte [esi + 0x2c], al
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x20]
mov word [esi + 0x28], ax
mov eax, dword [ebp + 0x18]
mov word [esi + 0x2a], ax
mov eax, dword [ecx + 0x84]
mov dword [esi + 0x24], eax
xorps xmm0, xmm0
movups xmmword [esi + 0x2d], xmm0
movups xmmword [esi + 0x3d], xmm0
xor ebx, ebx
mov dword [esi + 0x4c], ebx
mov edx, dword [esp + 0x44]
add edx, 0x48
lea eax, [esi + 0x2f0]
push edx
push ebx
mov dword [esp + 0x4c], eax
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 0xd0], esi
lea ecx, [esi + 0x50]
mov dword [esp + 0xd4], ecx
lea eax, [esi + edi]
mov dword [esp + 0xdc], eax
lea eax, [esi + edi + 0x38]
mov dword [eax - 8], eax
mov word [eax - 0x10], 0
mov word [eax - 0xc], 3
mov dword [eax - 0x14], ebx
mov dword [esi + 0x1ec], ebx
mov dword [esi + 0x50], esi
mov byte [esi + 0x59], 0
mov dword [esi + 0x54], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], 8
lea eax, [esi + 0x68]
mov dword [esi + 0x64], eax
mov dword [esp + 0xbc], ecx
mov edx, dword [ebp + 8]
push 0x2c
call fcn.10044510
add esp, 4
cmp dword [esp + 0xb8], 0
je 0x1003f51b
lea eax, [ebx + ebx*8]
mov edi, dword [esp + 0x70]
mov ecx, dword [edi + eax*8 + 0x34]
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x1ec]
lea edx, [ecx + 1]
mov dword [esi + 0x1ec], edx
mov edx, dword [esp + 0x2c]
mov dword [esi + ecx*4 + 0x1f0], edx
test byte [edi + eax*8 + 0x30], 4
jne 0x1003f87d
inc ebx
cmp ebx, dword [edi]
jl 0x1003f1b7
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x5c]
test esi, esi
jle 0x1003f21d
inc esi
lea eax, [esi - 2]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0xbc]
push eax
call fcn.10049730
add esp, 4
dec esi
cmp esi, 1
jg 0x1003f200
mov eax, dword [esp + 0x7c]
cmp byte [eax + 0x53], 0
jne 0x10042d40
mov eax, dword [esp + 0xd4]
cmp dword [eax + 0xc], 0
jle 0x1003f267
xor edi, edi
xorps xmm0, xmm0
xor ebx, ebx
mov esi, dword [eax + 0x14]
test byte [esi + edi + 0xa], 2
jne 0x1003f257
mov eax, dword [esi + edi + 0x28]
or eax, dword [esi + edi + 0x2c]
je 0x1003f7bf
inc ebx
mov eax, dword [esp + 0xd4]
add edi, 0x30
cmp ebx, dword [eax + 0xc]
jl 0x1003f23f
bt dword [esp + 0xb4], 8
jb 0x1003f54d
cmp dword [esp + 0xb8], 1
jne 0x1003fc5d
mov eax, dword [esp + 0xd0]
test byte [eax + 0x28], 0x20
jne 0x1003fc5d
mov ecx, dword [eax + 4]
mov ebx, dword [ecx + 0x18]
cmp dword [ebx + 0x38], 0
jne 0x1003fc5d
test byte [ecx + 0x30], 2
jne 0x1003fc5d
mov dword [esp + 0x10], ecx
mov edx, dword [ecx + 0x34]
mov dword [esp + 0x24], eax
add eax, 0x50
mov esi, dword [esp + 0xdc]
xor edi, edi
mov dword [esi + 0x24], edi
mov word [esi + 0x2a], 0
lea ecx, [esp + 0x130]
mov dword [ecx], eax
mov dword [esp + 0x28], 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 [esp + 0x2c], edx
mov dword [ecx + 0x1c], edx
mov word [ecx + 0x11], 0x101
mov word [ecx + 0x48], 0xffff
call fcn.10048b90
test eax, eax
jne 0x1003fc1a
mov ebx, dword [ebx + 8]
test ebx, ebx
mov edi, dword [esp + 0x24]
je 0x1003fc53
xor edx, edx
cmp byte [ebx + 0x36], 0
jne 0x1003f336
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x1003f324
jmp 0x1003fc53
cmp dword [ebx + 0x24], 0
jne 0x1003f32a
movzx eax, word [ebx + 0x32]
cmp ax, 3
ja 0x1003f32a
test ax, ax
je 0x1003f4ff
mov al, byte [ebx + 0x38]
and al, 8
shr al, 3
movzx edi, al
shl edi, 7
or edi, 2
xor ecx, ecx
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x28]
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], eax
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 eax, dword [esp + 0x2c]
mov dword [esp + 0x14c], eax
mov word [esp + 0x141], 0x101
mov eax, dword [ebx + 4]
mov dword [esp + 0x34], ecx
movsx eax, word [eax + ecx*2]
cmp eax, 0xfffffffe
je 0x1003fa7c
mov ecx, dword [ebx + 0xc]
cmp ax, word [ecx + 0x28]
je 0x1003f455
test ax, ax
js 0x1003f3f9
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 [ebx + 0x20]
mov edx, dword [esp + 0x34]
mov ecx, dword [ecx + edx*4]
mov dword [esp + 0x138], ecx
mov word [esp + 0x178], ax
lea ecx, [esp + 0x130]
call fcn.10048b90
test eax, eax
mov edx, 0
mov ecx, dword [esp + 0x34]
je 0x1003f45a
xor edi, edi
mov ecx, dword [eax + 0x20]
or ecx, dword [eax + 0x24]
jne 0x1003faad
movzx ecx, word [eax + 0xc]
test dword [esp + 0xc], ecx
je 0x1003faad
mov edi, eax
mov eax, dword [esi + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [eax + ecx*4], edi
inc ecx
movzx eax, word [ebx + 0x32]
cmp ecx, eax
mov edi, dword [esp + 0xc]
jb 0x1003f366
jmp 0x1003f45a
xor eax, eax
dec eax
jmp 0x1003f3f9
movzx eax, word [ebx + 0x32]
cmp ecx, eax
mov edi, dword [esp + 0x24]
jne 0x1003f32a
mov dword [esi + 0x24], 0x1201
test byte [ebx + 0x38], 0x20
jne 0x1003f493
mov eax, dword [ebx + 0x44]
mov edx, dword [esp + 0x10]
and eax, dword [edx + 0x44]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebx + 0x40]
and ecx, dword [edx + 0x40]
or ecx, eax
mov ecx, dword [esp + 0x34]
jne 0x1003f49a
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 0x1003fc53
xor edx, edx
cmp dword [ecx], 0x3f
cmovle edx, ecx
jmp 0x1003efe1
mov eax, dword [ebx + 0x13c]
test eax, eax
jne 0x1003f506
mov ebx, dword [esp + 0x7c]
mov eax, dword [ebx + 0x138]
test eax, eax
jne 0x1003f4ee
mov eax, dword [ebx + 0x134]
test eax, eax
jne 0x1003f843
inc dword [ebx + 0x130]
jmp 0x1003f097
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov dword [ebx + 0x138], eax
jmp 0x1003f074
xor ecx, ecx
jmp 0x1003f45a
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov ebx, dword [esp + 0x7c]
mov dword [ebx + 0x13c], eax
jmp 0x1003f074
cmp dword [esp + 0x24], 0
jne 0x1003fb34
bt dword [esp + 0xb4], 8
jb 0x1003fb48
push str.SCAN_CONSTANT_ROW
push 0
push dword [esp + 0x20]
call fcn.10036110
add esp, 0xc
jmp 0x1003f1f4
mov eax, dword [esp + 0x70]
cmp dword [eax], 1
jne 0x1003f85f
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x34]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
jle 0x1003f5b4
xor edx, edx
lea esi, [edx + edx*4]
mov edi, dword [ebp + 0x10]
mov esi, dword [edi + esi*4 + 8]
test esi, esi
je 0x1003f5af
mov edi, dword [esi + 4]
test edi, 0x41000
jne 0x1003fb1b
mov bl, byte [esi]
cmp bl, 0xa6
jne 0x1003fb26
mov edi, dword [esp + 0x2c]
cmp dword [esi + 0x1c], edi
jne 0x1003f5af
cmp word [esi + 0x20], 0
js 0x1003f7b2
inc edx
cmp edx, ecx
jne 0x1003f573
mov esi, dword [eax + 8]
test esi, esi
je 0x1003f85f
xor ebx, ebx
lea edi, [esp + 0x130]
cmp byte [esi + 0x36], 0
jne 0x1003f5da
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x1003f5c8
jmp 0x1003f85f
cmp dword [esi + 0x24], 0
jne 0x1003f5ce
xor edx, edx
cmp word [esi + 0x32], 0
je 0x1003f7a6
xor edx, edx
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x13c], ebx
mov byte [esp + 0x140], 0
mov dword [esp + 0x138], ebx
mov dword [esp + 0x144], 2
mov dword [esp + 0x148], ebx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14c], eax
mov word [esp + 0x141], 0x101
mov eax, dword [esi + 4]
movsx eax, word [eax + edx*2]
cmp eax, 0xfffffffe
mov dword [esp + 0x28], edx
je 0x1003fb62
mov ecx, dword [esi + 0xc]
cmp ax, word [ecx + 0x28]
je 0x1003f773
test ax, ax
js 0x1003f689
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 edx, dword [esp + 0x28]
mov ecx, dword [ecx + edx*4]
mov dword [esp + 0x138], ecx
mov word [esp + 0x178], ax
mov ecx, edi
call fcn.10048b90
test eax, eax
mov edx, dword [esp + 0x28]
jne 0x1003f77b
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
test ecx, ecx
jle 0x1003fb8f
mov ecx, dword [esi + 0x20]
mov ecx, dword [ecx + edx*4]
mov dword [esp + 0x34], ecx
xor ecx, ecx
mov dword [esp + 0x10], ecx
lea ecx, [ecx + ecx*4]
mov edx, dword [eax + ecx*4 + 8]
test edx, edx
je 0x1003faf4
mov ecx, edx
mov ebx, dword [ecx + 4]
test ebx, 0x41000
jne 0x1003fb9b
mov bl, byte [ecx]
cmp bl, 0xa6
jne 0x1003fba6
movzx ebx, word [ecx + 0x20]
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x28]
cmp bx, word [eax + edi*2]
jne 0x1003faf4
mov eax, dword [esp + 0x2c]
cmp dword [ecx + 0x1c], eax
mov edi, dword [esp + 0x34]
jne 0x1003faf4
mov ecx, dword [esp + 0x18]
call fcn.100357f0
test eax, eax
je 0x1003fbb4
mov eax, dword [eax]
xor ecx, ecx
movzx edx, byte [eax + ecx]
movzx ebx, byte [edi + ecx]
cmp dl, bl
jne 0x1003fad9
test dl, dl
je 0x1003f742
inc ecx
jmp 0x1003f72b
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x28]
movzx eax, word [eax + edx*2]
test ax, ax
js 0x1003fbc2
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
movzx ecx, byte [ecx + eax*4 + 0xc]
xor ebx, ebx
lea edi, [esp + 0x130]
test ecx, ecx
je 0x1003f7a6
jmp 0x1003f799
xor eax, eax
dec eax
jmp 0x1003f689
mov dword [esp + 0x34], 0
mov ecx, dword [eax + 0x20]
or ecx, dword [eax + 0x24]
jne 0x1003fbf2
test byte [eax + 0xc], 2
je 0x1003fbe5
inc edx
movzx eax, word [esi + 0x32]
cmp edx, eax
jb 0x1003f5ef
movzx eax, word [esi + 0x32]
cmp edx, eax
jne 0x1003f5ce
mov eax, dword [esp + 0x14]
mov byte [eax + 0x2f], 1
jmp 0x1003f276
cmp dword [esp + 0xb8], 0
je 0x1003f81e
mov edx, dword [esi + edi]
movups xmmword [esp + 0x13c], xmm0
movaps xmmword [esp + 0x130], xmm0
mov word [esp + 0x144], 1
mov dword [esp + 0x134], 0x1007f940
mov dword [esp + 0x138], 0x1007f830
test edx, edx
je 0x1003f81e
lea ecx, [esp + 0x130]
call fcn.10148200
cmp word [esp + 0x144], 0
xorps xmm0, xmm0
je 0x1003f257
push 0x10
mov eax, dword [esp + 0x18]
push dword [eax + 0x20]
push dword [esi + edi]
push dword [esp + 0x24]
call fcn.10044d40
xorps xmm0, xmm0
add esp, 0x10
or byte [esi + edi + 0xa], 4
jmp 0x1003f257
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov dword [ebx + 0x134], eax
jmp 0x1003f074
inc dword [ebx + 0x12c]
jmp 0x1003f097
cmp dword [esp + 0x24], 0
jne 0x1003f276
mov eax, dword [esp + 0x14]
or byte [eax + 0x28], 0x80
mov ecx, dword [ebp + 0x10]
mov dword [eax + 8], ecx
jmp 0x1003f276
mov ecx, eax
mov eax, dword [edi + eax*8 + 0x48]
mov dword [esp + 0x34], eax
test eax, eax
je 0x1003f1ef
mov eax, dword [esp + 0x34]
cmp dword [eax], 0
jle 0x1003f1ef
lea eax, [edi + ecx*8]
add eax, 0x34
mov dword [esp + 0x64], eax
mov eax, dword [eax - 0x1c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x28]
movsx eax, word [eax + 0x2a]
cmp dword [esp + 0x2c], eax
jge 0x1003fa54
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x2c]
lea edx, [edx + edx*4]
lea ecx, [ecx + edx*4]
add ecx, 0x10
test byte [ecx], 2
jne 0x1003f907
mov edi, dword [esp + 0x2c]
inc edi
add ecx, 0x14
mov edx, edi
mov dword [esp + 0x2c], edi
cmp eax, edi
jne 0x1003f8eb
jmp 0x1003fa54
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, 0x34
push 0
call fcn.1014e1f0
add esp, 4
test eax, eax
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0xc]
je 0x1003f1ef
mov esi, eax
xorps xmm0, xmm0
mov ecx, eax
movups xmmword [esi], xmm0
movups xmmword [esi + 0x20], xmm0
movups xmmword [esi + 0x10], xmm0
mov dword [esi + 0x30], 0
mov byte [esi], 0xa6
mov word [esi + 0x22], 0xffff
mov dword [esi + 0x18], 1
mov eax, dword [esp + 0x64]
mov eax, dword [eax]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov word [esi + 0x20], ax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + eax*4 + 8]
test edx, edx
je 0x1003fa16
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
xor eax, eax
push eax
push eax
call fcn.10001c40
add esp, 8
mov edi, dword [esp + 0x18]
mov ecx, edi
mov edx, 0xad
push 0
push eax
call fcn.10007a60
add esp, 8
mov ecx, edi
mov edx, 0x35
push eax
push esi
call fcn.10007a60
add esp, 8
mov esi, eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
test byte [eax + ecx*8 + 0x2c], 8
je 0x1003f9db
mov eax, dword [esp + 0x64]
mov edx, dword [eax]
mov ecx, esi
call fcn.10039550
inc dword [esp + 0x2c]
mov ecx, dword [esp + 0xbc]
mov edx, esi
push 1
call fcn.10044590
add esp, 4
mov edx, dword [esp + 0x10]
inc edx
mov eax, dword [esp + 0x34]
mov ecx, edx
mov dword [esp + 0x10], edx
cmp edx, dword [eax]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0xc]
jl 0x1003f8c5
jmp 0x1003f1ef
xor eax, eax
jmp 0x1003f996
push 0x40
push str.at_most__d_tables_in_a_join
push dword [esp + 0x20]
call fcn.100394d0
add esp, 0xc
jmp 0x10042da5
xor esi, esi
cmp dword [esp + 0x14], 0
je 0x1004129e
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x14]
call fcn.10139000
jmp 0x1004129e
push dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
push dword [eax]
push str.too_many_arguments_on__s_____max__d
push dword [esp + 0x24]
call fcn.100394d0
add esp, 0x10
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0xc]
jmp 0x1003f1ef
mov eax, dword [ebx + 0x28]
mov edx, dword [esp + 0x34]
lea ecx, [edx + edx*4]
mov eax, dword [eax + ecx*4 + 8]
lea ecx, [esp + 0x130]
mov dword [ecx + 0xc], eax
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + edx*4]
mov dword [ecx + 8], eax
mov word [ecx + 0x48], 0xfffe
call fcn.101695e0
jmp 0x1003f40d
test edi, edi
cmove edi, eax
lea ecx, [esp + 0x130]
call fcn.10048b90
xor edx, edx
test eax, eax
jne 0x1003f41c
test edi, edi
jne 0x1003f438
mov ecx, dword [esp + 0x34]
jmp 0x1003f45a
mov dl, byte [edx + 0x1019c728]
cmp dl, byte [ebx + 0x1019c728]
je 0x1003f73f
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, dword [esp + 0xc]
mov eax, dword [ebp + 0x10]
mov ebx, 0
jl 0x1003f6c1
lea edi, [esp + 0x130]
mov edx, dword [esp + 0x28]
jmp 0x1003f7a6
bt edi, 0x12
jb 0x1003fb55
add esi, 0xc
jmp 0x1003fb5b
cmp bl, 0xa8
je 0x1003f59b
jmp 0x1003f5af
mov eax, dword [esp + 0x14]
add eax, 0x2d
mov ecx, dword [esp + 0x24]
mov cl, byte [ecx]
mov byte [eax], cl
jmp 0x1003f526
mov eax, dword [esp + 0x14]
mov byte [eax + 0x2f], 1
jmp 0x1003f535
mov esi, dword [esi + 0x14]
add esi, 8
mov esi, dword [esi]
jmp 0x1003f57d
mov eax, dword [esi + 0x28]
lea ecx, [edx + edx*4]
mov eax, dword [eax + ecx*4 + 8]
lea ecx, [esp + 0x130]
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x20]
mov eax, dword [eax + edx*4]
mov dword [ecx + 8], eax
mov word [ecx + 0x48], 0xfffe
call fcn.101695e0
jmp 0x1003f698
lea edi, [esp + 0x130]
jmp 0x1003f7a6
bt ebx, 0x12
jb 0x1003fbd0
add ecx, 0xc
jmp 0x1003fbd6
cmp bl, 0xa8
je 0x1003f6f0
jmp 0x1003faf4
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov eax, dword [eax + 8]
jmp 0x1003f727
xor ecx, ecx
cmp ax, 0xffff
sete cl
jmp 0x1003f764
mov ecx, dword [ecx + 0x14]
add ecx, 8
mov ecx, dword [ecx]
test ecx, ecx
jne 0x1003f6d6
jmp 0x1003faf4
mov ecx, dword [esp + 0x34]
test ecx, ecx
cmove ecx, eax
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x130]
call fcn.10048b90
test eax, eax
mov edx, dword [esp + 0x28]
jne 0x1003f783
cmp dword [esp + 0x34], 0
jne 0x1003f799
jmp 0x1003f6a4
mov ecx, dword [eax + 0x20]
or ecx, dword [eax + 0x24]
jne 0x10043838
test byte [eax + 0xc], 0x82
je 0x10043838
mov edi, eax
mov dword [esi + 0x24], 0x1101
mov eax, dword [esi + 0x30]
mov dword [eax], edi
xor eax, eax
inc eax
mov word [esi + 0x28], ax
mov word [esi + 0x18], ax
mov word [esi + 0x14], 0x21
mov edi, dword [esp + 0x24]
cmp dword [esi + 0x24], 0
jne 0x1003fde3
mov eax, dword [esp + 0xd0]
mov esi, dword [esp + 0xdc]
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
mov dword [esp + 0x64], eax
movzx eax, byte [eax + 0x2c]
mov ecx, dword [ecx]
mov dword [esp + 0xc], 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
xor edi, edi
test eax, eax
mov dword [esp + 0x10], ecx
je 0x1003ffba
lea eax, [eax + eax*8]
lea eax, [ebx + eax*8]
add eax, 8
mov dword [esp + 0x60], eax
add ebx, 8
mov dword [esp + 0x24], 0
mov dword [esp + 0x2c], 0
xor eax, eax
mov dword [esp + 0x28], eax
mov byte [esi + 0x10], al
add dword [esp + 0xe8], 0x3e8
mov edi, dword [esp + 0x64]
mov eax, dword [edi + 0x1ec]
test eax, eax
jle 0x1003fdd8
mov edx, dword [ebx + 0x2c]
xor ecx, ecx
cmp dword [edi + ecx*4 + 0x1f0], edx
jne 0x1003fdcf
xor edx, edx
xor eax, eax
inc eax
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
mov ecx, 0
cmovne eax, ecx
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
test byte [ebx + 0x24], 0xa
mov edi, dword [esp + 0x2c]
cmove edi, ecx
mov edx, dword [esp + 0x24]
cmove edx, ecx
mov eax, dword [ebx + 0x10]
cmp dword [eax + 0x38], ecx
mov dword [esp + 0xac], edi
mov dword [esp + 0x34], edx
jne 0x1003fe90
lea ecx, [esp + 0xd0]
push edi
call fcn.100468f0
add esp, 4
mov edi, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
test edi, edi
mov ecx, dword [esp + 0x10]
jne 0x1003fe51
mov eax, dword [esp + 0xd4]
cmp byte [eax + 9], 0
mov edx, dword [esp + 0x34]
jne 0x1003fe2d
mov eax, dword [esp + 0x24]
or eax, dword [esi + 8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
or eax, dword [esi + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x53], 0
jne 0x1003ffad
mov eax, dword [esp + 0x28]
inc eax
add ebx, 0x48
xor edi, edi
cmp ebx, dword [esp + 0x60]
jb 0x1003fcd2
jmp 0x1003ffaf
inc ecx
cmp eax, ecx
jne 0x1003fcfb
xor eax, eax
xor edx, edx
xor ecx, ecx
jmp 0x1003fd20
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 ecx, dword [esp + 0x2c]
mov dword [edi + 0x2f4], ecx
mov word [edi + 0x34], ax
mov eax, dword [edi + 8]
test eax, eax
jne 0x1003fe26
test byte [edi + 0x29], 1
je 0x100412d4
mov byte [edi + 0x2f], 1
jmp 0x100412d4
mov al, byte [eax]
mov byte [edi + 0x2d], al
jmp 0x1003fe13
lea ecx, [esp + 0xd0]
push dword [esp + 0x3c]
push dword [esp + 0x34]
push dword [esp + 0xb4]
call fcn.1005e3a0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edi, eax
mov eax, dword [esp + 0x24]
or eax, dword [esi + 8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
or eax, dword [esi + 0xc]
mov dword [esp + 0x2c], eax
test edi, edi
je 0x1003fda8
cmp edi, 0x65
jne 0x1003ffaf
push str.abbreviated_query_algorithm_search
push 0x1c
call sym.nss3.dll_sqlite3_log
mov ecx, dword [esp + 0x18]
add esp, 8
jmp 0x1003fdb6
lea ecx, [ebx + 0x48]
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
cmp ecx, dword [esp + 0x60]
jae 0x1003ff84
mov dword [esp + 0xa0], 0
mov eax, ebx
mov dword [esp + 0x90], 0
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xa0]
or ecx, dword [esp + 0x90]
je 0x1003ff4d
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx + 0x1ec]
test edx, edx
jle 0x1003fefe
mov eax, dword [eax + 0x74]
xor ecx, ecx
mov edi, dword [esp + 0x64]
cmp dword [edi + ecx*4 + 0x1f0], eax
je 0x1003ff65
inc ecx
cmp edx, ecx
jne 0x1003feec
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0xa0]
or dword [esp + 0x30], eax
mov eax, dword [esp + 0x90]
or dword [esp + 0x3c], eax
mov eax, dword [esp + 0x38]
lea ecx, [eax + 0x48]
mov edx, dword [esp + 0x30]
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x90], edx
cmp ecx, dword [esp + 0x60]
jb 0x1003fec5
jmp 0x1003ff84
test byte [eax + 0x6c], 0xa
jne 0x1003fed9
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
jmp 0x1003ff24
xor eax, eax
xor edi, edi
xor edx, edx
inc edx
shld edi, edx, cl
shl edx, cl
test cl, 0x20
cmovne edi, edx
mov dword [esp + 0x3c], edi
cmovne edx, eax
mov dword [esp + 0x30], edx
jmp 0x1003ff0e
lea ecx, [esp + 0xd0]
mov edx, dword [esp + 0x34]
push dword [esp + 0x3c]
push dword [esp + 0x34]
push dword [esp + 0xb4]
call fcn.10169600
add esp, 0xc
mov edi, eax
jmp 0x1003fd71
xor edi, edi
mov edx, dword [esi + 0x30]
cmp edx, ecx
jne 0x10043826
mov eax, dword [esi + 0x24]
test eax, 0x4400
jne 0x1004133b
mov dword [esi + 0x30], ecx
mov word [esi + 0x28], 0
mov word [esi + 0x2c], 3
mov dword [esi + 0x24], 0
test edi, edi
jne 0x10042d40
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.10045ca0
mov eax, dword [esp + 0x7c]
cmp byte [eax + 0x53], 0
jne 0x10042d40
mov eax, dword [esp + 0x14]
cmp dword [eax + 8], 0
jne 0x100412b6
mov eax, dword [esp + 0x7c]
test byte [eax + 0x21], 0x10
jne 0x1004313b
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x24], 0
jne 0x10042d47
mov eax, dword [esp + 0x7c]
cmp byte [eax + 0x53], 0
jne 0x10042d47
bt dword [esp + 0xb4], 0xa
jb 0x10040056
cmp dword [ebp + 0x10], 0
je 0x10040056
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x2c], 2
jae 0x10041661
xor eax, eax
dec eax
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x14]
movsx eax, word [ecx + 0x34]
mov ecx, dword [ecx]
add dword [ecx + 0x84], eax
test byte [esp + 0xb4], 4
jne 0x100412e7
mov dword [esp + 0xc], 0
cmp dword [esp + 0xb8], 0
jle 0x10041272
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0x6c]
mov dword [esp + 0x2c], ecx
add eax, 0x68
mov dword [esp + 0x28], eax
xor eax, eax
mov esi, dword [esp + 0x44]
mov dword [esp + 0x10], eax
movzx eax, byte [esi + 0x34]
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x34], ecx
mov eax, dword [eax + ecx*8 + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [eax + 0x48]
test eax, eax
je 0x10041d7f
mov ecx, dword [esp + 0x7c]
mov ecx, dword [ecx + 0x10]
add ecx, 0xc
xor ebx, ebx
dec ebx
inc ebx
lea edx, [ecx + 0x10]
cmp dword [ecx], eax
mov ecx, edx
jne 0x100400df
mov dword [esp + 0x20], ebx
mov ebx, dword [esi + 0x48]
mov eax, dword [esp + 0x24]
test byte [eax + 0x25], 0x40
jne 0x1004020d
mov eax, dword [esp + 0x24]
cmp dword [eax + 0xc], 0
jne 0x1004020d
mov eax, dword [ebx + 0x24]
bt eax, 0xa
jb 0x10042e78
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x38], 0
jne 0x1004020d
and eax, 0x40
or eax, dword [esp + 0x40]
jne 0x1004038b
mov edi, ebx
mov ebx, esi
mov eax, 0x62
mov esi, dword [esp + 0x14]
cmp byte [esi + 0x2e], 0
jne 0x100403c9
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x34]
mov edx, dword [ecx + edx*8 + 0x34]
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x28]
push dword [esp + 0x28]
call fcn.10044a80
add esp, 0xc
cmp byte [esi + 0x2e], 0
mov esi, ebx
mov ebx, edi
jne 0x100401f1
mov eax, dword [esp + 0x24]
cmp word [eax + 0x2a], 0x3f
jg 0x100401f1
mov eax, dword [esp + 0x24]
test byte [eax + 0x24], 0xe0
jne 0x100401f1
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x34]
mov ecx, dword [eax + edx*8 + 0x40]
mov eax, dword [eax + edx*8 + 0x44]
mov edx, ecx
or edx, eax
je 0x100403e2
bsr edx, eax
xor edx, 0x1f
bsr ecx, ecx
xor ecx, 0x1f
add ecx, 0x20
test eax, eax
cmovne ecx, edx
mov eax, 0x40
sub eax, ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
cmp byte [ecx + 0x53], 0
jne 0x100401f1
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
dec edx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea edx, [edx + edx*4]
cmp byte [ecx + edx*4 + 1], 0
jne 0x10041550
lea ecx, [ecx + edx*4]
inc ecx
mov dword [ecx + 0xf], eax
mov byte [ecx], 0xfd
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
test eax, eax
jle 0x1004020d
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0xc]
mov word [ecx + eax*4 - 0x12], dx
test byte [ebx + 0x25], 2
jne 0x1004025c
mov ecx, dword [esp + 0x20]
test ecx, ecx
js 0x10040242
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x74]
test eax, eax
cmove eax, edx
mov edx, dword [eax + 0x54]
xor edi, edi
inc edi
shl edi, cl
bt edx, ecx
jb 0x10040242
or edx, edi
mov dword [eax + 0x54], edx
cmp ecx, 1
je 0x100415fd
mov eax, dword [esp + 0x10]
inc eax
add esi, 0x58
cmp eax, dword [esp + 0xb8]
jne 0x100400ac
jmp 0x100403e9
mov edi, dword [ebx + 0x20]
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x24], 0
js 0x100403b9
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x2e], 0
jne 0x10041814
cmp dword [ebp + 0x18], 0
je 0x1004028c
cmp dword [esp + 0x40], 0
jne 0x10041fee
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x28]
lea ecx, [eax + 1]
mov dword [edx + 0x28], ecx
mov edx, 0x62
mov dword [esp + 0x64], esi
mov dword [esi + 8], eax
mov dword [esp + 0x24], edi
mov edi, dword [edi + 0x2c]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x100417fd
lea esi, [ecx + 1]
mov dword [esp + 0x34], ebx
mov ebx, edi
mov edi, dword [esp + 0x2c]
mov dword [edi], esi
mov esi, dword [esp + 0x28]
mov esi, dword [esi]
lea ecx, [ecx + ecx*4]
mov byte [esi + ecx*4], dl
mov word [esi + ecx*4 + 2], 0
mov dword [esi + ecx*4 + 4], eax
mov dword [esi + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov dword [esi + ecx*4 + 0xc], eax
mov dword [esi + ecx*4 + 0x10], 0
mov byte [esi + ecx*4 + 1], 0
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx + 8]
mov edx, dword [esp + 0x24]
call fcn.10044850
test eax, eax
mov esi, dword [esp + 0x64]
je 0x10040335
mov ecx, dword [edi]
cmp byte [ecx + 0x53], 0
jne 0x100436e0
mov ecx, dword [edi + 0x68]
mov edx, dword [edi + 0x6c]
lea edx, [edx + edx*4]
mov byte [ecx + edx*4 - 0x13], 0xf7
mov dword [ecx + edx*4 - 4], eax
mov eax, dword [ebx + 0x24]
test eax, 0x188002
jne 0x10040213
and eax, 0xf
je 0x10040213
mov eax, dword [esp + 0x14]
test byte [eax + 0x28], 1
jne 0x10040213
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x2f], 2
je 0x10040213
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
test eax, eax
jle 0x10040213
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 2
jmp 0x10040213
cmp dword [esp + 0x20], 1
je 0x1004020d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x20]
shl ecx, 4
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x1004020d
jmp 0x100439ae
cmp dword [esp + 0x40], 0
je 0x1004026d
jmp 0x100413e1
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + ecx*8 + 0x34]
mov dword [esi + 0x14], eax
mov eax, 0x63
jmp 0x1004014b
xor eax, eax
jmp 0x100401c0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x7c]
cmp byte [eax + 0x53], 0
jne 0x10042d47
mov eax, dword [esp + 0x18]
add eax, 0x2c
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x14]
lea esi, [eax + 0x37c]
xor edi, edi
dec edi
mov ebx, dword [esp + 0x44]
xor eax, eax
mov dword [esp + 0xc4], ebx
mov dword [esp + 0x60], eax
imul ebx, eax, 0x58
mov eax, dword [esp + 0x44]
lea ecx, [eax + ebx]
mov dword [esp + 0x34], ecx
mov eax, dword [eax + ebx + 0x48]
test byte [eax + 0x25], 0x40
jne 0x100427f3
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x70]
push dword [esp + 0xb4]
push dword [esp + 0x38]
call fcn.10045630
add esp, 8
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x44]
mov dword [ecx + ebx + 0x20], eax
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 4]
mov eax, dword [eax + 0x1ec]
mov dword [esp + 0x24], ebx
movzx ecx, byte [ecx + ebx + 0x34]
lea ecx, [ecx + ecx*8]
mov dword [esp + 0xac], edx
mov dword [esp + 0xa0], ecx
mov ebx, dword [edx + ecx*8 + 0x34]
test eax, eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], edi
jle 0x100413d8
xor ecx, ecx
mov edx, dword [esp + 0x14]
cmp dword [edx + ecx*4 + 0x1f0], ebx
jne 0x100413cf
xor edx, edx
xor eax, eax
inc eax
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
mov ecx, 0
cmovne eax, ecx
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x24]
lea edi, [ecx + esi]
add edi, 0x48
mov esi, dword [esp + 0x18]
mov ecx, dword [esi]
mov dword [esp + 0x4c], ecx
mov ecx, dword [edi]
mov dword [esp + 0x20], ecx
not eax
not edx
and edx, dword [esp + 0x90]
and eax, dword [esp + 0xb0]
mov dword [edi + 8], eax
mov dword [edi + 0xc], edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x48]
mov ebx, dword [ecx + 0x4c]
mov ecx, dword [esp + 0x60]
shrd eax, ebx, cl
shr ebx, cl
test cl, 0x20
cmove ebx, eax
mov eax, dword [esi + 0x38]
dec eax
mov dword [esi + 0x38], eax
mov dword [edi - 0x38], eax
mov dword [esp + 0x40], eax
mov dword [edi - 0x3c], eax
mov eax, dword [esi + 0x38]
dec eax
mov dword [esi + 0x38], eax
mov dword [esp + 0xc0], eax
mov dword [edi - 0x30], eax
mov dword [esp + 0x10], edi
cmp byte [edi - 0x14], 0
jne 0x1004158e
xor esi, esi
test ecx, ecx
jne 0x10041567
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
lea edx, [eax + ecx]
add edx, 0x50
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0xac]
mov edi, dword [esp + 0xa0]
mov edx, dword [edx + edi*8 + 0x30]
test dl, 0x10
jne 0x10042118
mov edi, ebx
and edi, 1
mov dword [esp + 0x30], edi
add eax, ecx
add eax, 0x10
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x24]
bt eax, 0xa
jb 0x10042e45
imul ecx, esi, 0x58
mov esi, dword [esp + 0x14]
mov edi, dword [esi + ecx + 0x2fc]
bt eax, 8
jae 0x100405dd
mov ecx, eax
and ecx, 5
jne 0x100409ff
mov ecx, eax
mov esi, 0x102
and ecx, esi
cmp ecx, esi
je 0x100430d0
bt eax, 9
jae 0x10040789
mov edx, dword [esp + 0x20]
movzx edi, word [edx + 0x18]
movzx ecx, word [edx + 0x1a]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x48], 0
mov ecx, 0
mov esi, edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x3c], edi
mov edi, 0
test al, 0x20
jne 0x10041a0d
movzx esi, word [edx + 0x1c]
mov word [esp + 0xc], si
mov edx, dword [edx + 0x20]
mov dword [esp + 0x40], edx
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov edx, dword [esi + edx + 8]
mov dword [esp + 0x6c], edx
test al, 0x10
jne 0x10041b9d
mov edx, ecx
mov dword [esp + 0x38], 0
movzx esi, word [esp + 0xc]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x24]
mov ecx, 0x80030
and eax, ecx
mov dword [esp + 0x3c], 0
cmp eax, 0x80000
je 0x10043431
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x54]
cmp cx, word [eax + 0x34]
jae 0x100406aa
mov eax, dword [eax + 0x1c]
cmp byte [eax + ecx], 0
setne al
and bl, 1
cmp bl, al
jne 0x10041dac
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0x38]
mov dword [esp + 0x8c], eax
mov eax, esi
mov dword [esp + 0x84], eax
cmp dword [esp + 0x60], 0
jne 0x10041781
mov dword [esp + 0x74], edi
mov esi, dword [esp + 0x18]
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
mov edi, dword [eax]
movzx eax, word [edi + 0x18]
movzx ebx, word [edi + 0x2a]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x9c], eax
add edx, eax
mov eax, edx
mov dword [esp + 0x88], edi
mov edx, dword [edi + 0x20]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x68], edi
add eax, edi
mov dword [esi + 0x2c], eax
call fcn.10044c40
mov dword [esp + 0x10], 0
test eax, eax
je 0x10040b06
mov ebx, eax
mov edi, dword [esi]
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov esi, eax
inc esi
test edi, edi
mov dword [esp + 0x38], ebx
je 0x10043499
movzx eax, word [edi + 0x11c]
cmp esi, eax
ja 0x10040acd
cmp esi, 0x80
ja 0x10040aa9
mov ebx, dword [edi + 0x140]
test ebx, ebx
je 0x1004138c
mov eax, dword [ebx]
mov dword [edi + 0x140], eax
inc dword [edi + 0x128]
jmp 0x10040af4
bt eax, 0xd
jb 0x10042252
test dl, 0x20
jne 0x10041dfd
mov ebx, edi
mov esi, dword [esp + 0x30]
mov al, byte [esi + 0x101a13f0]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov byte [ecx + edx + 0x35], al
mov edi, dword [esp + 0x50]
mov dword [ecx + edx + 0x38], edi
mov cl, byte [esi + 0x101a13f2]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x6c]
cmp dword [eax + 0x70], edx
jle 0x1004186a
lea eax, [edx + 1]
mov esi, dword [esp + 0x2c]
mov dword [esi], eax
mov esi, dword [esp + 0x28]
mov esi, dword [esi]
lea edx, [edx + edx*4]
mov byte [esi + edx*4], cl
mov word [esi + edx*4 + 2], 0
mov dword [esi + edx*4 + 4], edi
mov dword [esi + edx*4 + 8], ebx
xor ecx, ecx
mov dword [esi + edx*4 + 0xc], ecx
mov dword [esi + edx*4 + 0x10], ecx
mov byte [esi + edx*4 + 1], 0
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov dword [ecx + edx + 0x3c], eax
mov byte [ecx + edx + 0x37], 1
xor ecx, ecx
mov dword [esp + 0x40], ecx
cmp ecx, 1
mov edi, 1
adc edi, 0
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xa0]
lea eax, [eax + ecx*8]
add eax, 0x2c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 0x5c]
test ebx, ebx
jle 0x1004099d
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x64]
inc ebx
xor eax, eax
mov dword [esp + 0x20], eax
movzx eax, word [esi + 0xa]
test al, 6
jne 0x100408c2
mov edx, dword [esp + 0x64]
mov ecx, dword [edx + 4]
and ecx, dword [esi + 0x2c]
mov edx, dword [edx]
and edx, dword [esi + 0x28]
or edx, ecx
jne 0x10041215
mov edx, dword [esi]
mov ecx, dword [esp + 0x10]
test byte [ecx], 8
jne 0x10041936
cmp edi, 1
je 0x100408d4
cmp edi, 2
jg 0x1004089e
bt eax, 0xc
jb 0x10042069
bt eax, 9
jb 0x10042dac
push 0x10
push dword [esp + 0xc4]
push edx
push dword [esp + 0x24]
call fcn.10044d40
add esp, 0x10
or byte [esi + 0xa], 4
mov eax, dword [esp + 0x20]
add esi, 0x30
dec ebx
cmp ebx, 1
jg 0x10040858
jmp 0x10040957
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + ecx + 4]
mov dword [esp + 0x114], eax
xorps xmm0, xmm0
movaps xmmword [esp + 0x130], xmm0
xor eax, eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x110], eax
mov dword [esp + 0x134], 0x1007f970
lea eax, [esp + 0x110]
mov dword [esp + 0x148], eax
test edx, edx
mov dword [esp + 0xc], edx
je 0x1004210b
lea ecx, [esp + 0x130]
call fcn.10148200
cmp word [esp + 0x144], 0
mov eax, 2
jne 0x100408c6
jmp 0x1004210b
mov edi, eax
test eax, eax
jg 0x1004083f
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x5c]
test esi, esi
jle 0x1004099d
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x64]
test byte [edi + 0xa], 6
je 0x10040988
lea eax, [esi - 1]
add edi, 0x30
cmp esi, 1
mov esi, eax
jg 0x10040973
jmp 0x1004099d
movzx eax, word [edi + 0xc]
test al, 0x82
je 0x10040979
and eax, 0x800
jne 0x100413fb
jmp 0x10040979
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
test eax, eax
mov ebx, dword [esp + 0xc4]
jne 0x100418a7
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx]
mov dword [esp + 0xb0], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x90], eax
mov eax, dword [ecx - 0x38]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x60]
inc eax
add ebx, 0x58
mov edi, dword [esp + 0xc8]
dec edi
mov esi, dword [esp + 0xcc]
add esi, 0x58
cmp eax, dword [esp + 0xb8]
jne 0x10040425
jmp 0x1004126c
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
mov esi, dword [eax]
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx + 0x2c]
lea eax, [edi + 1]
mov dword [ecx + 0x2c], eax
mov edx, esi
push eax
push dword [esp + 0x34]
push 0
push dword [esp + 0x40]
call fcn.10048e60
add esp, 0x10
inc edi
je 0x10040a35
cmp eax, edi
jne 0x100413a7
mov ecx, dword [esp + 0x78]
mov edi, dword [ecx]
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x10041d63
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x2c]
mov dword [ebx], edx
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x1f
mov ebx, dword [esp + 0x50]
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 + 0x44]
mov ecx, dword [esp + 0x24]
mov byte [eax + ecx + 0x35], 0xb1
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
and ecx, dword [esi + 0x2c]
and eax, dword [esi + 0x28]
or eax, ecx
jne 0x10040816
or byte [esi + 0xa], 4
jmp 0x10040816
mov ebx, dword [edi + 0x138]
test ebx, ebx
jne 0x1004176a
mov ebx, dword [edi + 0x134]
test ebx, ebx
jne 0x10041de7
inc dword [edi + 0x130]
jmp 0x10040ae0
cmp dword [edi + 0x118], 0
je 0x100421fd
cmp byte [edi + 0x53], 0
jne 0x10040b06
mov ecx, edi
mov edx, esi
push 0
call fcn.10143c10
add esp, 4
mov ebx, eax
test eax, eax
je 0x10040b06
push esi
push dword [esp + 0x3c]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x68]
lea eax, [edx + 1]
mov dword [esp + 0x38], eax
mov ebx, dword [esp + 0xc]
test bx, bx
jne 0x100434a7
cmp bx, word [esp + 0x9c]
mov esi, dword [esp + 0x58]
jae 0x10040d4b
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x88]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + ebx*4]
mov eax, dword [esp + 0x38]
lea edi, [eax + ebx]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x68], edx
push edi
push dword [esp + 0x34]
mov dword [esp + 0x14], ebx
push ebx
push dword [esp + 0x40]
call fcn.10048e60
add esp, 0x10
cmp eax, edi
jne 0x10041f92
mov ebx, esi
mov ecx, dword [esp + 0x68]
movzx eax, word [ecx + 0xc]
test al, 1
jne 0x10041fce
bt eax, 8
jb 0x10040d37
mov eax, dword [ecx]
mov edi, dword [eax + 0x10]
test byte [ecx + 0xb], 8
jne 0x10040c09
mov eax, edi
mov cl, byte [eax]
cmp cl, 0xaf
je 0x10042103
mov edx, ecx
add dl, 0x54
cmp dl, 1
jbe 0x10042842
cmp cl, 0xa6
je 0x10040cb2
cmp cl, 0x74
je 0x10040c09
add cl, 0x68
cmp cl, 3
jb 0x10040c09
mov eax, dword [esp + 0x78]
mov eax, dword [eax - 4]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0xc]
lea esi, [ecx + edx]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jle 0x100417c5
lea edx, [ecx + 1]
mov dword [ebx + 0x6c], edx
mov edx, dword [ebx + 0x68]
lea ecx, [ecx + ecx*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 eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp byte [eax + 0x53], 0
jne 0x10040d37
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x24], 0
jne 0x10040d37
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov bl, byte [eax + ecx]
mov ecx, edi
call fcn.10047340
cmp bl, 0x41
jl 0x10040c46
cmp al, 0x41
jge 0x10040d0a
cmp al, 0x41
movzx ecx, bl
movzx eax, al
cmovl eax, ecx
and al, 0xbf
cmp al, 1
je 0x10040d1b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov al, byte [eax + ecx]
cmp al, 0x41
mov ebx, dword [esp + 0x58]
je 0x10040d2b
xor ecx, ecx
mov dl, byte [edi]
cmp dl, 0xaf
je 0x10041f8a
mov ah, dl
add ah, 0x54
cmp ah, 1
jbe 0x10042241
cmp dl, 0xa5
jg 0x10040cf1
cmp dl, 0x9a
je 0x10041d98
cmp dl, 0x98
je 0x10041d98
cmp dl, 0x99
jne 0x10040d37
jmp 0x10043bb2
test byte [eax + 6], 0x10
jne 0x10040bc6
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x10040bc6
movsx eax, word [eax + 0x20]
test eax, eax
js 0x10040c09
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x10040c09
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 0xc], 0
je 0x10040bc6
jmp 0x10040c09
cmp dl, 0xa6
je 0x100417b1
cmp dl, 0x74
jne 0x10040d37
jmp 0x10041883
test edx, edx
jne 0x10040d2b
jmp 0x10040d37
cmp bl, 0x42
jg 0x10040c5b
cmp al, 0x42
jg 0x10040c5b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov byte [eax + ecx], 0x41
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov byte [eax + ecx], 0x41
mov esi, ebx
mov ebx, dword [esp + 0xc]
inc ebx
cmp ebx, dword [esp + 0x9c]
jne 0x10040b34
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x10]
lea ebx, [ecx + eax]
cmp word [esp + 0x84], 0
je 0x10040d69
test ecx, ecx
jne 0x100419aa
mov dword [esp + 0x9c], 0
cmp dword [esp + 0x3c], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
lea eax, [eax + ecx + 0x28]
cmove eax, dword [esp + 0x78]
mov eax, dword [eax]
mov dword [esp + 0x78], eax
mov byte [esp + 0x58], 1
mov dl, 1
mov edi, dword [esp + 0x74]
test edi, edi
jne 0x10041bdb
mov eax, dword [esp + 0x8c]
test eax, eax
jne 0x10041a33
test edi, edi
setne al
cmp word [esp + 0x54], 0
setne cl
or cl, al
test edi, edi
mov byte [esp + 0x88], cl
jne 0x10041be7
cmp byte [esp + 0x48], 0
jne 0x10043704
mov dword [esp + 0x68], 0
cmp dword [esp + 0x3c], 0
jne 0x10043741
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x10], 0
je 0x10040e77
mov eax, dword [esp + 0xc]
sub eax, dword [esp + 0x68]
test eax, eax
jle 0x10040e37
mov ebx, dword [esp + 0x38]
lea ecx, [eax + ebx]
mov edi, dword [esp + 0x10]
lea esi, [edi + eax]
mov dword [esp + 0x48], esi
cmp byte [edi], 0x41
jg 0x10040e3f
lea esi, [eax - 1]
inc ebx
inc edi
cmp eax, 1
mov eax, esi
jg 0x10040e1c
mov ebx, ecx
xor eax, eax
mov edi, dword [esp + 0x48]
jmp 0x10040e3f
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + 8]
mov ecx, eax
cmp ecx, 2
jl 0x10040e6c
mov dword [esp + 0x74], esi
lea esi, [ecx - 1]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x74]
cmp byte [edi + ecx - 1], 0x42
mov ecx, dword [esp + 0x48]
jl 0x10040e48
jmp 0x10041777
xor ecx, ecx
inc ecx
test eax, eax
jg 0x10041191
mov eax, dword [esp + 0x20]
movzx eax, word [eax + 0x2a]
test eax, eax
je 0x10040e8d
cmp dword [esp + 0xc], eax
je 0x1004394f
movzx esi, dl
neg esi
cmp dword [esp + 0x3c], 0
jne 0x100435be
movzx eax, byte [esp + 0x88]
mov edi, esi
and edi, 1
mov ecx, dword [esp + 0x30]
lea ebx, [ecx + eax*4]
lea eax, [ebx + edi*2]
mov dword [esp + 0x88], 0
cmp eax, 6
jne 0x10040ed8
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x24]
mov ecx, 0x100000
and eax, ecx
jne 0x1004395f
mov cl, byte [ebx + edi*2 + 0x101a13e4]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x6c]
cmp dword [edx + 0x70], eax
jle 0x100417dd
lea edx, [eax + 1]
mov edi, dword [esp + 0x2c]
mov dword [edi], edx
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
lea edi, [eax + eax*4]
mov byte [edx + edi*4], cl
mov word [edx + edi*4 + 2], 0
mov ecx, dword [esp + 0x6c]
mov dword [edx + edi*4 + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [edx + edi*4 + 8], ecx
mov ecx, dword [esp + 0x38]
mov dword [edx + edi*4 + 0xc], ecx
mov dword [edx + edi*4 + 0x10], 0
mov byte [edx + edi*4 + 1], 0
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
cmp byte [ecx + 0x53], 0
jne 0x10040f52
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov edx, dword [esp + 0xc]
mov dword [ecx + eax*4 + 0x10], edx
cmp dword [esp + 0x3c], 0
jne 0x100435dc
mov eax, dword [esp + 0x8c]
movzx ebx, byte [esp + 0x58]
test eax, eax
mov esi, dword [esp + 0x4c]
jne 0x10041a41
cmp byte [esp + 0xa8], 0
jne 0x10043799
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x10]
test edx, edx
je 0x10040f96
mov ecx, esi
call fcn.10139000
mov edx, dword [esp + 0x9c]
test edx, edx
jne 0x10041b76
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov dword [ecx + edx + 0x3c], eax
test edi, edi
je 0x10041052
cmp dword [esp + 0x3c], 0
jne 0x100437cc
mov ebx, dword [esp + 0x3c]
test ebx, ebx
jne 0x1004364f
mov dword [esp + 0x48], ecx
mov dword [esp + 0x5c], edx
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x10041b82
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4], 0x5c
mov dword [ecx + edx*4 + 4], ebx
mov ebx, dword [esp + 0x48]
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 [esi]
cmp byte [ecx + 0x53], 0
jne 0x10043ba0
test eax, eax
js 0x10041897
lea edx, [eax + eax*4]
shl edx, 2
add edx, dword [esi + 0x68]
mov ecx, esi
push dword [esp + 0x48]
push edi
call fcn.1003d950
add esp, 8
mov edx, dword [esp + 0x5c]
jmp 0x10040e77
mov eax, dword [esp + 0x14]
or byte [eax + 0x30], 2
jmp 0x100408c2
test byte [esi + 0xa], 6
je 0x10041235
inc edi
add esi, 0x30
cmp edi, eax
jl 0x10041222
jmp 0x100409b2
mov edx, dword [esp + 0x64]
mov ecx, dword [edx + 4]
and ecx, dword [esi + 0x2c]
mov edx, dword [edx]
and edx, dword [esi + 0x28]
or edx, ecx
jne 0x10041228
push 0x10
push dword [esp + 0xc4]
push dword [esi]
push dword [esp + 0x24]
call fcn.10044d40
add esp, 0x10
or byte [esi + 0xa], 4
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
jmp 0x10041228
mov eax, dword [esp + 0x2c]
jmp 0x10041295
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x6c]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x7c]
cmp byte [eax + 0x53], 0
jne 0x10042d47
mov eax, dword [esp + 0x1c]
add eax, 0x6c
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov dword [esi + 0x3c], eax
mov ecx, dword [esp + 0x198]
xor ecx, ebp
call fcn.1014dc80
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x34]
inc eax
movsx edx, ax
call fcn.10045ca0
mov eax, dword [esp + 0x7c]
cmp byte [eax + 0x53], 0
jne 0x10042d47
mov eax, dword [esp + 0x14]
cmp dword [eax + 8], 0
jne 0x1004001b
jmp 0x1004000d
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x338]
mov ecx, dword [eax + 0x24]
mov dl, 1
bt ecx, 0xc
jae 0x1004161b
mov byte [esi + 0x2e], dl
mov dword [esp + 0xc], 0
test cl, 0x40
je 0x10040086
mov edx, dword [esp + 0x70]
mov edx, dword [edx + 0x18]
cmp byte [edx + 0x24], 0
js 0x10040086
mov edx, dword [esp + 0x20]
and edx, 8
and ecx, 0xffffffbf
mov dword [eax + 0x24], ecx
mov dword [esp + 0xc], edx
jmp 0x10040086
bt eax, 0xa
jb 0x10043c14
bt eax, 0xe
jae 0x1003ffc8
mov edx, dword [esi + 0x20]
test edx, edx
je 0x1003ffc8
mov eax, dword [edx + 0x10]
test eax, eax
je 0x10044505
mov ebx, dword [esp + 0xc]
mov ecx, ebx
mov edx, eax
call fcn.10139000
mov edx, dword [esi + 0x20]
mov ecx, ebx
call fcn.10139000
mov dword [esi + 0x20], 0
mov ecx, dword [esp + 0x10]
jmp 0x1003ffc8
mov ebx, dword [edi + 0x13c]
test ebx, ebx
je 0x10040aa9
mov eax, dword [ebx]
mov dword [edi + 0x13c], eax
jmp 0x1004077e
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x10040a35
mov edx, ecx
inc dl
mov ebx, dword [esp + 0x18]
mov byte [ebx + 0x13], dl
mov dword [ebx + ecx*4 + 0x94], edi
jmp 0x10040a35
inc ecx
cmp eax, ecx
jne 0x100404bc
xor eax, eax
xor edx, edx
jmp 0x100404e5
mov eax, dword [edi + 0x38]
and eax, 3
cmp eax, 2
jne 0x1004026d
mov eax, dword [esi + 4]
mov dword [esi + 8], eax
jmp 0x10040213
mov eax, dword [esp + 0x50]
cmp dword [edi + 0x14], eax
jne 0x10040979
mov eax, dword [esp + 0x10]
test byte [eax], 8
jne 0x10040979
mov ebx, dword [edi]
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], ecx
xor ecx, ecx
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 ecx, dword [esp + 0x50]
mov dword [esp + 0x14c], ecx
mov word [esp + 0x141], 0x101
cmp eax, 0xfffffffe
je 0x10040979
mov word [esp + 0x178], ax
lea ecx, [esp + 0x130]
call fcn.10048b90
test eax, eax
je 0x10040979
mov dword [esp + 0xc], 0
mov dword [esp + 0x20], ebx
mov ebx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x40], edx
and edx, dword [esp + 0x90]
mov ecx, ebx
and ecx, dword [esp + 0xb0]
or ecx, edx
jne 0x10043fa8
or ebx, dword [esp + 0x40]
jne 0x10043f9b
test byte [eax + 0xc], 0x82
je 0x10043f9b
mov edx, eax
mov ebx, dword [esp + 0x20]
test byte [edx + 0xa], 4
jne 0x10040979
test byte [edx + 0xc], 1
jne 0x1004294c
mov eax, dword [edx]
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x160], ecx
movups xmm0, xmmword [eax + 0x20]
movaps xmmword [esp + 0x150], xmm0
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movaps xmmword [esp + 0x140], xmm1
movaps xmmword [esp + 0x130], xmm0
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x13c], eax
push 0x10
push dword [esp + 0xc4]
lea eax, [esp + 0x138]
push eax
push dword [esp + 0x24]
mov ebx, edx
call fcn.10044d40
add esp, 0x10
or byte [ebx + 0xa], 4
jmp 0x10040979
lea edx, [ecx + edx*4]
mov ecx, dword [esp + 0x1c]
push 0xfffffffffffffffd
push eax
call fcn.1003d950
add esp, 8
jmp 0x100401f1
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0x60]
cmp dword [eax], 0
jne 0x100418a0
lea ecx, [edx - 1]
add eax, 0xffffffa8
cmp edx, 1
mov edx, ecx
jle 0x1004056e
jmp 0x10041572
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xa0]
test byte [eax + edx*8 + 0x2c], 8
je 0x10040564
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx]
inc eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x1004284a
lea edx, [ecx + 1]
mov esi, dword [esp + 0x2c]
mov dword [esi], edx
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x45
xor esi, esi
mov dword [edx + ecx*4 + 4], esi
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], esi
mov dword [edx + ecx*4 + 0x10], esi
mov ecx, dword [esp + 0x60]
jmp 0x10040564
mov ecx, eax
call fcn.10045bc0
jmp 0x10040242
test byte [esp + 0xb4], 8
je 0x1004007e
mov edx, dword [esp + 0x70]
mov edx, dword [edx + 0x18]
cmp dword [edx + 0x38], 0
jne 0x1004007e
mov dl, 2
test byte [esp + 0xb4], 0x10
jne 0x1004192d
mov ebx, ecx
and ebx, 0x2000
mov esi, dword [esp + 0x14]
je 0x10041300
jmp 0x1004007e
mov eax, dword [esp + 0x7c]
test byte [eax + 0x4d], 1
jne 0x10043d5a
mov eax, dword [esp + 0x14]
add eax, 0x1e8
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
test ecx, ecx
jle 0x10041d89
lea esi, [eax + 8]
xor edx, edx
mov dword [esp + 0x24], 0
xor edi, edi
mov ebx, edx
mov edx, dword [esi]
test edx, edx
je 0x10043b97
mov ecx, dword [esp + 0x2c]
call fcn.1004be40
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
or dword [esp + 0x24], edx
mov edx, ebx
or edx, eax
inc edi
add esi, 0x14
cmp edi, ecx
jl 0x10041698
mov ebx, dword [esp + 0xd8]
test ebx, ebx
jne 0x10041945
mov eax, dword [esp + 0x14]
movzx ebx, byte [eax + 0x2c]
xor eax, eax
dec eax
cmp ebx, 2
jb 0x10043d5d
mov dword [esp + 0x34], edx
xor eax, eax
dec eax
mov ecx, ebx
mov byte [esp + 0x2c], bl
mov dword [esp + 0xb0], eax
mov dword [esp + 0x90], eax
mov esi, ebx
dec ebx
imul edi, ebx, 0x58
mov eax, dword [esp + 0x44]
mov edx, dword [eax + edi + 0x48]
movzx eax, byte [edx + 0x10]
lea eax, [eax + eax*8]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
test byte [ecx + eax*8 + 0x2c], 8
jne 0x1004172d
cmp esi, 2
jg 0x10041700
jmp 0x10040060
bt dword [esp + 0xb4], 8
jb 0x1004173e
test byte [edx + 0x25], 0x10
je 0x10041723
mov dword [esp + 0x64], edi
mov dword [esp + 0x28], esi
mov esi, dword [edx + 8]
mov edi, dword [edx + 0xc]
mov dword [esp + 0x10], edi
and edi, dword [esp + 0x24]
mov dword [esp + 0xc], esi
and esi, dword [esp + 0x34]
or esi, edi
je 0x10042979
mov esi, dword [esp + 0x28]
jmp 0x10041723
mov eax, dword [ebx]
mov dword [edi + 0x138], eax
jmp 0x1004077e
mov ecx, dword [esp + 0x48]
inc ecx
jmp 0x10041191
mov eax, dword [esp + 0x20]
test byte [eax + 0x26], 0x10
je 0x100406d4
xor eax, eax
mov ecx, dword [esp + 0x1c]
mov esi, edx
mov edx, 0x84
push eax
push eax
push dword [esp + 0x74]
call fcn.10036aa0
mov edx, esi
add esp, 0xc
jmp 0x100406d4
cmp al, 0x43
jl 0x10040d37
movzx edx, word [edi + 0x20]
shr edx, 0xf
jmp 0x10040d04
mov ecx, ebx
mov edx, 0x32
push 0
push eax
push esi
call fcn.10007820
add esp, 0xc
jmp 0x10040c09
movzx edx, cl
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x38]
push dword [esp + 0x7c]
push dword [esp + 0x74]
call fcn.10007820
add esp, 0xc
jmp 0x10040f30
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x20]
push edi
push eax
call fcn.10007820
add esp, 0xc
jmp 0x100402ff
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x34]
lea eax, [eax + ecx*8]
add eax, 0x18
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ebp + 0x18]
test ecx, ecx
je 0x10041839
mov eax, dword [ebp + 0x18]
cmp ecx, edi
jne 0x10043da3
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x18], eax
mov edx, 0x63
jmp 0x1004029e
movzx edx, cl
mov ecx, dword [esp + 0x1c]
push 0
push ebx
push edi
call fcn.10007820
add esp, 0xc
inc eax
jmp 0x10040805
test ecx, ecx
sete cl
cmp al, 0x42
sete al
and al, cl
movzx edx, al
jmp 0x10040d04
mov eax, dword [esi + 0x6c]
dec eax
jmp 0x100411e2
mov esi, edx
jmp 0x1004056e
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x6c]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x24]
mov dword [esi + edi + 0x1c], ecx
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x10042865
lea edx, [ecx + 1]
mov esi, dword [esp + 0x2c]
mov dword [esi], edx
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
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 + 0x14]
mov eax, dword [eax + 0x5c]
test eax, eax
jle 0x100409b2
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0x64]
xor edi, edi
jmp 0x10041222
mov esi, dword [esp + 0x14]
jmp 0x10041300
test byte [edx + 4], 1
jne 0x1004088a
jmp 0x100408c2
mov dword [esp + 0x34], edx
mov edx, dword [ebx]
test edx, edx
jle 0x10041df4
lea esi, [ebx + 8]
xor eax, eax
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x28], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov edx, dword [esi]
test edx, edx
je 0x10043d9a
mov ecx, dword [esp + 0x2c]
call fcn.1004be40
mov ecx, dword [ebx]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
or ecx, edx
mov edx, dword [esp + 0x10]
or edx, eax
mov eax, edx
inc edi
add esi, 0x14
mov edx, dword [esp + 0x28]
cmp edi, edx
jl 0x1004195c
mov edx, dword [esp + 0x34]
or edx, eax
or dword [esp + 0x24], ecx
jmp 0x100416d1
mov dword [esp + 0x9c], 0
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov esi, eax
inc esi
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x10043dbc
movzx eax, word [eax + 0x11c]
cmp esi, eax
ja 0x1004207c
cmp esi, 0x80
ja 0x10042216
mov ecx, dword [esp + 0x4c]
mov edi, dword [ecx + 0x140]
test edi, edi
je 0x10042208
mov eax, dword [edi]
mov dword [ecx + 0x140], eax
inc dword [ecx + 0x128]
jmp 0x100420ad
movzx ecx, word [esp + 0xa4]
mov esi, dword [edx + 0x30]
mov dword [esp + 0x40], esi
mov edi, dword [esp + 0x54]
lea esi, [edi + 1]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x40]
mov edi, dword [esi + edi*4]
jmp 0x1004062f
test byte [eax + 0xc], 0x28
setne byte [esp + 0x58]
jmp 0x10040db2
mov esi, eax
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
movzx edi, word [esp + 0x84]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], edx
push edi
mov dword [esp + 0x5c], eax
push eax
call fcn.1004d760
add esp, 8
lea eax, [esi + 0xa]
mov dword [esp + 0x48], eax
movzx eax, word [esi + 0xa]
bt eax, 8
jb 0x10043dca
test al, al
js 0x10041aff
mov eax, dword [esp + 0xc]
mov cl, byte [eax]
cmp cl, 0xaf
je 0x10042d08
mov edx, ecx
add dl, 0x54
cmp dl, 1
jbe 0x10042d25
cmp cl, 0xa6
je 0x100420c4
cmp cl, 0x74
je 0x10041aff
add cl, 0x68
cmp cl, 3
jb 0x10041aff
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10042a65
cmp dword [esp + 0x9c], 0
je 0x10041e4d
mov ecx, dword [esp + 0xc]
mov edx, edi
mov esi, dword [esp + 0x9c]
push esi
call fcn.1004d350
add esp, 4
xor ecx, ecx
cmp word [esp + 0x84], 0
je 0x10041e11
mov eax, dword [esp + 0x58]
add eax, edi
mov dword [esp + 0x74], eax
lea eax, [esi + edi]
mov dword [esp + 0x84], eax
mov eax, edi
cmp byte [esi], 0x41
jg 0x10041e0f
lea edx, [eax - 1]
inc dword [esp + 0x58]
inc esi
cmp eax, 1
mov eax, edx
jg 0x10041b4a
mov eax, dword [esp + 0x74]
mov dword [esp + 0x58], eax
mov esi, dword [esp + 0x84]
jmp 0x10041e11
mov ecx, esi
call fcn.10139000
jmp 0x10040fa5
mov ecx, esi
mov edx, 0x5c
push 0
push dword [esp + 0x4c]
push ebx
call fcn.10007820
add esp, 0xc
jmp 0x100411ce
movzx esi, word [esp + 0xc]
movzx edx, si
cmp ecx, edx
cmova edx, ecx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x38], eax
test byte [eax + 0xb], 1
jne 0x10043e51
test edi, edi
je 0x10043ede
mov dword [esp + 0x48], 0
jmp 0x10040666
test byte [edi + 0xc], 0x28
setne dl
jmp 0x10040da3
mov dword [esp + 0x5c], edx
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
movzx esi, word [esp + 0xa4]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x68], edx
mov dword [esp + 0xc], esi
push esi
mov dword [esp + 0x4c], eax
push eax
call fcn.1004d760
add esp, 8
lea esi, [edi + 0xa]
movzx eax, word [edi + 0xa]
bt eax, 8
jb 0x10043f1b
test al, al
js 0x10041ca7
mov eax, dword [esp + 0x68]
mov cl, byte [eax]
cmp cl, 0xaf
je 0x10042d10
mov edx, ecx
add dl, 0x54
cmp dl, 1
jbe 0x10042d2d
cmp cl, 0xa6
je 0x100421be
cmp cl, 0x74
je 0x10041ca7
add cl, 0x68
cmp cl, 3
jb 0x10041ca7
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10042b8f
lea ecx, [eax + 1]
mov edx, dword [esp + 0x2c]
mov dword [edx], ecx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x32
mov edx, dword [esp + 0x48]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x78]
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 dword [esp + 0x48], esi
cmp dword [esp + 0x10], 0
mov esi, dword [esp + 0x68]
je 0x10041cc5
mov ecx, esi
mov edx, dword [esp + 0xc]
push ebx
call fcn.1004d350
add esp, 4
mov al, byte [esi]
cmp al, 0xaf
mov edx, esi
je 0x10043f6a
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x54]
mov dword [esp + 0xc], ecx
cmp al, 0x89
mov esi, dword [esp + 0x48]
je 0x10043f72
cmp al, 0xb0
je 0x10043f7a
movzx ecx, word [esi]
test cl, 4
jne 0x10042c6b
mov dword [esp + 0x48], 0
mov eax, esi
mov edx, dword [esp + 0x34]
cmp dword [edx], 0
jne 0x10042c5f
mov edx, dword [edi + 0x28]
mov esi, dword [edi + 0x2c]
mov ebx, edi
mov edi, dword [esp + 0x64]
and esi, dword [edi + 4]
and edx, dword [edi]
mov dword [esp + 0x68], 0
or edx, esi
jne 0x10041d5a
cmp dword [esp + 0x48], 0
mov edx, 0x200
mov esi, 4
cmove edx, esi
bt ecx, 0xa
cmovae edx, esi
or edx, ecx
mov word [eax], dx
mov edx, dword [ebx + 0x10]
test edx, edx
jns 0x10042c2b
mov edx, dword [esp + 0x5c]
jmp 0x10040df7
mov ecx, dword [esp + 0x1c]
mov edx, 0x1f
push eax
push edi
push dword [esp + 0x58]
call fcn.10007820
add esp, 0xc
jmp 0x10040a7c
mov ebx, 0xffff8000
jmp 0x100400e9
xor edx, edx
mov dword [esp + 0x24], 0
jmp 0x100416c2
xor edx, edx
cmp al, 0x42
setg dl
jmp 0x10040d04
movzx eax, byte [esp + 0xa4]
mov dword [esp + 0x84], eax
mov ebx, dword [esp + 0x48]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0x38]
mov eax, esi
mov dword [esp + 0xa4], eax
mov dword [esp + 0x48], 0
jmp 0x100406c9
mov eax, dword [ebx]
mov dword [edi + 0x134], eax
jmp 0x1004077e
xor eax, eax
xor ecx, ecx
jmp 0x1004199b
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
mov byte [eax + ecx + 0x35], 0xb1
jmp 0x10040816
mov ecx, eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
mov dword [esp + 0x84], eax
mov eax, ecx
cmp eax, 2
jl 0x10041e42
lea edx, [eax - 1]
mov dword [esp + 0x74], edx
cmp byte [esi + eax - 1], 0x42
mov eax, dword [esp + 0x74]
jl 0x10041e21
mov eax, dword [esp + 0x74]
inc eax
jmp 0x10041ee6
xor eax, eax
inc eax
test ecx, ecx
jg 0x10041ee6
mov eax, dword [esp + 0xc]
mov al, byte [eax]
cmp al, 0xaf
je 0x10043e19
add edi, dword [esp + 0x54]
cmp al, 0x89
je 0x10043e25
cmp al, 0xb0
je 0x10043e35
mov esi, dword [esp + 0x4c]
jmp 0x10040f87
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
mov dword [esp + 0x74], eax
jle 0x10042c85
mov dl, byte [edi + 2]
jmp 0x10040c8d
cmp dword [esp + 0x5c], 1
mov ebx, esi
jne 0x10043ff8
cmp dword [esp + 0x38], 0
je 0x10041fc5
mov edi, dword [esp + 0x18]
movzx ecx, byte [edi + 0x13]
cmp ecx, 7
ja 0x10041fc5
mov edx, ecx
inc dl
mov byte [edi + 0x13], dl
mov edx, dword [esp + 0x38]
mov dword [edi + ecx*4 + 0x94], edx
mov dword [esp + 0x38], eax
jmp 0x10040b70
cmp dword [esp + 0x10], 0
je 0x10040d37
mov eax, dword [ecx]
mov ecx, 0x800
and ecx, dword [eax + 4]
je 0x10040d37
jmp 0x10040d2b
mov edx, 0x61
mov eax, dword [ebp + 0x18]
jmp 0x1004029e
mov ecx, dword [esp + 0x20]
test ecx, ecx
mov eax, 3
cmovne eax, ecx
jmp 0x100408c6
mov ecx, dword [esp + 0x4c]
cmp dword [ecx + 0x118], 0
je 0x10042cfd
cmp byte [ecx + 0x53], 0
jne 0x10040d74
mov edx, esi
push 0
call fcn.10143c10
add esp, 4
mov edi, eax
test eax, eax
je 0x10040d74
push esi
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esp + 0x9c], edi
jmp 0x10040d74
test byte [eax + 6], 0x10
jne 0x10041abc
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x10041abc
mov cl, byte [eax + 2]
jmp 0x10040bb0
movzx eax, word [esi + 0xa]
mov edx, dword [esp + 0xc]
jmp 0x10040894
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xa0]
mov eax, dword [ecx + edx*8 + 0x20]
mov edi, dword [ecx + edx*8 + 0x24]
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x10042cb9
lea edx, [ecx + 1]
mov esi, dword [esp + 0x2c]
mov dword [esi], edx
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0xd
mov dword [edx + ecx*4 + 4], edi
xor ebx, ebx
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 + 0x1c]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10042cd3
lea ecx, [eax + 1]
mov edx, dword [esp + 0x2c]
mov dword [edx], ecx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4], 0xe
mov dword [ecx + edx*4 + 4], edi
mov esi, dword [esp + 0x40]
mov dword [ecx + edx*4 + 8], esi
xor esi, esi
mov dword [ecx + edx*4 + 0xc], esi
mov dword [ecx + edx*4 + 0x10], esi
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov dword [ecx + edx + 0x3c], eax
mov byte [ecx + edx + 0x35], 0xb
jmp 0x10040816
test byte [eax + 6], 0x10
jne 0x10041c64
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x10041c64
movsx eax, word [eax + 0x20]
test eax, eax
js 0x10041ca7
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x10041ca7
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 0xc], 0
je 0x10041c64
jmp 0x10041ca7
inc dword [edi + 0x12c]
jmp 0x10040ae0
mov edi, dword [ecx + 0x13c]
test edi, edi
jne 0x10042baf
mov ecx, dword [esp + 0x4c]
mov edi, dword [ecx + 0x138]
test edi, edi
jne 0x1004296c
mov edi, dword [ecx + 0x134]
test edi, edi
jne 0x10042cf0
inc dword [ecx + 0x130]
jmp 0x10042097
xor esi, esi
inc esi
cmp dl, 0xac
cmove ecx, esi
mov edi, dword [edi + 0xc]
jmp 0x10040c74
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x28]
mov edi, dword [ecx + 0x2c]
mov dword [esp + 0x9c], eax
inc eax
mov dword [ecx + 0x28], eax
inc edi
mov dword [ecx + 0x2c], edi
mov esi, dword [ecx + 0x38]
lea eax, [esi - 1]
mov dword [esp + 0x88], eax
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xa0]
mov eax, dword [eax + ecx*8 + 0x18]
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], edx
mov eax, dword [edx + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
mov byte [eax + ecx + 0x35], 0x41
mov dword [esp + 0x58], edi
mov dword [eax + ecx + 0x38], edi
mov eax, dword [esp + 0x14]
movzx ebx, byte [eax + 0x2c]
cmp ebx, 2
mov dword [esp + 0x74], esi
jb 0x100440be
mov eax, ebx
sub eax, dword [esp + 0x60]
mov edi, eax
lea eax, [eax + eax*8]
lea edx, [eax*8 + 8]
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x100440ce
push 0
call fcn.1014e1f0
add esp, 4
mov edx, eax
test eax, eax
je 0x100440dc
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xa0]
lea esi, [eax + ecx*8]
add esi, 8
mov eax, edi
mov dword [esp + 0x20], edi
movzx eax, al
mov dword [edx + 4], eax
mov dword [edx], eax
lea edi, [edx + 8]
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x20], 2
mov dword [esp + 0x6c], edx
jl 0x10042376
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], eax
add ebx, dword [esp + 0xc8]
lea eax, [edx + 0x50]
mov edx, dword [esp + 0xcc]
movzx ecx, byte [edx]
lea ecx, [ecx + ecx*8]
mov esi, dword [esp + 0x20]
lea esi, [esi + ecx*8]
add esi, 8
mov ecx, 0x12
mov edi, eax
rep movsd dword es:[edi], dword [esi]
add edx, 0x58
add eax, 0x48
dec ebx
jne 0x10042354
xor ebx, ebx
mov eax, dword [esp + 0x14]
test byte [eax + 0x28], 0x10
mov dword [esp + 0x8c], 0
mov dword [esp + 0x30], 0
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x50]
jne 0x100423db
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x24], 0
js 0x100440ec
mov ebx, dword [esi]
inc ebx
mov dword [esi], ebx
xor eax, eax
mov ecx, dword [esp + 0x1c]
mov edx, 0x48
push eax
mov dword [esp + 0x90], ebx
push ebx
push eax
call fcn.10036aa0
add esp, 0xc
mov eax, dword [esi]
inc eax
mov dword [esp + 0x30], eax
mov dword [esi], eax
xor ebx, ebx
mov ecx, dword [esp + 0x1c]
mov edx, 0x45
push ebx
push dword [esp + 0x5c]
push ebx
call fcn.10036aa0
add esp, 0xc
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
cmp eax, 2
jl 0x1004248d
xor edi, edi
xor ebx, ebx
xor esi, esi
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x64]
mov edx, dword [esp + 0x40]
sub edx, ecx
cmp edx, edi
je 0x10042463
test byte [ecx + edi + 0xa], 6
jne 0x10042463
movzx edx, word [ecx + edi + 0xc]
test edx, 0x1fff
je 0x10042463
mov edx, dword [ecx + edi]
xor eax, eax
test edx, edx
je 0x1004244b
mov ecx, dword [esp + 0x4c]
push eax
push eax
call fcn.10001c40
add esp, 8
mov ecx, dword [esp + 0x18]
mov edx, esi
push eax
call fcn.100081d0
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
inc ebx
add edi, 0x30
cmp ebx, eax
jl 0x1004240f
test esi, esi
je 0x10044111
mov ecx, dword [esp + 0x18]
mov edx, 0x1002c
push esi
push 0
call fcn.10007a60
add esp, 8
mov ebx, eax
mov edi, dword [esp + 0x50]
push str.MULTI_INDEX_OR
push 1
push dword [esp + 0x20]
call fcn.10036110
add esp, 0xc
mov dword [esp + 0xa4], 0
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0xc], 0
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x84], ebx
jle 0x10042a85
mov eax, dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x48], eax
xor edx, edx
mov dword [esp + 0x38], 0
mov dword [esp + 0x54], 0
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x20], edx
lea ecx, [edx + edx*2]
shl ecx, 4
cmp dword [eax + ecx + 0x14], edi
je 0x100424ff
test byte [eax + ecx + 0xd], 4
je 0x10044040
mov edx, dword [eax + ecx]
xor eax, eax
test edx, edx
je 0x1004401e
mov ecx, esi
push eax
push eax
call fcn.10001c40
add esp, 8
cmp byte [esi + 0x53], 0
mov edi, dword [esp + 0x20]
jne 0x10044031
mov esi, eax
test ebx, ebx
je 0x10042531
mov dword [ebx + 0xc], eax
mov esi, ebx
mov dword [esp + 0x68], eax
lea eax, [edi + 1]
push eax
push str.INDEX__d
push 1
mov edi, dword [esp + 0x24]
push edi
call fcn.10036110
add esp, 0x10
xor eax, eax
mov ecx, edi
mov ebx, dword [esp + 0x6c]
mov edx, ebx
push dword [esp + 0x9c]
push 0x20
push eax
push eax
push esi
call fcn.1003ef90
add esp, 0x14
test eax, eax
je 0x10044049
mov dword [esp + 0x3c], eax
add eax, 0x2f0
mov ecx, edi
mov edx, ebx
push 0
push eax
call fcn.10045630
add esp, 8
mov eax, dword [esp + 0x14]
test byte [eax + 0x28], 0x10
mov edi, dword [esp + 0x20]
mov ebx, 0
jne 0x1004266f
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
dec eax
xor esi, esi
dec esi
cmp edi, eax
cmovne esi, edi
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x24], 0
mov eax, dword [esp + 0x48]
js 0x10043bbe
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
mov edi, dword [esp + 0x50]
jle 0x100427b1
lea ecx, [eax + 1]
mov edx, dword [esp + 0x2c]
mov dword [edx], ecx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x83
mov dword [ecx + eax*4 + 4], edi
mov edx, dword [esp + 0x30]
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 + 0x1c]
mov ebx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ebx
jle 0x100427ce
lea eax, [ebx + 1]
mov ecx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
lea ecx, [ebx + ebx*4]
mov dword [eax + ecx*4], 0x2d
mov edx, dword [esp + 0x8c]
mov dword [eax + ecx*4 + 4], edx
xor edx, edx
mov dword [eax + ecx*4 + 8], edx
mov edi, dword [esp + 0x30]
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], edx
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
cmp byte [eax + 0x53], 0
jne 0x1004266f
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
lea ecx, [ebx + ebx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], esi
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x1004278e
lea ecx, [eax + 1]
mov edx, dword [esp + 0x2c]
mov dword [edx], ecx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0xc
mov edx, dword [esp + 0x58]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x88]
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
test ebx, ebx
je 0x100426e3
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x6c]
cmp byte [ecx + 0x53], 0
jne 0x1004405a
lea ecx, [eax - 1]
test ebx, ebx
cmovns ecx, ebx
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 0x28]
add ecx, dword [edx]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x30]
xor esi, esi
inc esi
test al, 2
cmove esi, dword [esp + 0x38]
mov ecx, dword [ecx + 0x338]
xor ebx, ebx
test byte [ecx + 0x25], 2
je 0x10042722
test edi, edi
je 0x1004270f
mov edx, dword [esp + 0x54]
cmp dword [ecx + 0x20], edx
jne 0x10042722
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x24], 0
mov ecx, dword [ecx + 0x20]
js 0x10044064
mov ebx, ecx
test al, 1
je 0x1004272e
mov eax, dword [esp + 0x14]
or byte [eax + 0x30], 1
mov ecx, dword [esp + 0x3c]
call fcn.100370c0
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0xd4]
xor ecx, ecx
test eax, eax
jne 0x10044078
mov dword [edx + 0xd4], ecx
mov edx, dword [esp + 0x68]
test edx, edx
je 0x10042762
mov ecx, dword [esp + 0x4c]
call fcn.10139110
mov dword [esp + 0x54], ebx
mov dword [esp + 0x38], esi
inc edi
mov ecx, dword [esp + 0xc]
cmp edi, dword [ecx + 0xc]
mov edx, edi
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x84]
jl 0x100424e1
jmp 0x10042a95
mov ecx, dword [esp + 0x1c]
mov edx, 0xc
push 0
push dword [esp + 0x8c]
push dword [esp + 0x60]
call fcn.10007820
add esp, 0xc
jmp 0x100426b5
mov ecx, dword [esp + 0x1c]
mov edx, 0x83
push 0
push dword [esp + 0x34]
push edi
call fcn.10007820
add esp, 0xc
jmp 0x10042607
mov ecx, dword [esp + 0x1c]
mov edx, 0x2d
push dword [esp + 0x30]
push 0
push dword [esp + 0x94]
call fcn.10007820
add esp, 0xc
mov ebx, eax
jmp 0x1004264d
mov eax, dword [esp + 0x44]
movzx eax, byte [eax + ebx + 0x34]
lea eax, [eax + eax*8]
mov ecx, dword [esp + 0x70]
lea eax, [ecx + eax*8]
add eax, 8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xbc]
push dword [esp + 0x34]
push dword [esp + 0x94]
push dword [esp + 0xb8]
push eax
call fcn.10068310
add esp, 0x10
mov eax, dword [esp + 0x7c]
cmp byte [eax + 0x53], 0
je 0x1004044c
jmp 0x10042d47
mov eax, dword [eax + 0xc]
jmp 0x10040b97
xor esi, esi
mov ecx, dword [esp + 0x1c]
mov edx, 0x45
push esi
push eax
push esi
call fcn.10007820
add esp, 0xc
jmp 0x100415f4
mov ecx, dword [esp + 0x1c]
mov edx, 0x45
push 0
push eax
push 1
call fcn.10007820
add esp, 0xc
jmp 0x100418f5
mov eax, dword [edx]
test byte [eax + 5], 8
je 0x100414f1
mov ecx, dword [eax + 0x14]
mov ecx, dword [ecx + 0x1c]
cmp dword [ecx], 1
jg 0x10040979
jmp 0x100414f1
mov eax, dword [edi]
mov dword [ecx + 0x138], eax
jmp 0x10041a02
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x30], esi
mov edi, dword [esi + 0xc]
mov esi, edi
mov dword [esp + 0x60], edi
test edi, edi
jle 0x1004421a
mov esi, dword [esp + 0x30]
mov esi, dword [esi + 0x14]
mov edi, dword [esp + 0x60]
lea edi, [edi + edi*2]
shl edi, 4
add edi, esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x30], esi
mov edi, esi
mov esi, dword [edi + 0x28]
and esi, dword [esp + 0xc]
mov dword [esp + 0x60], edi
mov edi, dword [edi + 0x2c]
and edi, dword [esp + 0x10]
or edi, esi
je 0x100429e5
mov esi, dword [esp + 0x60]
mov edi, dword [esi]
test byte [edi + 4], 1
je 0x10041764
mov esi, dword [edi + 0x24]
cmp esi, dword [ecx + eax*8 + 0x34]
jne 0x10041764
mov edi, dword [esp + 0x60]
add edi, 0x30
cmp edi, dword [esp + 0x3c]
jb 0x100429b2
add dword [esp + 0x30], 0x30
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
and eax, dword [esi - 8]
and ecx, dword [esi - 4]
or ecx, eax
je 0x10042a15
mov eax, dword [esp + 0x30]
or byte [eax - 0x26], 4
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x30], eax
jae 0x1004420f
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
add dword [esp + 0x30], 0x30
jmp 0x100429ff
mov dword [esp + 0x54], 0
mov dword [esp + 0x38], 0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xd4]
test eax, eax
jne 0x10044181
mov eax, dword [esp + 0xa4]
mov dword [ecx + 0xd4], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x54]
mov dword [eax + ecx + 0x40], edx
test edx, edx
je 0x10042ad3
mov edx, dword [esp + 0x9c]
mov dword [eax + ecx + 8], edx
test ebx, ebx
je 0x10042ae7
mov dword [ebx + 0xc], 0
mov ecx, esi
mov edx, ebx
call fcn.10139110
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x6c]
cmp byte [ecx + 0x53], 0
jne 0x100441be
lea ecx, [eax - 1]
mov edx, dword [esp + 0xa8]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 0x28]
add ecx, dword [edx]
mov dword [ecx + 4], eax
xor eax, eax
mov esi, dword [esp + 0x1c]
mov ecx, esi
mov edx, 0xb
push eax
mov edi, dword [esp + 0x7c]
push dword [edi - 4]
push eax
call fcn.10036aa0
add esp, 0xc
mov ecx, dword [esi + 0xc]
mov esi, dword [esp + 0x74]
neg esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x100441c8
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x6c]
test edx, edx
je 0x10042b72
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x2c], 2
jb 0x10042b72
call fcn.10139000
cmp dword [esp + 0x38], 0
jne 0x10040816
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x40]
call fcn.10169c60
jmp 0x10040816
mov ecx, dword [esp + 0x1c]
mov edx, 0x32
push 0
push dword [esp + 0x7c]
push dword [esp + 0x50]
call fcn.10007820
add esp, 0xc
jmp 0x10041ca7
mov eax, dword [edi]
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 0x13c], eax
jmp 0x10041a02
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + 0x14]
lea edx, [edx + edx*2]
shl edx, 4
dec byte [ecx + edx + 0xe]
jne 0x10041d5a
lea edi, [ecx + edx]
lea esi, [ecx + edx]
add esi, 0xa
movzx ecx, word [esi]
dec dword [esp + 0x48]
test cl, 4
je 0x10041d05
jmp 0x10041d5a
mov edx, dword [edi]
test byte [edx + 4], 1
jne 0x10041d14
mov dword [esp + 0x68], 0
jmp 0x10041d5a
mov ecx, dword [esp + 0x1c]
mov edx, 0xd
push eax
push 0
push edi
call fcn.10007820
add esp, 0xc
jmp 0x10042169
mov ecx, dword [esp + 0x1c]
mov edx, 0xe
push 0
push dword [esp + 0x44]
push edi
call fcn.10007820
add esp, 0xc
jmp 0x100421a8
mov eax, dword [edi]
mov dword [ecx + 0x134], eax
jmp 0x10041a02
inc dword [ecx + 0x12c]
jmp 0x10042097
mov cl, byte [eax + 2]
jmp 0x10041aa6
mov cl, byte [eax + 2]
jmp 0x10041c4e
mov eax, dword [eax + 0xc]
jmp 0x10041a8d
mov eax, dword [eax + 0xc]
jmp 0x10041c35
cmp dword [esp + 0x14], 0
je 0x10042da5
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x44]
test edx, edx
je 0x10042d8b
mov esi, dword [esp + 0x14]
mov eax, dword [edx]
mov dword [esi + 0x44], eax
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0x38]
mov dword [eax + 0x30], ecx
movups xmm0, xmmword [edx + 0x28]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [edx + 0x18]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [edx + 8]
movups xmmword [eax], xmm0
mov eax, dword [esi]
mov ecx, dword [eax]
call fcn.10139000
mov edx, dword [esi + 0x44]
test edx, edx
jne 0x10042d56
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x84], eax
mov ecx, dword [esp + 0x7c]
call fcn.10037d10
xor esi, esi
jmp 0x1004129e
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + ecx + 0x2c]
test eax, eax
je 0x100408a8
mov ecx, eax
shr ecx, 1
mov dword [esp + 0x30], ecx
and eax, 1
mov dword [esp + 0xc], edx
lea edx, [eax + eax]
add edx, 0x12
xor eax, eax
mov ecx, dword [esp + 0x1c]
push eax
push eax
push dword [esp + 0x38]
call fcn.10036aa0
add esp, 0xc
mov dword [esp + 0x30], eax
push 0x10
push dword [esp + 0xc4]
push dword [esp + 0x14]
push dword [esp + 0x24]
call fcn.10044d40
add esp, 0x10
cmp dword [esp + 0x30], 0
je 0x100408be
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
mov ecx, 0x101ddee0
cmp byte [edx + 0x53], 0
jne 0x10042e3d
lea ecx, [eax - 1]
mov edx, dword [esp + 0x30]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 0x28]
add ecx, dword [edx]
mov dword [ecx + 8], eax
jmp 0x100408be
mov eax, dword [esp + 0x20]
movzx ebx, word [eax + 0x28]
lea eax, [ebx + 2]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x1c]
sub ecx, eax
jge 0x1004314d
mov edx, dword [esp + 0x80]
mov ecx, dword [edx]
lea esi, [ecx + 1]
mov dword [esp + 0x10], esi
add eax, ecx
mov dword [edx], eax
jmp 0x10043160
mov dword [esp + 0x64], esi
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x40]
xor eax, eax
mov dword [esp + 0x60], 0
test ecx, ecx
je 0x100438e4
mov edx, dword [esp + 0x7c]
cmp dword [ecx], edx
je 0x100438e0
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x10042e95
mov dword [esp + 0x60], 0
jmp 0x100438e4
mov ebx, edi
xor edi, edi
mov ecx, 0
mov edx, 0
test al, 0x20
je 0x100430ee
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x30]
mov ecx, dword [ecx]
xor edx, edx
inc edx
test al, 0x10
je 0x100430fc
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
mov edi, dword [eax + edx*4]
cmp dword [esp + 0x30], 0
mov esi, ecx
cmove esi, edi
cmove edi, ecx
test edi, edi
je 0x1004385e
mov eax, dword [edi]
mov dword [esp + 0x20], eax
mov edx, dword [eax + 0x10]
mov al, byte [edx]
cmp al, 0xaf
jne 0x10043123
mov al, byte [edx + 2]
cmp al, 0x89
je 0x100439ce
cmp al, 0xb0
jne 0x100439df
lea eax, [edx + 0x14]
jmp 0x100439d4
xor eax, eax
dec eax
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x4c], eax
mov dword [ecx + 0x48], eax
jmp 0x1004001b
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0x20]
mov dword [esp + 0x10], esi
add eax, esi
mov dword [edx + 0x20], eax
mov dword [edx + 0x1c], ecx
mov eax, dword [esp + 0x78]
mov eax, dword [eax - 4]
mov dword [esp + 0x40], eax
test bx, bx
je 0x100431cb
mov eax, dword [esp + 0x10]
lea esi, [eax + 2]
xor edi, edi
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + edi*4]
test edx, edx
je 0x100431c6
lea eax, [esi + edi]
test byte [edx + 0xc], 1
jne 0x100431a6
mov ecx, dword [edx]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x18]
push 1
push eax
call fcn.1004d760
add esp, 8
jmp 0x100431c6
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x34]
push edi
push dword [esp + 0x40]
call fcn.10048e60
add esp, 0x10
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
inc edi
cmp ebx, edi
jne 0x10043179
xor eax, eax
mov edi, dword [esp + 0x1c]
mov ecx, edi
mov edx, 0x45
push eax
mov esi, dword [esp + 0x14]
push esi
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x28]
push dword [eax + 0x18]
call fcn.10036aa0
add esp, 0xc
lea eax, [esi + 1]
mov ecx, edi
mov edx, 0x45
xor esi, esi
push esi
mov dword [esp + 0x10], eax
push eax
push ebx
call fcn.10036aa0
add esp, 0xc
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x1c], 1
mov esi, 0
sbb esi, esi
or esi, 0xfffffff9
mov eax, dword [eax + 0x20]
mov dword [esp + 0x30], eax
mov ecx, edi
mov edx, 9
push dword [esp + 0x10]
push dword [esp + 0x44]
push dword [esp + 0x58]
call fcn.10036aa0
add esp, 0xc
mov ecx, edi
mov edx, eax
push esi
push dword [esp + 0x34]
call fcn.1004f010
add esp, 8
mov eax, dword [esp + 0x20]
mov byte [eax + 0x1c], 0
mov eax, dword [esp + 0x4c]
cmp byte [eax + 0x53], 0
je 0x1004326e
mov eax, dword [esp + 0x20]
mov dword [eax + 0x20], 0
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x50]
mov dword [edx + esi + 0x38], eax
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x2e], 0
mov eax, 0x3d
mov ecx, 0xb1
cmove ecx, eax
mov byte [edx + esi + 0x35], cl
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [edx + esi + 0x3c], eax
test bx, bx
je 0x10040816
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
add eax, ecx
add eax, 0x44
mov dword [esp + 0x30], eax
mov eax, dword [eax - 4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
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 + 0x40], ecx
lea edi, [ebx - 1]
cmp ebx, 0x10
jg 0x100432fc
mov ecx, dword [esp + 0x20]
movzx ecx, word [ecx + 0x1e]
bt ecx, edi
jae 0x100432fc
mov ecx, dword [esp + 0x34]
mov edx, esi
call fcn.10169c60
jmp 0x10043300
test al, 1
jne 0x1004330f
mov eax, edi
inc eax
mov ebx, edi
cmp eax, 1
jg 0x100432c2
jmp 0x10040816
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
mov cl, byte [eax]
cmp cl, 0xaf
jne 0x1004331e
mov cl, byte [eax + 2]
cmp cl, 0x89
je 0x1004332d
cmp cl, 0xb0
jne 0x1004333a
add eax, 0x14
jmp 0x10043333
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov eax, dword [eax]
cmp dword [eax], 1
jne 0x10043300
mov eax, dword [esp + 0x4c]
cmp byte [eax + 0x53], 0
je 0x100433db
xor eax, eax
mov ecx, dword [esp + 0x18]
mov edx, 0x35
push eax
push eax
call fcn.10007a60
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x10043300
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
mov esi, dword [esp + 0x10]
mov dword [esi + 0xc], eax
xor eax, eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], eax
mov ecx, dword [esp + 0x4c]
mov edx, 0xaf
push eax
lea eax, [esp + 0x134]
push eax
call fcn.10007880
add esp, 8
mov dword [esi + 0x10], eax
test eax, eax
je 0x100433c2
add ebx, dword [esp + 0xc]
mov dword [eax + 0x1c], ebx
push 0x10
mov eax, dword [esp + 0x68]
push dword [eax - 0x38]
push dword [esp + 0x18]
push dword [esp + 0x24]
call fcn.10044d40
add esp, 0x10
mov edx, dword [esp + 0x10]
mov dword [edx + 0xc], 0
mov ecx, dword [esp + 0x4c]
call fcn.10139110
jmp 0x10043300
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov ecx, dword [esp + 0x40]
lea ecx, [ecx + ecx*4]
mov ecx, dword [eax + ecx*4 + 4]
test ecx, ecx
jns 0x100433f7
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
dec ecx
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov eax, 0x101ddee0
cmp byte [edx + 0x53], 0
jne 0x10043414
lea eax, [ecx + ecx*4]
shl eax, 2
mov ecx, dword [esp + 0x28]
add eax, dword [ecx]
movzx edx, byte [eax]
mov ecx, dword [esp + 0x1c]
push dword [eax + 0xc]
push dword [eax + 8]
push dword [eax + 4]
call fcn.10036aa0
add esp, 0xc
jmp 0x10043348
mov eax, dword [esp + 0x80]
mov edx, dword [eax]
inc edx
mov dword [eax], edx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x3c], edx
mov dword [eax + ecx + 0x24], edx
mov eax, dword [esp + 0x34]
cmp dword [eax], 0
je 0x1004346f
xor eax, eax
mov ecx, dword [esp + 0x1c]
mov edx, 0x45
push eax
push dword [esp + 0x40]
push eax
call fcn.10036aa0
add esp, 0xc
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov dword [ecx + edx + 0x28], eax
xor edx, edx
inc edx
mov al, 1
mov dword [esp + 0x48], eax
movzx esi, word [esp + 0xc]
jmp 0x10040687
mov ecx, esi
xor edx, edx
call fcn.10144e50
jmp 0x10040aee
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
add eax, ecx
add eax, 8
mov edi, dword [eax]
lea eax, [edx + ebx]
xor ebx, ebx
mov esi, dword [esp + 0x58]
mov ecx, esi
mov edx, 0x48
push eax
push dword [esp + 0x3c]
push ebx
call fcn.10036aa0
add esp, 0xc
xor ebx, ebx
cmp dword [esp + 0x30], 0
sete bl
lea edx, [ebx*4 + 0x21]
mov ecx, esi
xor eax, eax
push eax
push eax
push edi
call fcn.10036aa0
add esp, 0xc
mov ecx, esi
mov edx, 0xb
xor eax, eax
push eax
push eax
push eax
call fcn.10036aa0
add esp, 0xc
mov dword [esp + 0x98], eax
lea edx, [ebx + ebx*2]
add edx, 0x16
mov ecx, esi
push dword [esp + 0x38]
xor eax, eax
push eax
mov dword [esp + 0x9c], edi
push edi
call fcn.10036aa0
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x53], 0
jne 0x1004354d
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx + 0x68]
lea edx, [eax + eax*4]
mov byte [ecx + edx*4 + 1], 0xfd
mov esi, dword [esp + 0xc]
mov dword [ecx + edx*4 + 0x10], esi
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov dword [ecx + edx + 0x14], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
mov eax, dword [eax + 0x6c]
cmp byte [ecx + 0x53], 0
mov ecx, 0x101ddee0
jne 0x10043589
lea ecx, [eax - 1]
mov edx, dword [esp + 0x98]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 0x58]
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
mov edi, dword [esp + 0x68]
inc edi
xor esi, esi
mov ebx, dword [esp + 0xc]
lea eax, [edi + esi]
mov ecx, dword [esp + 0x58]
mov edx, 0x5b
push eax
push esi
push dword [esp + 0x9c]
call fcn.10036aa0
add esp, 0xc
inc esi
cmp esi, ebx
jb 0x10043597
jmp 0x10040b1e
mov ecx, dword [esp + 0x1c]
mov edx, 0x45
push 0
push dword [esp + 0x40]
push 1
call fcn.10036aa0
add esp, 0xc
jmp 0x10040e9d
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x6c]
add eax, 2
xor edi, edi
mov ecx, ebx
mov edx, 0xb
push edi
push eax
push edi
call fcn.10036aa0
add esp, 0xc
xor eax, eax
cmp dword [esp + 0xc], 1
setg al
mov ecx, dword [esp + 0x30]
movzx edx, byte [ecx + eax*4 + 0x101a13e6]
mov ecx, ebx
push dword [esp + 0x38]
push dword [esp + 0x7c]
push dword [esp + 0x74]
call fcn.10036aa0
add esp, 0xc
mov ecx, dword [ebx]
cmp byte [ecx + 0x53], 0
jne 0x10040f5d
mov edx, dword [esp + 0xc]
add edx, esi
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x10040f5d
cmp dword [ecx + 0x1f8], 0
jne 0x10040335
dec dword [eax]
jne 0x10040335
mov ecx, dword [eax + 0xc]
mov edx, eax
call fcn.10139000
jmp 0x10040335
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x38]
add eax, esi
xor edi, edi
mov ecx, dword [esp + 0x1c]
mov edx, 0x48
push edi
push eax
push edi
call fcn.10036aa0
xor edx, edx
add esp, 0xc
lea eax, [esi + 1]
mov dword [esp + 0xc], eax
mov byte [esp + 0x88], 1
xor eax, eax
inc eax
mov dword [esp + 0x68], eax
jmp 0x10040df7
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x38]
add eax, esi
xor edi, edi
mov ecx, dword [esp + 0x1c]
mov ebx, edx
mov edx, 0x48
push edi
push eax
mov dword [esp + 0x70], 0
push edi
call fcn.10036aa0
mov edx, ebx
add esp, 0xc
lea eax, [esi + 1]
mov dword [esp + 0xc], eax
mov byte [esp + 0x88], 1
jmp 0x10040df7
cmp dword [esp + 0x3c], 0
jne 0x100437c0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
add eax, ecx
xor ebx, ebx
mov ecx, dword [esp + 0x1c]
mov edx, 0x48
push ebx
push eax
push ebx
call fcn.10036aa0
add esp, 0xc
mov eax, dword [esp + 0x54]
lea edi, [eax + 1]
jmp 0x10041edd
mov ecx, dword [esp + 0xc]
call fcn.10139000
mov ecx, dword [esp + 0x10]
jmp 0x1003ffba
test edi, edi
cmove edi, eax
lea ecx, [esp + 0x130]
call fcn.10048b90
test eax, eax
jne 0x1003fc1a
test edi, edi
je 0x1003f313
jmp 0x1003fc32
xor eax, eax
cmp dword [esp + 0x30], 0
sete al
lea edx, [eax*4 + 0x21]
mov ecx, dword [esp + 0x1c]
push 0
push ebx
push dword [esp + 0x58]
call fcn.10036aa0
add esp, 0xc
test esi, esi
je 0x100438ce
mov edi, dword [esi]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov edx, dword [edi + 0x10]
push 1
mov dword [esp + 0x24], eax
push eax
call fcn.1004d760
add esp, 8
mov eax, dword [edi + 0x10]
mov cl, byte [eax]
mov edx, ecx
cmp cl, 0xaf
jne 0x100438b4
mov dl, byte [eax + 2]
cmp dl, 0x89
je 0x10043a5d
cmp dl, 0xb0
jne 0x10043a6a
lea edx, [eax + 0x14]
jmp 0x10043a63
mov edi, 0xb1
mov dword [esp + 0x20], 0
jmp 0x10043b0b
mov dword [esp + 0x60], ecx
mov esi, dword [esp + 0x1c]
mov ecx, esi
mov edx, 0xa9
push eax
push eax
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x3c]
push dword [eax + edi*8 + 0x34]
call fcn.10036aa0
add esp, 0xc
mov ecx, esi
mov edx, eax
push 0xfffffffffffffff4
push dword [esp + 0x64]
call fcn.1004f010
add esp, 8
mov esi, dword [esp + 0x64]
jmp 0x1004020d
mov dword [esp + 0x88], 0
jmp 0x10040f5d
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 8]
movsx eax, word [eax]
add eax, 9
mov ecx, 0x66666667
imul ecx
mov ecx, edx
shr ecx, 0x1f
sar edx, 2
add edx, ecx
mov dword [esp + 0x88], edx
mov ecx, dword [esp + 0x1c]
mov edx, pe_nt_image_headers32
xor eax, eax
push eax
xor eax, eax
push eax
push dword [esp + 0x90]
call fcn.10036aa0
add esp, 0xc
mov dword [esp + 0x88], eax
jmp 0x10040ed8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
push dword [eax]
push 0
push dword [eax + 0x1c]
call fcn.1004cdd0
add esp, 0xc
jmp 0x1004020d
mov eax, dword [edx + 0x14]
add eax, 0x1c
mov eax, dword [eax]
cmp dword [eax], 2
jge 0x10043aa9
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x130]
push eax
call fcn.10045140
add esp, 4
mov ebx, eax
mov ecx, dword [esp + 0x34]
mov edx, edi
call fcn.10169c60
mov eax, dword [esp + 0x20]
movzx eax, byte [eax]
add eax, 0xffffffca
mov edi, dword [esp + 0x130]
movzx edx, byte [eax + 0x101a13e0]
mov ecx, dword [esp + 0x1c]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x58]
call fcn.10036aa0
add esp, 0xc
test edi, edi
je 0x10043882
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x10043882
mov ecx, eax
inc cl
mov edx, dword [esp + 0x18]
mov byte [edx + 0x13], cl
mov dword [edx + eax*4 + 0x94], edi
jmp 0x10043882
mov edx, dword [eax + 0x14]
add edx, 0x1c
mov edx, dword [edx]
cmp dword [edx], 1
jg 0x10043a88
mov dl, byte [edi]
cmp dl, 0x38
je 0x10043a76
cmp dl, 0x36
jne 0x10043a88
xor edx, edx
cmp dword [esp + 0x30], 0
sete dl
lea edi, [edx + edx]
add edi, 0x37
jmp 0x10043a92
mov edx, dword [esp + 0x30]
lea edi, [edx + edx]
add edi, 0x36
cmp cl, 0xaf
jne 0x10043a9a
mov cl, byte [eax + 2]
cmp cl, 0x89
je 0x10043af3
cmp cl, 0xb0
jne 0x10043b00
add eax, 0x14
jmp 0x10043af9
mov eax, dword [esp + 0x18]
mov al, byte [eax + 0x13]
test al, al
je 0x10043c3d
dec al
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0x13], al
movzx eax, al
mov edi, dword [ecx + eax*4 + 0x94]
mov ebx, dword [esp + 0x20]
mov edx, dword [ebx + 0x10]
mov ecx, dword [esp + 0x18]
push 1
push edi
call fcn.1004d760
add esp, 8
mov al, byte [ebx]
inc al
and al, 2
or al, 1
movzx eax, al
mov ebx, edi
jmp 0x10043a11
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov eax, dword [eax]
cmp dword [eax], 1
jg 0x10043b0b
mov ecx, dword [esp + 0x34]
mov edx, esi
call fcn.10169c60
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov ebx, dword [esp + 0x30]
xor bl, 5
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov byte [ecx + edx + 0x35], bl
mov esi, dword [esp + 0x50]
mov dword [ecx + edx + 0x38], esi
mov dword [ecx + edx + 0x3c], eax
cmp edi, 0xb1
je 0x10040816
mov eax, dword [esp + 0x80]
mov ebx, dword [eax]
inc ebx
mov dword [eax], ebx
mov esi, dword [esp + 0x1c]
mov ecx, esi
mov edx, 0x83
push 0
push ebx
push dword [esp + 0x58]
call fcn.10036aa0
add esp, 0xc
mov ecx, esi
mov edx, edi
push ebx
push dword [esp + 0x44]
push dword [esp + 0x28]
call fcn.10036aa0
add esp, 0xc
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x10040816
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x53
jmp 0x10040816
xor eax, eax
xor edx, edx
jmp 0x100416b2
mov edx, dword [esp + 0x48]
push edi
call fcn.10006530
add esp, 4
jmp 0x100411fa
xor edx, edx
test ecx, ecx
sete dl
jmp 0x10040d04
mov eax, dword [eax]
mov ecx, dword [eax + 0x38]
and ecx, 3
mov edi, eax
add eax, 0x14
cmp ecx, 2
jne 0x10043bbe
movzx eax, word [edi + 0x32]
mov ecx, eax
mov dword [esp + 0x94], eax
cmp eax, 1
jne 0x100441da
mov eax, dword [esp + 0x18]
mov al, byte [eax + 0x13]
test al, al
je 0x10044456
dec al
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x94]
mov dword [esp + 0x98], eax
jmp 0x100442c7
cmp byte [esi + 0x1c], 0
je 0x10041345
push dword [esi + 0x20]
call sym.nss3.dll_sqlite3_free
mov ecx, dword [esp + 0x14]
add esp, 4
mov byte [esi + 0x1c], 0
mov dword [esi + 0x20], 0
jmp 0x1003ffc8
mov eax, dword [esp + 0x80]
mov edi, dword [eax]
inc edi
mov dword [eax], edi
jmp 0x10043acb
xor eax, eax
dec eax
mov dword [esp + 0xb0], eax
jmp 0x10040059
xor eax, eax
xor edx, edx
jmp 0x10041981
mov eax, dword [ebp + 0x18]
inc eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x10041839
cmp ecx, edi
je 0x10041839
jmp 0x10043da6
mov ecx, esi
xor edx, edx
call fcn.10144e50
jmp 0x100420a3
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, 0x101ddee0
cmp byte [ecx + 0x53], 0
jne 0x10043df0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea eax, [ecx + eax*4]
add eax, 0xffffffec
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x24]
mov ecx, dword [edx + esi + 0x2c]
shr ecx, 1
mov dword [eax + 0xc], ecx
movzx ecx, word [edx + esi + 0x2c]
and ecx, 1
mov word [eax + 2], cx
mov eax, dword [esp + 0x48]
movzx eax, word [eax]
jmp 0x10041a85
mov eax, dword [esp + 0xc]
mov al, byte [eax + 2]
jmp 0x10041e5b
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov dword [esp + 0xc], eax
jmp 0x10043e3a
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx]
inc eax
mov dword [ecx], eax
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
mov dword [ecx + esi + 0x2c], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x5c], edx
mov edx, 0x45
push 0
push eax
push 1
call fcn.10036aa0
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x6c]
mov edx, dword [esp + 0x44]
mov dword [edx + esi + 0x30], eax
mov eax, dword [edx + esi + 0x2c]
lea ecx, [eax + eax]
mov dword [edx + esi + 0x2c], ecx
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x3c], ecx
xor edx, edx
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x3c]
cmp byte [ecx + edi], 1
mov edi, dword [esp + 0x74]
sete dl
xor edx, dword [esp + 0x30]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x44]
mov dword [ecx + esi + 0x2c], eax
movzx esi, word [esp + 0xc]
jmp 0x10041bc6
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x54]
movzx eax, word [eax + ecx*2]
test ax, ax
js 0x10043fe3
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 0xc], 0
je 0x10043fed
mov dword [esp + 0x48], 0
jmp 0x10040661
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, 0x101ddee0
cmp byte [ecx + 0x53], 0
jne 0x10043f41
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea eax, [ecx + eax*4]
add eax, 0xffffffec
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x24]
mov ecx, dword [edx + edi + 0x2c]
shr ecx, 1
mov dword [eax + 0xc], ecx
movzx ecx, word [edx + edi + 0x2c]
and ecx, 1
mov word [eax + 2], cx
movzx eax, word [esi]
mov edi, dword [esp + 0x74]
jmp 0x10041c2d
mov al, byte [edx + 2]
jmp 0x10041cd1
mov edx, dword [edx + 0x14]
add edx, 0x1c
jmp 0x10043f7d
add edx, 0x14
mov eax, dword [edx]
cmp dword [eax], 1
mov edi, dword [esp + 0x74]
jle 0x10041cf1
mov dl, 1
mov dword [esp + 0x68], 0
jmp 0x10040df7
mov ecx, dword [esp + 0xc]
test ecx, ecx
cmove ecx, eax
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x130]
call fcn.10048b90
test eax, eax
mov ebx, dword [esp + 0x20]
jne 0x1004149f
mov edx, dword [esp + 0xc]
test edx, edx
je 0x10040979
jmp 0x100414db
cmp ax, 0xfffe
jne 0x10043f0e
mov al, 1
mov dword [esp + 0x48], eax
jmp 0x10040661
mov ecx, ebx
mov edx, 0x4d
push 0
push edi
push eax
call fcn.10036aa0
add esp, 0xc
jmp 0x10040b70
cmp byte [esi + 0x53], 0
mov edi, dword [esp + 0x20]
je 0x10042526
jmp 0x1004276a
test eax, eax
je 0x10044040
mov edx, eax
mov ecx, dword [esp + 0x4c]
call fcn.10139110
mov edi, dword [esp + 0x20]
jmp 0x1004276a
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x20]
jmp 0x10042751
mov ecx, 0x101ddee0
jmp 0x100426e0
mov edx, dword [ecx + 0x38]
and edx, 3
cmp edx, 2
jne 0x10042720
jmp 0x10042722
mov edi, dword [edx + 8]
jns 0x10044081
mov eax, dword [edi + 0x6c]
dec eax
mov ecx, dword [edi]
mov edx, 0x101ddee0
cmp byte [ecx + 0x53], 0
jne 0x10044097
lea edx, [eax + eax*4]
shl edx, 2
add edx, dword [edi + 0x68]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
jmp 0x1004274b
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov dword [esp + 0x6c], eax
jmp 0x10042376
mov ecx, edx
xor edx, edx
call fcn.10144e50
jmp 0x100422f7
mov ebx, dword [esp + 0xc4]
mov ecx, dword [esp + 0x64]
jmp 0x100409c9
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
xor esi, esi
test eax, eax
je 0x10044485
mov ecx, dword [eax + 0x38]
and ecx, 3
cmp ecx, 2
je 0x10044483
mov eax, dword [eax + 0x14]
jmp 0x100440f5
xor ebx, ebx
jmp 0x10042489
mov ecx, dword [ecx + 8]
jns 0x1004418a
mov eax, dword [ecx + 0x6c]
dec eax
mov esi, dword [ecx]
mov edx, 0x101ddee0
cmp byte [esi + 0x53], 0
jne 0x100441a0
lea edx, [eax + eax*4]
shl edx, 2
add edx, dword [ecx + 0x68]
mov eax, dword [edx + 8]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x84]
jmp 0x10042aa7
mov ecx, 0x101ddee0
jmp 0x10042b15
mov edx, dword [esp + 0x1c]
push esi
call fcn.10037c90
add esp, 4
jmp 0x10042b57
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x1c]
sub eax, dword [esp + 0x94]
jge 0x1004429f
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx]
lea edx, [eax + 1]
mov dword [esp + 0x98], edx
add eax, dword [esp + 0x94]
mov dword [ecx], eax
jmp 0x100442bc
mov eax, dword [esp + 0x14]
mov al, byte [eax + 0x2c]
mov byte [esp + 0x2c], al
movzx eax, byte [esp + 0x2c]
cmp dword [esp + 0x28], eax
je 0x10044253
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x64]
add esi, edx
mov ecx, dword [esp + 0x28]
sub eax, ecx
imul eax, eax, 0x58
imul ecx, ecx, 0x58
add ecx, edx
push eax
push ecx
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x14]
mov al, byte [eax + 0x2c]
mov byte [esp + 0x2c], al
mov eax, dword [esp + 0xc]
not eax
and dword [esp + 0xb0], eax
mov eax, dword [esp + 0x10]
not eax
and dword [esp + 0x90], eax
mov cl, byte [esp + 0x2c]
dec cl
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2c], cl
mov byte [eax + 0x2c], cl
dec dword [esp + 0xb8]
jmp 0x10041764
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x98], ecx
mov ebx, dword [esp + 0x94]
add ecx, ebx
mov dword [edx + 0x20], ecx
mov dword [edx + 0x1c], eax
cmp word [esp + 0x94], 0
je 0x10044300
xor ebx, ebx
mov eax, dword [edi + 4]
movsx eax, word [eax + ebx*2]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x98]
add eax, ebx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
push eax
push dword [esp + 0x60]
push dword [esp + 0x58]
call fcn.1003db30
add esp, 0xc
inc ebx
cmp dword [esp + 0x94], ebx
jne 0x100442c9
test esi, esi
je 0x10044359
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
mov edx, 0x1e
push dword [esp + 0x98]
push 0
push dword [esp + 0x94]
call fcn.10036aa0
add esp, 0xc
mov dword [esp + 0x5c], eax
mov eax, dword [ebx]
cmp byte [eax + 0x53], 0
jne 0x10044350
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov edx, dword [esp + 0x94]
mov dword [eax + ecx*4 + 0x10], edx
test esi, esi
jns 0x10044361
jmp 0x100443e4
mov dword [esp + 0x5c], 0
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
mov edx, 0x5d
mov edi, dword [esp + 0x30]
push edi
push dword [esp + 0x98]
push dword [esp + 0xa0]
call fcn.10036aa0
add esp, 0xc
mov ecx, ebx
mov edx, 0x86
push dword [esp + 0x98]
push edi
push dword [esp + 0x94]
call fcn.10036aa0
add esp, 0xc
mov ecx, dword [ebx]
cmp byte [ecx + 0x53], 0
jne 0x100443c6
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov edx, dword [esp + 0x94]
mov dword [ecx + eax*4 + 0x10], edx
test esi, esi
je 0x100443e4
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
test eax, eax
jle 0x100443e4
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x10
cmp word [esp + 0x94], 1
jne 0x10044421
cmp dword [esp + 0x98], 0
je 0x10044449
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x10044449
mov ecx, eax
inc cl
mov edx, dword [esp + 0x18]
mov byte [edx + 0x13], cl
mov ecx, dword [esp + 0x98]
mov dword [edx + eax*4 + 0x94], ecx
jmp 0x10044449
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x94]
cmp dword [eax + 0x1c], ecx
jge 0x10044449
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x94]
mov dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x98]
mov dword [eax + 0x20], ecx
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x5c]
jmp 0x1004266f
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
inc ecx
mov dword [esp + 0x98], ecx
mov dword [eax], ecx
jmp 0x100442c7
mov esi, eax
mov ebx, dword [esp + 0x18]
mov edi, dword [ebx + 0x28]
lea eax, [edi + 1]
mov dword [ebx + 0x28], eax
movzx eax, word [esi + 0x32]
mov ecx, dword [esp + 0x1c]
mov edx, 0x70
push 0
push eax
mov dword [esp + 0x94], edi
push edi
call fcn.10036aa0
add esp, 0xc
mov edi, dword [ebx + 8]
mov ecx, ebx
mov edx, esi
call fcn.10044850
test eax, eax
je 0x100444f5
mov ecx, dword [edi]
cmp byte [ecx + 0x53], 0
je 0x100444e3
cmp dword [ecx + 0x1f8], 0
jne 0x100444f5
dec dword [eax]
jne 0x100444f5
mov ecx, dword [eax + 0xc]
mov edx, eax
call fcn.10139000
jmp 0x100444f5
mov ecx, dword [edi + 0x68]
mov edx, dword [edi + 0x6c]
lea edx, [edx + edx*4]
mov byte [ecx + edx*4 - 0x13], 0xf7
mov dword [ecx + edx*4 - 4], eax
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x50]
jmp 0x100423d0
mov ebx, dword [esp + 0xc]
jmp 0x10041375