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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov eax, dword [ebp + 8]
mov dword [esp + 0x3c], eax
mov eax, dword [0x101d2014]
xor eax, ebp
mov dword [esp + 0x98], eax
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 8]
mov dword [esp + 0x10], eax
xor eax, eax
test edx, edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], eax
je case.0x10071210.143
mov esi, edx
mov bl, byte [esi]
movzx edx, bl
mov eax, ebx
cmp bl, 0x46
jg 0x10071203
add al, 0x78
cmp al, 0x2a
ja case.default.0x100711fc
movzx eax, al
jmp dword [eax*4 + 0x1019b6a0]
add al, 0x9b
cmp al, 0xe
ja case.default.0x10071210
movzx eax, al
jmp dword [eax*4 + 0x1019b7e8]
mov eax, dword [esi + 8]
mov esi, dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x10071680
lea ecx, [eax + 1]
mov ebx, dword [ebp + 8]
lea edx, [eax + eax*4]
xor edi, edi
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
mov dword [ecx + edx*4], 0x73
mov dword [ecx + edx*4 + 4], edi
mov dword [ecx + edx*4 + 8], ebx
mov dword [ecx + edx*4 + 0xc], edi
mov dword [ecx + edx*4 + 0x10], edi
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
jne 0x10071cd5
test eax, eax
js 0x10071569
mov ecx, dword [esp + 0x10]
lea edx, [eax + eax*4]
shl edx, 2
add edx, dword [ecx + 0x68]
push 0
push dword [esp + 0x10]
call fcn.1004e710
add esp, 8
jmp 0x10071cd5
mov ecx, dword [esp + 0x10]
movsx eax, word [esi + 0x20]
mov edi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edi
jle 0x10071702
lea edx, [edi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [edi + edi*4]
mov edi, dword [ebp + 8]
mov dword [edx + ecx*4], 0x4b
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], edi
xor edi, edi
mov dword [edx + ecx*4 + 0xc], edi
mov dword [edx + ecx*4 + 0x10], edi
mov eax, dword [esi + 8]
cmp byte [eax + 1], 0
je 0x10071cd5
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xdc]
xor eax, eax
test ecx, ecx
je 0x10071302
movsx edx, word [esi + 0x20]
mov edi, dword [ecx + 4]
mov esi, 2
cmp dword [ecx + esi*4], edx
je 0x100712fe
add esi, dword [ecx + esi*4 + 4]
cmp esi, edi
jl 0x100712ef
jmp 0x10071302
lea eax, [ecx + esi*4 + 8]
mov edx, dword [esp + 0x10]
mov dword [ecx], 0
mov ecx, dword [edx]
cmp byte [ecx + 0x51], 0
jne 0x10071cd5
mov ecx, dword [edx + 0x68]
mov edx, dword [edx + 0x6c]
lea edx, [edx + edx*4]
mov byte [ecx + edx*4 - 0x13], 0xff
mov dword [ecx + edx*4 - 4], eax
jmp 0x10071cd5
mov ecx, dword [esp + 0xc]
mov ebx, dword [ebp + 8]
mov edx, esi
push ebx
push 0
call fcn.100730e0
add esp, 8
jmp 0x10071cd8
test byte [esi + 7], 1
jne 0x1007270a
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
cmp byte [eax + 0x17], 0
mov dword [esp + 0x2c], ecx
mov cl, byte [ecx + 0x4e]
je 0x100713a0
lea ebx, [esp + 0x60]
mov byte [esp + 0x14], cl
mov edx, esi
mov ecx, ebx
mov word [ebx + 0x14], 2
mov dword [ebx + 4], fcn.100767a0
mov dword [ebx + 8], 0x10076950
mov dword [ebx + 0x18], 0
call fcn.10076970
mov cl, byte [esp + 0x14]
cmp word [ebx + 0x14], 0
jne 0x100722ad
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [esp + 0x20], eax
je 0x10071b13
mov edi, dword [eax]
mov ebx, dword [esi + 8]
movzx eax, cl
mov ecx, dword [esp + 0x2c]
mov edx, ebx
push 0
push eax
mov dword [esp + 0x20], edi
push edi
call fcn.10015a00
add esp, 0xc
test eax, eax
je 0x100726e4
cmp dword [eax + 0x14], 0
mov edi, eax
jne 0x100726e4
mov eax, dword [edi + 4]
bt eax, 0x16
jb 0x100718c8
test eax, 0x280000
je 0x100713ff
test byte [esi + 7], 0x40
jne 0x10071a9e
mov ebx, dword [esp + 0x18]
test ebx, ebx
jle 0x100716c6
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], edi
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x1c], 0
lea ebx, [eax + 4]
cmp edi, 0x1f
ja 0x10071468
mov edx, dword [ebx]
mov word [esp + 0x74], 1
mov dword [esp + 0x64], fcn.100767a0
mov dword [esp + 0x68], 0x10076950
mov dword [esp + 0x14], ecx
mov dword [esp + 0x78], 0
test edx, edx
je 0x10071461
lea ecx, [esp + 0x60]
call fcn.10076970
cmp word [esp + 0x74], 0
je 0x1007148a
mov ecx, dword [esp + 0x14]
bts ecx, edi
cmp dword [esp + 0x1c], 0
jne 0x1007147b
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
and eax, 0x20
jne 0x10071490
inc edi
add ebx, 0x14
cmp dword [esp + 0x18], edi
jne 0x10071422
jmp 0x10071576
mov ecx, dword [esp + 0x14]
jmp 0x10071468
mov dword [esp + 0x14], ecx
mov edx, dword [ebx]
mov ecx, dword [esp + 0xc]
call fcn.1004fb90
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
jmp 0x1007147b
mov ebx, dword [esi + 0x1c]
jmp 0x10071cd8
cmp bl, 0x4d
jne 0x10071882
mov edi, dword [esi + 0x2c]
movzx ebx, word [esi + 0x20]
movsx eax, word [edi + 0x2a]
mov edx, ebx
inc eax
imul eax, dword [esi + 0x1c]
inc eax
test byte [edi + 0x24], 0x20
jne 0x10072715
movsx ecx, dx
add eax, ecx
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x10071afb
lea edx, [esi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov esi, dword [ebp + 8]
mov dword [edx + ecx*4], 0x95
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], esi
xor esi, esi
mov dword [edx + ecx*4 + 0xc], esi
mov dword [edx + ecx*4 + 0x10], esi
test bx, bx
js 0x1007152d
mov ecx, dword [edi + 4]
movzx eax, bx
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 0xd], 0x45
je 0x10072767
mov eax, dword [esp + 0x50]
test eax, eax
je 0x10071554
mov ecx, dword [esp + 0xc]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x10071554
mov esi, dword [esp + 0xc]
mov edx, ecx
inc dl
mov byte [esi + 0x13], dl
mov dword [esi + ecx*4 + 0x98], eax
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x100716a2
mov ebx, dword [esp + 0x3c]
jmp 0x10071cd8
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x6c]
dec eax
jmp 0x1007126a
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10071bf2
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
test ecx, ecx
mov dword [esp + 0x14], ecx
je 0x1007277c
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x2c]
lea edx, [eax + 1]
add eax, ebx
mov dword [esp + 0x24], edx
mov dword [ecx + 0x2c], eax
mov eax, dword [edi + 4]
test al, 0xc0
jne 0x10071ebe
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
push 3
push 0
push dword [esp + 0x2c]
call fcn.10073a80
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
cmp ebx, 2
mov dword [esp + 0x14], ecx
jl 0x100719fa
cmp byte [esi + 4], 0
mov eax, dword [esp + 0x20]
js 0x10071c20
add eax, 4
mov ecx, dword [esp + 0x2c]
mov edx, edi
push dword [eax]
push ebx
call fcn.10073c60
add esp, 8
mov edi, eax
test byte [edi + 4], 0x20
mov eax, dword [esp + 0x1c]
jne 0x10071a0c
movzx eax, byte [esi + 2]
mov esi, edi
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, edi
push eax
push esi
push ebx
mov esi, dword [ebp + 8]
push esi
push dword [esp + 0x34]
call fcn.10073db0
add esp, 0x14
test ebx, ebx
je 0x1007169b
test edi, edi
jne 0x10071cd5
mov ecx, ebx
cmp ebx, 1
jne 0x10071bd6
cmp dword [esp + 0x24], 0
je 0x10071cd5
mov edx, dword [esp + 0xc]
movzx eax, byte [edx + 0x13]
cmp eax, 7
ja 0x10071cd5
mov esi, dword [esp + 0x24]
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov dword [edx + eax*4 + 0x98], esi
jmp 0x10071cd5
xor eax, eax
mov ecx, esi
mov edx, 0x73
push eax
push dword [ebp + 8]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x10071256
mov ebx, esi
jmp 0x10071cd8
mov esi, dword [esp + 0xc]
movzx ecx, byte [esi + 0x13]
cmp ecx, 7
ja 0x10071560
mov edx, ecx
inc dl
mov byte [esi + 0x13], dl
mov dword [esi + ecx*4 + 0x98], eax
jmp 0x10071560
xor eax, eax
cmp dword [esp + 0x20], 0
je 0x10071dbf
mov edx, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0x1c]
sub eax, ebx
jge 0x10071ae7
mov eax, dword [edx + 0x2c]
lea ecx, [eax + 1]
add eax, ebx
mov dword [esp + 0x24], ecx
mov dword [edx + 0x2c], eax
mov dword [esp + 0x14], 0
jmp 0x100715a9
mov edx, 0x4b
push 0
push dword [ebp + 8]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x100712c6
mov eax, ebx
add al, 0xed
cmp al, 0x26
ja case.0x10071210.143
movzx eax, al
jmp dword [eax*4 + 0x1019b74c]
mov dword [esp + 0x14], 0
mov edi, dword [esi + 0xc]
mov al, byte [edi]
cmp al, 0xad
mov ecx, eax
je 0x10071de5
cmp cl, 0x88
mov dword [esp + 0x18], edx
je 0x10072981
cmp cl, 0xae
je 0x1007298b
mov ebx, dword [esp + 0xc]
lea eax, [esp + 0x50]
mov dword [esp + 0x20], edi
mov edx, edi
mov ecx, ebx
push eax
call fcn.100735c0
add esp, 4
mov edx, dword [esi + 0x10]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x4c]
mov ecx, ebx
push eax
call fcn.100735c0
add esp, 4
mov ebx, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
shr ebx, 9
or edi, 0x20
and ebx, 1
push ebx
push edi
push dword [ebp + 8]
push eax
push dword [esp + 0x20]
push dword [esp + 0x2c]
push dword [esi + 0x10]
call fcn.100736d0
add esp, 0x1c
jmp 0x1007152d
mov edi, dword [esp + 0xc]
mov dword [esp + 0x18], edx
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x50]
mov ecx, edi
push eax
call fcn.100735c0
add esp, 4
mov edx, dword [esi + 0x10]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
call fcn.100735c0
add esp, 4
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x10071c07
lea edx, [esi + 1]
mov edi, dword [esp + 0x14]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov esi, dword [ebp + 8]
mov byte [edx + ecx*4], bl
mov word [edx + ecx*4 + 2], 0
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], edi
mov dword [edx + ecx*4 + 0xc], esi
mov dword [edx + ecx*4 + 0x10], 0
mov byte [edx + ecx*4 + 1], 0
jmp 0x1007152d
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
jne 0x100729e8
cmp bl, 0x88
jne 0x10071863
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp eax, 1
jne 0x100727ac
mov ecx, dword [esp + 0xc]
mov edx, esi
call fcn.10073fd0
mov ebx, eax
jmp 0x10071cd8
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x100711e3
jmp case.0x10071210.143
cmp bl, 0x47
je 0x100727d0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10071acd
lea edx, [eax + 1]
mov ebx, dword [ebp + 8]
lea eax, [eax + eax*4]
mov dword [ecx + 0x6c], edx
xor edx, edx
mov ecx, dword [ecx + 0x68]
mov dword [ecx + eax*4], 0x48
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], ebx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x10071cd8
mov ebx, dword [esp + 0xc]
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 8]
test eax, eax
mov dword [esp + 0x14], ecx
jne 0x1007282c
mov edi, dword [esp + 0x20]
test ecx, ecx
mov eax, dword [edi]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x18], eax
lea eax, [eax - 1]
mov dword [esp + 0x1c], eax
mov dword [ebx + 0x38], eax
je 0x10071919
mov esi, dword [edi + 4]
mov eax, dword [ebp + 8]
mov ecx, ebx
mov edx, esi
push eax
call fcn.100711a0
add esp, 4
cmp eax, dword [ebp + 8]
jne 0x10071ded
mov eax, dword [esp + 0x10]
cmp eax, 2
jl 0x100719b1
mov esi, edi
dec eax
add esi, 0x18
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10071999
lea edx, [eax + 1]
mov edi, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov dword [ecx + 0x6c], edx
mov edx, dword [ebp + 8]
mov ecx, dword [ecx + 0x68]
mov dword [ecx + eax*4], 0x33
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], edi
xor edi, edi
mov dword [ecx + eax*4 + 0xc], edi
mov dword [ecx + eax*4 + 0x10], edi
mov ebx, dword [esp + 0xc]
cmp dword [ebx + 8], 0
je 0x1007198d
mov edi, dword [esi]
mov eax, dword [ebp + 8]
mov ecx, ebx
mov edx, edi
push eax
call fcn.100711a0
add esp, 4
cmp eax, dword [ebp + 8]
jne 0x10071e46
mov eax, dword [esp + 0x10]
add esi, 0x14
dec eax
jne 0x1007192c
jmp 0x100719b1
mov edx, 0x33
push 0
push dword [esp + 0x20]
push dword [ebp + 8]
call fcn.1004e590
add esp, 0xc
jmp 0x10071968
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [edx]
cmp byte [eax + 0x51], 0
jne 0x1007284e
mov ecx, dword [edx + 0x6c]
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4 - 0x14]
cmp byte [eax], 0x4d
je 0x10072290
mov ecx, dword [edx + 0xc]
neg esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x10071c6d
mov eax, dword [edx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
jmp 0x10071cd5
mov eax, dword [esp + 0x20]
cmp ebx, 1
je 0x100715ef
jmp 0x10071605
test eax, eax
je 0x10071dd9
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], edi
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x10071ea5
lea ecx, [eax + 1]
lea edx, [eax + eax*4]
xor edi, edi
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
mov byte [ecx + edx*4], 0x51
mov dword [ecx + edx*4 + 0xd], edi
mov dword [ecx + edx*4 + 5], edi
mov dword [ecx + edx*4 + 1], edi
mov dword [ecx + edx*4 + 9], edi
mov dword [ecx + edx*4 + 0x10], edi
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
jne 0x100728fc
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
test eax, eax
js 0x10071db2
mov ecx, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov edx, dword [ecx + 0x68]
cmp byte [edx + eax*4 + 1], 0
jne 0x10071c57
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x10071613
lea eax, [edx + eax*4 + 1]
mov dword [eax + 0xf], ecx
mov byte [eax], 0xfe
jmp 0x10071613
bt eax, 0x13
jb 0x10071ab4
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
cmp byte [eax + 0x20], 0
js 0x100713ff
push dword [edi + 0x20]
push str.unsafe_use_of__s__
push dword [esp + 0x14]
call fcn.1000f470
add esp, 0xc
jmp 0x100713ff
xor eax, eax
mov edx, 0x48
push eax
mov ebx, dword [ebp + 8]
push ebx
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x10071cd8
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x24], ecx
add ecx, ebx
mov dword [edx + 0x20], ecx
mov dword [edx + 0x1c], eax
jmp 0x100716f5
mov edx, 0x95
push 0
push dword [ebp + 8]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x10071514
xor edi, edi
jmp 0x100713b1
mov edi, dword [ebp + 8]
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0xc]
push edi
call fcn.100711a0
add esp, 4
cmp eax, edi
jne 0x100729ef
mov eax, dword [esi + 8]
mov bl, byte [eax]
test bl, bl
je 0x10072278
inc eax
xor ecx, ecx
mov dl, 0x43
mov esi, ecx
movzx ecx, bl
mov dh, 0x42
movzx ecx, byte [ecx + 0x10194380]
shl esi, 8
or ecx, esi
cmp ecx, 0x666c6f60
jle 0x10071b9e
cmp ecx, 0x74657874
je 0x10071b90
cmp ecx, 0x666c6f61
je 0x10071bcb
cmp ecx, 0x7265616c
je 0x10071bcb
mov esi, ecx
mov dh, dl
and esi, 0xffffff
cmp esi, 0x696e74
je 0x10071d70
mov bl, byte [eax]
inc eax
mov dl, dh
test bl, bl
jne 0x10071b47
jmp 0x10071d72
cmp ecx, 0x63686171
jg 0x10071bb3
cmp ecx, 0x626c6f62
jne 0x10071b7a
jmp 0x1007225f
cmp ecx, 0x63686172
je 0x10071b90
cmp ecx, 0x636c6f62
je 0x10071b90
cmp ecx, 0x646f7562
jne 0x10071b7a
mov dh, 0x45
cmp dl, 0x43
je 0x10071b90
mov dh, dl
jmp 0x10071b90
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x1c], ecx
jge 0x10071cd5
mov edx, dword [esp + 0x24]
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x20], edx
jmp 0x10071cd5
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x24], 0
jmp 0x100715d4
mov edx, dword [esp + 0x18]
push dword [ebp + 8]
push dword [esp + 0x18]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x1007152d
add eax, 0x18
jmp 0x100715f2
mov eax, dword [esi + 0x28]
test eax, eax
je 0x100729bc
movsx ecx, word [esi + 0x22]
test ecx, ecx
js 0x100729bc
cmp dword [eax + 0x2c], ecx
jle 0x100729bc
mov eax, dword [eax + 0x28]
shl ecx, 4
mov ebx, dword [eax + ecx + 8]
jmp 0x10071cd8
lea edx, [edx + eax*4]
push 0xfffffffffffffffe
push dword [esp + 0x20]
call fcn.1004e710
add esp, 8
jmp 0x10071613
push esi
call fcn.10078ce0
add esp, 4
jmp 0x10071cd5
mov eax, dword [esi + 0x28]
movsx ecx, word [esi + 0x22]
mov edi, dword [eax + 0x1c]
cmp byte [eax], 0
je 0x10072acc
cmp byte [eax + 1], 0
jne 0x10072b61
test byte [esi + 4], 8
jne 0x1007260d
mov eax, dword [esi + 0x1c]
test eax, eax
js 0x10071cf0
movzx edi, byte [esi + 2]
movsx ebx, word [esi + 0x20]
mov edx, dword [esi + 0x2c]
mov ecx, dword [esp + 0x10]
push dword [ebp + 8]
push ebx
push eax
call fcn.10075b90
add esp, 0xc
test di, di
jne 0x10071eda
cmp dword [esi + 0x2c], 0
je 0x10072676
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x98]
xor ecx, ebp
call fcn.10192ef0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x34]
test eax, eax
js 0x10071cfe
dec eax
jmp 0x10071ca6
movzx edx, word [esi + 0x20]
test dx, dx
js 0x10072ac5
mov edi, dword [esi + 0x2c]
movzx ebx, dx
lea esi, [ebx + ebx*4]
mov ecx, dword [edi + 4]
test byte [edi + 0x24], 0x20
jne 0x10072ad8
movsx ebx, dx
sub ebx, eax
movzx eax, word [ecx + esi*4 + 0x10]
test al, 0x60
jne 0x10072b2d
cmp byte [ecx + esi*4 + 0xd], 0x45
jne 0x10071cd8
mov esi, dword [esp + 0x10]
xor eax, eax
mov edx, 0x4e
mov ecx, esi
push eax
mov edi, dword [ebp + 8]
push edi
push ebx
call fcn.1004e520
add esp, 0xc
xor eax, eax
mov ecx, esi
mov edx, 0x53
push eax
push eax
push edi
call fcn.1004e520
add esp, 0xc
mov ebx, edi
jmp 0x10071cd8
mov dh, 0x44
mov ecx, dword [esp + 0x10]
movzx eax, dh
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x1007227f
lea edx, [esi + 1]
mov ebx, dword [ebp + 8]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4], 0x54
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
jmp 0x10071cd8
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x6c]
dec eax
jmp 0x10071a6e
test byte [edi + 4], 0x20
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], 0
je 0x10071613
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 8]
jmp 0x10071a14
mov cl, byte [edi + 2]
jmp 0x10071747
mov cl, byte [esi + 6]
mov edx, 0x4d
and cl, 0x20
cmp cl, 1
mov ecx, dword [ebx + 8]
adc edx, 0
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x100722c2
lea edi, [esi + 1]
lea esi, [esi + esi*4]
mov dword [ecx + 0x6c], edi
mov ecx, dword [ecx + 0x68]
mov byte [ecx + esi*4], dl
mov edx, dword [ebp + 8]
mov word [ecx + esi*4 + 2], 0
mov dword [ecx + esi*4 + 4], eax
mov dword [ecx + esi*4 + 8], edx
xor edx, edx
mov dword [ecx + esi*4 + 0xc], edx
mov dword [ecx + esi*4 + 0x10], edx
mov byte [ecx + esi*4 + 1], 0
mov edi, dword [esp + 0x20]
jmp 0x10071919
mov cl, byte [edi + 6]
mov dword [esp + 0x20], esi
mov esi, 0x4d
and cl, 0x20
cmp cl, 1
mov ecx, dword [ebx + 8]
adc esi, 0
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jle 0x100722d5
lea edi, [edx + 1]
mov ebx, esi
mov esi, dword [ebp + 8]
lea edx, [edx + edx*4]
mov dword [ecx + 0x6c], edi
mov ecx, dword [ecx + 0x68]
mov byte [ecx + edx*4], bl
mov word [ecx + edx*4 + 2], 0
mov dword [ecx + edx*4 + 4], eax
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 byte [ecx + edx*4 + 1], 0
mov esi, dword [esp + 0x20]
jmp 0x1007198d
xor eax, eax
mov ecx, ebx
mov edx, 0x51
push eax
push eax
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x10071a52
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 4]
mov dl, byte [ecx]
cmp dl, 0xa6
jne 0x10072bb9
and al, 0xc0
mov byte [ecx + 2], al
jmp 0x100715b4
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov ecx, dword [eax]
cmp byte [ecx + 0x51], 0
jne 0x10072bc7
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4 - 0x14]
cmp byte [eax], 0x59
jne 0x10071ccb
mov word [eax + 2], di
jmp 0x10071ccb
mov eax, dword [esp + 0xc]
mov edx, dword [esi + 0x14]
mov edi, 0
mov ecx, dword [eax]
mov ebx, dword [edx]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x44], ecx
dec ecx
mov dword [eax + 0x38], ecx
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov eax, dword [esi + 0xc]
test eax, eax
mov dword [esp + 0x30], eax
jne 0x10072c5c
lea edx, [ebx - 1]
cmp ebx, 2
mov dword [esp + 0x40], edi
jl 0x100720bb
mov eax, dword [esp + 0x2c]
xor esi, esi
mov dword [esp + 0x38], edx
lea edi, [eax + 0x18]
cmp dword [esp + 0x30], 0
mov eax, dword [edi - 0x14]
mov dword [esp + 0x20], esi
jne 0x10072bb0
mov ecx, eax
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x1c], eax
dec eax
mov dword [ebx + 0x38], eax
push 0x10
push eax
mov dword [esp + 0x20], ecx
push ecx
push ebx
call fcn.100755f0
add esp, 0x10
cmp dword [ebx + 8], 0
je 0x10071fc3
mov eax, dword [ebp + 8]
mov esi, dword [edi]
mov dword [esp + 0x14], edi
mov ecx, ebx
mov edi, eax
mov edx, esi
push eax
call fcn.100711a0
add esp, 4
cmp eax, edi
mov edi, dword [esp + 0x14]
jne 0x10072069
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x10072047
lea ecx, [eax + 1]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov ebx, 0
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
mov dword [ecx + eax*4], 0xb
mov dword [ecx + eax*4 + 4], ebx
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], ebx
mov dword [ecx + eax*4 + 0x10], ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
mov eax, dword [ecx + 0x38]
neg edx
add eax, dword [ecx + 0x3c]
js 0x10072038
mov eax, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + edx*4], eax
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
add edi, 0x28
add esi, 2
cmp esi, edx
jl 0x10071f65
jmp 0x100720bb
mov eax, edx
mov edx, esi
push eax
call fcn.10078ce0
add esp, 4
jmp 0x10072019
xor eax, eax
mov ecx, esi
mov edx, 0xb
push eax
push dword [esp + 0x2c]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x10071ffb
mov edi, dword [esp + 0x14]
jmp 0x10071fc3
mov cl, byte [esi + 6]
mov edx, 0x4d
and cl, 0x20
cmp cl, 1
mov ecx, dword [ebx + 8]
adc edx, 0
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x1007233b
lea edi, [esi + 1]
lea esi, [esi + esi*4]
mov dword [ecx + 0x6c], edi
mov ecx, dword [ecx + 0x68]
mov byte [ecx + esi*4], dl
mov edx, dword [ebp + 8]
mov word [ecx + esi*4 + 2], 0
mov dword [ecx + esi*4 + 4], eax
mov dword [ecx + esi*4 + 8], edx
xor edx, edx
mov dword [ecx + esi*4 + 0xc], edx
mov dword [ecx + esi*4 + 0x10], edx
mov byte [ecx + esi*4 + 1], 0
jmp 0x10072060
test bl, 1
je 0x10072c34
mov ebx, dword [esp + 0xc]
cmp dword [ebx + 8], 0
je 0x100720f1
mov ecx, dword [esp + 0x2c]
lea eax, [edx + edx*4]
mov edi, dword [ebp + 8]
mov esi, dword [ecx + eax*4 + 4]
mov ecx, ebx
mov edx, esi
push edi
call fcn.100711a0
add esp, 4
cmp eax, edi
jne 0x100722ea
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x10072c92
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x44]
mov eax, dword [ecx]
cmp byte [eax + 0x51], 0
jne 0x10072ca0
mov eax, dword [ecx + 0x68]
mov ecx, dword [ecx + 0x6c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4 - 0x14]
cmp byte [eax], 0x4d
jne 0x1007213f
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x6c]
test eax, eax
jle 0x1007213f
mov ecx, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x68]
mov word [ecx + eax*4 - 0x12], 1
mov edx, dword [esp + 0x10]
neg esi
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x10072c4e
mov eax, dword [edx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
jmp 0x1007152d
mov edi, edx
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x50]
push eax
call fcn.100735c0
add esp, 4
mov ecx, dword [esp + 0x10]
mov edx, edi
push 0
push dword [ebp + 8]
push eax
call fcn.1004e520
jmp 0x10071c18
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, 0x48
mov ebx, dword [edi + 0x38]
lea eax, [ebx - 1]
mov dword [esp + 0x14], eax
lea eax, [ebx - 2]
mov dword [esp + 0x18], eax
mov dword [edi + 0x38], eax
xor eax, eax
push eax
mov eax, dword [ebp + 8]
push eax
xor eax, eax
push eax
call fcn.1004e520
add esp, 0xc
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, edi
mov edi, ebx
push dword [esp + 0x18]
push dword [esp + 0x18]
call fcn.100743d0
add esp, 8
mov ecx, esi
xor eax, eax
mov edx, 0x45
push eax
push dword [ebp + 8]
push 1
call fcn.1004e520
add esp, 0xc
mov ecx, dword [esi + 0xc]
mov eax, ebx
neg eax
mov edx, dword [ecx + 0x38]
add edx, dword [ecx + 0x3c]
js 0x10072cd1
mov edx, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + eax*4], edx
xor eax, eax
mov ecx, esi
mov edx, 0x52
push eax
push eax
mov ebx, dword [ebp + 8]
push ebx
call fcn.1004e520
add esp, 0xc
mov ecx, dword [esi + 0xc]
xor eax, eax
inc eax
sub eax, edi
mov edx, dword [ecx + 0x38]
add edx, dword [ecx + 0x3c]
js 0x10072ce1
mov edx, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + eax*4], edx
jmp 0x10071cd8
mov ecx, dword [esp + 0xc]
xor eax, eax
mov edx, esi
push eax
push eax
mov ebx, dword [ebp + 8]
push ebx
call fcn.10075370
jmp 0x10071adf
mov dh, 0x41
cmp dl, 0x43
je 0x10071b90
cmp dl, 0x45
je 0x10071b90
jmp 0x10071bd2
mov dh, 0x43
jmp 0x10071d72
mov edx, 0x54
push 0
push eax
mov ebx, dword [ebp + 8]
push ebx
jmp 0x10071ada
mov eax, dword [edx + 0x6c]
test eax, eax
jle 0x100719db
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 1
jmp 0x100719db
mov ecx, dword [esp + 0xc]
mov edx, esi
push 0xffffffffffffffff
call fcn.10073870
add esp, 4
jmp 0x1007186e
push 0
push dword [ebp + 8]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x10071e3d
mov edx, esi
push 0
push dword [ebp + 8]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x10071e9c
mov cl, byte [esi + 6]
mov edx, 0x4d
and cl, 0x20
cmp cl, 1
mov ecx, dword [ebx + 8]
adc edx, 0
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x1007234e
lea edi, [esi + 1]
lea esi, [esi + esi*4]
mov dword [ecx + 0x6c], edi
mov ecx, dword [ecx + 0x68]
mov byte [ecx + esi*4], dl
mov edx, dword [ebp + 8]
mov word [ecx + esi*4 + 2], 0
mov dword [ecx + esi*4 + 4], eax
mov dword [ecx + esi*4 + 8], edx
xor edx, edx
mov dword [ecx + esi*4 + 0xc], edx
mov dword [ecx + esi*4 + 0x10], edx
mov byte [ecx + esi*4 + 1], 0
jmp 0x100720f1
push 0
push dword [ebp + 8]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x10072060
push 0
push dword [ebp + 8]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x100720f1
mov esi, dword [esi + 0xc]
test byte [esi + 5], 0x10
jne 0x10072361
mov ecx, dword [esi + 8]
xor eax, eax
cmp byte [ecx + 4], 0
mov ecx, dword [esp + 0x10]
sete al
mov edx, 0x45
push 0
mov ebx, dword [ebp + 8]
push ebx
push eax
call fcn.1004e520
jmp 0x10071adf
mov esi, dword [esi + 8]
add esi, 2
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x10]
mov edx, esi
and ebx, 0x3fffffff
lea edi, [ebx - 1]
mov ecx, dword [eax]
push edi
call fcn.10073380
add esp, 4
shr edi, 0x1f
mov esi, eax
mov edx, 0x4a
lea eax, [ebx + edi - 1]
mov edi, dword [esp + 0x10]
sar eax, 1
mov ecx, edi
push 0
mov ebx, dword [ebp + 8]
push ebx
push eax
call fcn.1004e520
add esp, 0xc
mov ecx, edi
mov edx, eax
push 0xfffffffffffffff9
push esi
call fcn.1000f710
jmp 0x10071340
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
push ebx
push 0
call fcn.100732d0
jmp 0x10071340
xor edx, edx
cmp bl, 0x2d
mov dword [esp + 0x14], 0x80
sete dl
or edx, 0x34
jmp 0x10071738
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov edx, 0x15
mov al, byte [edi + 0x17]
mov ecx, ebx
mov byte [esp + 0x18], al
xor eax, eax
push eax
push eax
push dword [esi + 0x1c]
call fcn.1004e520
add esp, 0xc
mov byte [edi + 0x17], 0
mov ecx, edi
mov dword [esp + 0x14], eax
mov edx, dword [esi + 0xc]
push dword [ebp + 8]
call fcn.100711a0
add esp, 4
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x18]
mov byte [edi + 0x17], al
mov ecx, dword [ebx]
mov eax, dword [ebx + 0x6c]
cmp byte [ecx + 0x51], 0
mov ecx, 0x101d4a28
jne 0x10072491
mov edx, dword [esp + 0x14]
lea ecx, [eax - 1]
mov esi, dword [esp + 0x10]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [esi + 0x68]
cmp dword [esp + 0x14], 0
mov dword [ecx + 8], eax
jns 0x100724a7
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x6c]
dec eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, 0x101d4a28
cmp byte [ecx + 0x51], 0
jne 0x100724c9
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
lea eax, [eax + eax*4]
shl eax, 2
add eax, dword [ecx + 0x68]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0xc], ecx
jmp 0x1007152d
mov edx, dword [esi + 0xc]
cmp dword [edx + 0x1c], 0
jne 0x100724ed
mov ecx, dword [esp + 0xc]
call fcn.10073fd0
mov ecx, dword [esi + 0xc]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x100726c9
mov ecx, dword [esi + 0xc]
mov dl, byte [ecx]
cmp dl, 0xad
jne 0x10072505
mov dl, byte [ecx + 2]
cmp dl, 0x88
je 0x100726a8
cmp dl, 0xae
jne 0x100726d8
add ecx, 0x14
jmp 0x100726ae
mov ecx, dword [esp + 0xc]
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x50]
push eax
call fcn.100735c0
add esp, 4
lea ecx, [esi + 0x10]
mov edx, dword [ecx]
test byte [edx + 5], 0x10
lea ecx, [edx + 0xc]
jne 0x10072536
mov ecx, dword [edx + 8]
xor ebx, ebx
mov edx, 0x57
mov cl, byte [ecx + 4]
test cl, cl
mov byte [esp + 0x14], cl
mov cl, byte [esi + 2]
mov esi, dword [esp + 0x10]
setne bl
mov byte [esp + 0x18], cl
mov ecx, esi
push ebx
push dword [ebp + 8]
push eax
call fcn.1004e520
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
jne 0x1007152d
cmp byte [esp + 0x14], 0
lea eax, [eax + eax*4]
sete cl
cmp byte [esp + 0x18], 0x2d
sete dl
xor dl, cl
movzx ecx, dl
mov edx, dword [esp + 0x10]
mov edx, dword [edx + 0x68]
mov byte [edx + eax*4 + 1], 0xfd
mov dword [edx + eax*4 + 0x10], ecx
jmp 0x1007152d
mov edx, dword [esi + 0xc]
mov al, byte [edx]
cmp al, 0x98
je 0x10072696
cmp al, 0x96
je 0x100726f8
mov edi, dword [esp + 0xc]
lea edx, [esp + 0x60]
lea eax, [esp + 0x50]
mov byte [edx], 0x98
mov dword [edx + 4], 0x4400
mov dword [edx + 8], 0
mov ecx, edi
push eax
call fcn.100735c0
add esp, 4
mov edx, dword [esi + 0xc]
mov ebx, eax
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
call fcn.100735c0
add esp, 4
mov ecx, dword [esp + 0x10]
mov edx, 0x6a
push dword [ebp + 8]
push ebx
jmp 0x10072183
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0xc]
push dword [ebp + 8]
call fcn.100711a0
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x100726a5
movzx ecx, word [esi + 0x20]
test cx, cx
js 0x100726dd
mov eax, dword [eax + 4]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*4 + 0xd]
mov al, byte [esi]
cmp al, 0x42
jl 0x10071cd8
mov edi, dword [esp + 0x10]
movzx eax, al
mov edx, 0x5a
lea esi, [eax + eax + 0x10198c76]
mov ecx, edi
push 0
push 1
push ebx
call fcn.1004e520
add esp, 0xc
mov ecx, edi
mov edx, eax
push 0xffffffffffffffff
jmp 0x100723e6
cmp byte [esi + 1], 0x45
jne 0x10071cd5
mov ecx, dword [esp + 0x10]
xor eax, eax
mov edx, 0x53
push eax
push eax
mov ebx, dword [ebp + 8]
push ebx
jmp 0x10072386
mov ecx, dword [esp + 0xc]
mov ebx, dword [ebp + 8]
push ebx
push 1
jmp 0x1007133b
inc esi
jmp 0x1007263f
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x100726c9
push ecx
push eax
push str._d_columns_assigned__d_values
push dword [esp + 0x18]
call fcn.1000f470
add esp, 0x10
mov eax, dword [esi + 0xc]
movsx ebx, word [esi + 0x20]
add ebx, dword [eax + 0x1c]
jmp 0x10071cd8
xor ecx, ecx
inc ecx
jmp 0x100726b2
mov al, 0x44
jmp 0x10072649
push ebx
push str.unknown_function:__s__
push dword [esp + 0x14]
call fcn.1000f470
jmp 0x10071c18
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
push ebx
push 1
jmp 0x100723fe
mov eax, dword [esi + 0x2c]
mov ebx, dword [eax + 0x38]
jmp 0x10071cd8
test bx, bx
mov edx, ebx
js 0x100714d7
mov dword [esp + 0x14], edi
mov edi, dword [edi + 4]
movzx esi, word [edi + 0x10]
and esi, 0x20
test bx, bx
je 0x10072909
xor ecx, ecx
movsx edx, bx
inc ecx
test edx, edx
cmovg ecx, edx
add edi, 0x24
xor edx, edx
mov dword [esp + 0x18], ecx
movzx esi, si
shr esi, 5
xor esi, 1
add edx, esi
movzx esi, word [edi]
add edi, 0x14
and esi, 0x20
dec ecx
jne 0x1007274b
jmp 0x10072913
mov ecx, dword [esp + 0x10]
xor eax, eax
mov edx, 0x53
push eax
push eax
push dword [ebp + 8]
jmp 0x10072184
cmp ebx, 1
jne 0x10072fbf
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x13]
test al, al
jne 0x10072858
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x2c]
inc ecx
mov dword [esp + 0x24], ecx
mov dword [eax + 0x2c], ecx
mov edi, dword [esp + 0x28]
jmp 0x100716f5
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x24], 0
jne 0x1007152d
push 1
push eax
push str.sub_select_returns__d_columns___expected__d
push dword [esp + 0x18]
call fcn.1000f470
jmp 0x10072979
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x78], 0
je 0x100729c9
mov al, byte [esi + 1]
cmp al, 2
jne 0x100727f8
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x74]
test eax, eax
cmove eax, ecx
mov byte [eax + 0x15], 1
mov al, byte [esi + 1]
mov esi, dword [esi + 8]
cmp al, 4
jne 0x10072959
mov ebx, dword [esp + 0x10]
xor edi, edi
mov edx, 0x44
mov ecx, ebx
push edi
push 4
push edi
call fcn.1004e520
add esp, 0xc
mov ecx, ebx
mov edx, eax
push edi
push esi
call fcn.1000f710
jmp 0x10072c25
mov edi, dword [esp + 0x20]
dec eax
cmp eax, 4
jbe switch.0x10072936
mov edx, dword [edi + 4]
mov ecx, dword [esp + 0xc]
push dword [ebp + 8]
call fcn.100711a0
jmp 0x100722ba
mov eax, 0x101d4a28
jmp 0x100719d2
mov ecx, dword [esp + 0xc]
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x98]
mov dword [esp + 0x24], eax
jmp 0x100727a3
mov ebx, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x18], edx
mov edx, 0x45
mov ecx, ebx
push edi
mov eax, dword [ebp + 8]
push eax
push 1
call fcn.1004e520
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x50]
push eax
call fcn.100735c0
add esp, 4
mov edx, dword [esp + 0x18]
mov ecx, ebx
push edi
push edi
push eax
call fcn.1004e520
add esp, 0xc
mov esi, eax
mov ecx, ebx
mov edx, 0x45
push edi
push dword [ebp + 8]
push edi
call fcn.1004e520
add esp, 0xc
mov edx, dword [ebx]
mov eax, dword [ebx + 0x6c]
mov ecx, 0x101d4a28
cmp byte [edx + 0x51], 0
jne 0x100728f4
lea ecx, [eax - 1]
test esi, esi
mov edx, dword [esp + 0x10]
cmovns ecx, esi
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
jmp 0x1007152d
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
jmp 0x10071613
mov dword [esp + 0x18], 0
xor edx, edx
test si, si
je 0x1007292d
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
sub ecx, edx
add cx, word [edi + 0x2c]
mov edx, ecx
jmp 0x100714d7
mov edi, dword [esp + 0x14]
jmp 0x100714d7
jmp dword [eax*4 + 0x1019b824]
mov eax, dword [edi + 0x18]
cmp byte [eax], 0xa4
jne 0x10072bd1
mov edx, dword [eax + 0x1c]
mov ecx, dword [edi + 4]
call fcn.100774d0
jmp 0x10072a98
mov ecx, dword [esp + 0xc]
xor ebx, ebx
xor edi, edi
mov edx, 0x713
movsx eax, al
inc ebx
cmp dword [ecx + 0x78], edi
cmove edx, ebx
push edi
push edi
push esi
push eax
call fcn.100759f0
add esp, 0x10
jmp 0x1007152d
mov ecx, dword [edi + 0x14]
mov edx, edi
add ecx, 0x1c
jmp 0x10072990
mov edx, edi
lea ecx, [edi + 0x14]
mov ecx, dword [ecx]
mov edi, edx
cmp dword [ecx], 2
jl 0x1007175d
mov ecx, dword [esi + 0x10]
cmp al, 0xad
mov dword [esp + 0x1c], ecx
jne 0x100729ab
mov al, byte [edi + 2]
cmp al, 0x88
je 0x10072a0b
cmp al, 0xae
jne 0x10072a6e
lea eax, [edi + 0x14]
jmp 0x10072a11
push dword [esi + 8]
push str.misuse_of_aggregate:__s__
jmp 0x100726ea
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x12], 0
jne 0x100727de
push str.RAISE___may_only_be_used_within_a_trigger_program
push dword [esp + 0x10]
call fcn.1000f470
add esp, 8
xor ebx, ebx
jmp 0x10071cd8
mov ecx, dword [esp + 0x10]
mov edx, 0x4e
push 0
push dword [ebp + 8]
push eax
call fcn.1004e520
add esp, 0xc
jmp 0x10071b35
mov eax, dword [edi + 0x14]
add eax, 0x1c
mov eax, dword [eax]
mov eax, dword [eax]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x2c], eax
mov ecx, dword [ebx + 0x38]
mov edx, ecx
mov dword [esp + 0x24], ecx
dec ecx
mov dword [ebx + 0x38], ecx
cmp dword [ebx + 0x24], 0
jne 0x1007152d
mov eax, dword [esi + 4]
mov ebx, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
mov al, byte [eax]
cmp al, 0xad
mov ecx, eax
jne 0x10072a50
mov ecx, dword [esp + 0x1c]
mov cl, byte [ecx + 2]
cmp cl, 0x88
je 0x10072bfa
cmp cl, 0xae
jne 0x10072c2d
mov ecx, dword [esp + 0x1c]
add ecx, 0x14
jmp 0x10072c04
xor eax, eax
inc eax
jmp 0x10072a15
mov edx, dword [edi + 4]
mov ecx, dword [esp + 0xc]
push 0xffffffffffffffff
push dword [edi + 0x18]
call fcn.10077430
jmp 0x10072a95
mov edx, dword [edi + 4]
xor ecx, ecx
push 0xffffffffffffffff
push dword [edi + 0x18]
call fcn.10076d90
add esp, 8
mov ecx, dword [esp + 0x14]
jmp 0x1007237a
lea edx, [esp + 0x60]
xorps xmm0, xmm0
movaps xmmword [edx], xmm0
movaps xmmword [edx + 0x10], xmm0
movaps xmmword [edx + 0x20], xmm0
mov dword [edx + 0x30], 0
mov byte [edx], 0x9a
mov dword [edx + 0x14], edi
jmp 0x1007283d
not eax
jmp 0x1007186e
lea eax, [ecx + ecx*4]
mov ebx, dword [edi + eax*4 + 0xc]
jmp 0x10071cd8
mov dword [esp + 0x1c], ecx
movzx ecx, word [ecx + 0x10]
and ecx, 0x20
test dx, dx
mov dword [esp + 0x14], ecx
je 0x10072caa
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], 0
add ecx, 0x24
mov dword [esp + 0x18], ecx
movzx ecx, word [esp + 0x14]
shr ecx, 5
xor ecx, 1
add dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18]
add dword [esp + 0x18], 0x14
movzx ecx, word [ecx]
and ecx, 0x20
dec ebx
mov dword [esp + 0x14], ecx
jne 0x10072b03
jmp 0x10072cb2
lea edx, [ecx + esi*4]
bt eax, 8
jb 0x10072be2
mov edi, ecx
lea esi, [ecx + esi*4 + 0x10]
mov ecx, eax
or ecx, 0x100
test al, al
mov word [esi], cx
js 0x10072faa
and ecx, 0xfe7f
mov word [esi], cx
jmp 0x10071cd8
lea ebx, [ecx + ecx*4]
mov edx, 0x59
mov ecx, dword [edi + ebx*4]
movsx esi, word [edi + ebx*4 + 0x12]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x10]
push dword [ebp + 8]
push esi
push dword [eax + 8]
call fcn.1004e520
add esp, 0xc
movzx eax, word [edi + ebx*4 + 0x10]
test ax, ax
js 0x10071cd5
mov ecx, dword [esp + 0xc]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 4]
cmp byte [ecx + eax*4 + 0xd], 0x45
je 0x10072680
jmp 0x10071cd5
mov dword [esp + 0x70], eax
jmp 0x10071f79
cmp dl, 0xa4
jne 0x100715b4
jmp 0x10071ed0
mov eax, 0x101d4a28
jmp 0x10071efa
mov ecx, dword [esp + 0x14]
xor eax, eax
mov edx, 0x48
push eax
jmp 0x10072381
push dword [edx]
push str.generated_column_loop_on___s_
push dword [esp + 0x14]
call fcn.1000f470
add esp, 0xc
jmp 0x100729e8
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
mov edx, dword [esp + 0x2c]
cmp edx, dword [ecx]
sete cl
test cl, cl
jne 0x10072d3b
push str.row_value_misused
push dword [esp + 0x10]
call fcn.1000f470
add esp, 8
jmp 0x1007152d
cmp dword [esp + 0x2c], 1
jmp 0x10072c0c
mov ecx, dword [esp + 0x10]
xor eax, eax
mov edx, 0x48
push eax
push dword [ebp + 8]
push eax
call fcn.1004e520
jmp 0x10072359
push esi
call fcn.10078ce0
add esp, 4
jmp 0x1007152d
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
xor eax, eax
mov ecx, esi
push eax
push eax
call fcn.10078d60
add esp, 8
cmp byte [esi + 0x51], 0
mov edi, eax
je 0x10072cf1
test edi, edi
je 0x1007152d
mov ecx, dword [esp + 0x34]
mov edx, edi
call fcn.1004bd70
jmp 0x1007152d
mov ecx, dword [esp + 0x34]
call fcn.1004bd70
jmp 0x100720fd
mov eax, 0x101d4a28
jmp 0x1007211e
mov dword [esp + 0x20], 0
cmp word [esp + 0x14], 0
je 0x10072ccb
sub edx, dword [esp + 0x20]
add dx, word [edi + 0x2c]
mov ecx, dword [esp + 0x1c]
jmp 0x10071d21
mov edx, dword [esp + 0x20]
jmp 0x10072cc2
mov edx, esi
push eax
call fcn.10078ce0
add esp, 4
jmp 0x1007220e
mov edx, esi
push eax
call fcn.10078ce0
add esp, 4
jmp 0x10071cd8
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x50]
mov esi, edi
mov edx, edi
push eax
call fcn.10075530
add esp, 4
test edi, edi
je 0x10072f73
mov ecx, edi
mov edx, dword [ecx + 4]
test edx, 0x41000
je 0x10072f5f
bt edx, 0x12
jb 0x10072d2a
add ecx, 0xc
jmp 0x10072d30
mov ecx, dword [ecx + 0x14]
add ecx, 4
mov ecx, dword [ecx]
test ecx, ecx
jne 0x10072d10
jmp 0x10072f73
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
movzx edx, cl
cmp cl, 0x37
mov ecx, 0x38
cmovne ecx, edx
mov dword [esp + 0x48], edx
mov edx, 0x36
cmp cl, 0x39
cmovne edx, ecx
cmp byte [edi], 0x88
mov dword [esp + 0x30], edx
jne 0x10072d8a
mov ecx, dword [esp + 0xc]
mov edx, edi
call fcn.10073fd0
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
mov al, byte [eax]
shr dword [esp + 0x28], 9
cmp al, 0x88
jne 0x10072da4
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
call fcn.10073fd0
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x14]
and dword [esp + 0x28], 1
neg dword [esp + 0x2c]
mov dword [esp + 0x18], 0
or al, 0x20
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0xc]
xor eax, eax
mov edx, edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x5c]
push eax
push dword [esp + 0x48]
mov esi, dword [esp + 0x24]
push esi
call fcn.10076690
add esp, 0x10
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x4c]
push esi
call fcn.10076690
add esp, 0x10
mov dword [esp + 0x34], eax
movzx eax, byte [esp + 0x14]
movzx esi, byte [esp + 0x30]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0xc]
push dword [esp + 0x28]
push eax
push dword [ebp + 8]
push dword [esp + 0x40]
push dword [esp + 0x48]
mov dword [esp + 0x48], esi
push esi
push dword [esp + 0x6c]
call fcn.100736d0
add esp, 0x1c
mov eax, dword [esp + 0x60]
test eax, eax
je 0x10072e6b
mov ecx, dword [esp + 0xc]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x10072e6b
mov esi, dword [esp + 0xc]
mov edx, ecx
inc dl
mov byte [esi + 0x13], dl
mov dword [esi + ecx*4 + 0x98], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
add eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x10072ea0
mov ecx, dword [esp + 0xc]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x10072ea0
mov esi, dword [esp + 0xc]
mov edx, ecx
inc dl
mov byte [esi + 0x13], dl
mov dword [esi + ecx*4 + 0x98], eax
cmp dword [esp + 0x38], 0xffffffff
je 0x10072ed4
cmp byte [esp + 0x30], 0x34
je 0x10072ed8
cmp byte [esp + 0x30], 0x35
jne 0x10072f0e
mov ecx, dword [esp + 0x10]
mov edx, 0x14
push 0
push ebx
push dword [ebp + 8]
call fcn.1004e520
add esp, 0xc
mov eax, dword [esp + 0x14]
mov cl, 0x35
jmp 0x10072ef5
xor eax, eax
jmp 0x10072f01
mov ecx, dword [esp + 0x10]
mov edx, 0x12
push 0
push ebx
push dword [ebp + 8]
call fcn.1004e520
add esp, 0xc
mov eax, dword [esp + 0x14]
mov cl, 0x34
or al, 8
mov dword [esp + 0x14], eax
mov al, 1
mov dword [esp + 0x30], ecx
inc dword [esp + 0x18]
test al, al
je 0x10072f36
jmp 0x10072dbf
mov ecx, dword [esp + 0x10]
xor eax, eax
mov edx, 0x3a
push eax
push ebx
push eax
call fcn.1004e520
add esp, 0xc
cmp dword [esp + 0x38], 0xfffffffe
mov ecx, dword [esp + 0x34]
mov al, 1
cmove ecx, dword [esp + 0x48]
jmp 0x10072efd
mov eax, dword [esp + 0x10]
neg dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x10072f9d
mov eax, dword [esp + 0x10]
mov ecx, dword [ecx + 0x40]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x6c]
mov dword [ecx + edx*4], eax
jmp 0x1007152d
mov bl, byte [ecx]
and edx, 0xffffefff
mov byte [ecx + 2], bl
mov byte [ecx], 0xad
mov dword [ecx + 0x1c], eax
mov dword [ecx + 4], edx
mov ebx, dword [esp + 0x24]
lea ecx, [esp + 0x60]
xorps xmm0, xmm0
xor eax, eax
movaps xmmword [ecx], xmm0
mov dword [ecx + 0x30], eax
movaps xmmword [ecx + 0x20], xmm0
movaps xmmword [ecx + 0x10], xmm0
mov byte [ecx], 0x35
mov dword [ecx + 0xc], edi
mov dword [esp + 0x50], eax
jmp 0x10071f48
mov edx, dword [esp + 0x10]
push dword [esp + 0x24]
jmp 0x10072c4f
mov ecx, dword [esp + 0xc]
push ebx
call fcn.10073030
add esp, 4
movzx ecx, word [esi]
jmp 0x10072b53
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
jmp 0x100716d3