Function at 0x10033d60
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xa4
mov eax, dword [ebp + 8]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x101f1014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x60], ecx
mov edi, dword [ecx + 8]
xor eax, eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], eax
test edx, edx
je case.0x10034109.21
mov esi, edx
mov eax, dword [ebp - 0x60]
cmp dword [eax + 0x48], 0
jne 0x10034eec
mov bl, byte [esi]
movzx edx, bl
cmp edx, 0x65
jle 0x10033f1b
lea eax, [edx - 0x66]
cmp eax, 0x4f
ja case.0x10034109.21
jmp dword [eax*4 + 0x101b90ec]
test byte [esi + 4], 0x20
jne 0x100350c2
mov eax, dword [esi + 0x1c]
test eax, eax
js 0x100347d5
movzx edi, byte [esi + 2]
movsx ebx, word [esi + 0x20]
mov edx, dword [esi + 0x2c]
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ecx + 8]
mov esi, dword [ebp - 0x5c]
push esi
push ebx
push eax
call fcn.10035ca0
add esp, 0xc
test di, di
jne 0x10035125
mov ebx, esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10157a00
mov eax, ebx
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret
movsx eax, word [esi + 0x20]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jle 0x1003435c
lea edx, [ecx + 1]
mov dword [edi + 0x6c], edx
mov edx, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x4e
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x5c]
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 [esi + 8]
cmp byte [eax + 1], 0
je 0x10033eab
mov ebx, edi
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0xe8]
xor eax, eax
test ecx, ecx
je 0x10033e8b
movsx edx, word [esi + 0x20]
mov edi, dword [ecx + 4]
mov esi, 2
cmp dword [ecx + esi*4], edx
je 0x10033e85
add esi, dword [ecx + esi*4 + 4]
cmp esi, edi
jl 0x10033e76
jmp 0x10033e8b
lea eax, [ecx + esi*4]
add eax, 8
mov dword [ecx], 0
mov ecx, dword [ebx]
cmp byte [ecx + 0x57], 0
jne 0x10033eab
mov ecx, dword [ebx + 0x68]
mov edx, dword [ebx + 0x6c]
lea edx, [edx + edx*4]
mov byte [ecx + edx*4 - 0x13], 0xff
mov dword [ecx + edx*4 - 4], eax
mov ebx, dword [ebp - 0x5c]
jmp 0x10033e01
mov eax, dword [esi + 8]
mov dword [ebp - 0x60], eax
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x10034429
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4], 0x75
mov esi, edi
xor edi, edi
mov dword [ecx + edx*4 + 4], edi
mov ebx, dword [ebp - 0x5c]
mov dword [ecx + edx*4 + 8], ebx
mov dword [ecx + edx*4 + 0xc], edi
mov dword [ecx + edx*4 + 0x10], edi
mov edi, esi
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x10033eab
test eax, eax
js 0x1003432d
lea edx, [eax + eax*4]
shl edx, 2
add edx, dword [edi + 0x68]
mov ecx, edi
push 0
push dword [ebp - 0x60]
call fcn.10035fc0
add esp, 8
jmp 0x10033eab
cmp edx, 0x4d
jne 0x100340fd
mov ebx, dword [esi + 0x2c]
movsx eax, word [ebx + 0x22]
inc eax
imul eax, dword [esi + 0x1c]
movsx esi, word [esi + 0x20]
inc eax
mov ecx, esi
test esi, esi
js 0x10033f49
mov edx, dword [ebx + 0x1c]
mov ecx, esi
and edx, 0x20
jne 0x1003535b
movsx ecx, cx
add eax, ecx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jle 0x10034920
lea edx, [ecx + 1]
mov dword [edi + 0x6c], edx
mov edx, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x9d
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x5c]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
test si, si
js 0x10033f98
mov eax, dword [ebx + 4]
shl esi, 4
cmp byte [eax + esi + 8], 0x45
je 0x100351de
mov eax, dword [ebp - 0x54]
test eax, eax
jne 0x10034336
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x10033eab
mov esi, dword [ebp - 0x60]
movzx ecx, byte [esi + 0x13]
cmp ecx, 7
ja 0x10033eab
mov edx, ecx
inc dl
mov byte [esi + 0x13], dl
mov dword [esi + ecx*4 + 0xa0], eax
jmp 0x10033eab
test byte [esi + 7], 1
jne 0x100351b1
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax]
mov dword [ebp - 0x80], ecx
mov cl, byte [ecx + 0x54]
cmp byte [eax + 0x17], 0
jne 0x10034444
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [ebp - 0x78], eax
je 0x1003478c
mov ebx, dword [eax]
mov edx, dword [esi + 8]
movzx eax, cl
mov ecx, dword [ebp - 0x80]
push 0
push eax
push ebx
call fcn.10146b40
add esp, 0xc
test eax, eax
je 0x1003519e
mov ecx, eax
cmp dword [eax + 0x14], 0
jne 0x1003519e
mov edx, ebx
mov eax, dword [ecx + 4]
bt eax, 0x16
mov ebx, dword [ebp - 0x78]
jb 0x100344f0
test eax, 0x280000
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x68], edx
je 0x10034052
test byte [esi + 7], 0x40
jne 0x10034741
test edx, edx
jle 0x100343ed
mov dword [ebp - 0x6c], edi
add ebx, 8
mov dword [ebp - 0x74], 0
xor edi, edi
mov dword [ebp - 0x7c], 0
cmp edi, 0x1f
ja 0x100340ae
mov edx, dword [ebx]
mov word [ebp - 0x34], 1
mov dword [ebp - 0x44], 0x10076920
mov dword [ebp - 0x40], 0x10076a30
mov dword [ebp - 0x30], 0
test edx, edx
je 0x100340a5
lea ecx, [ebp - 0x48]
call fcn.1014fbd0
cmp word [ebp - 0x34], 0
je 0x100340ae
mov eax, dword [ebp - 0x74]
bts eax, edi
mov dword [ebp - 0x74], eax
mov edx, dword [ebp - 0x64]
test byte [edx + 4], 0x20
je 0x100340bd
cmp dword [ebp - 0x7c], 0
je 0x100340cb
inc edi
add ebx, 0x14
cmp dword [ebp - 0x68], edi
jne 0x10034070
jmp 0x1003422b
mov edx, dword [ebx]
mov ecx, dword [ebp - 0x60]
call fcn.1002f7f0
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x7c], eax
jmp 0x100340bd
mov ecx, dword [ebp - 0x60]
mov edx, esi
mov ebx, dword [ebp - 0x5c]
push ebx
push 0
call fcn.100361b0
add esp, 8
jmp 0x10033e01
mov ebx, dword [esi + 0x1c]
jmp 0x10033e01
lea eax, [edx - 0x13]
cmp eax, 0x26
ja case.default.0x10034109
jmp dword [eax*4 + 0x101b9050]
mov dword [ebp - 0x70], 0
mov al, 1
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x78], 0
mov ebx, dword [esi + 0xc]
mov al, byte [ebx]
mov ecx, eax
cmp al, 0xb0
jne 0x10034131
mov cl, byte [ebx + 2]
mov dword [ebp - 0x68], ebx
cmp cl, 0x8a
mov dword [ebp - 0x64], edx
mov ebx, edi
je 0x10035390
movzx ecx, cl
cmp ecx, 0xb1
je 0x100353ae
lea eax, [ebp - 0x54]
mov edi, dword [ebp - 0x60]
mov ecx, edi
mov edx, dword [ebp - 0x68]
push eax
call fcn.100418d0
add esp, 4
mov dword [ebp - 0x7c], eax
mov edx, dword [esi + 0x10]
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
call fcn.100418d0
add esp, 4
mov dword [ebp - 0x74], eax
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x10034cd1
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x47
mov dword [ecx + eax*4 + 4], 1
mov edx, dword [ebp - 0x5c]
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 [esi + 4]
shr eax, 0xa
and eax, 1
mov edi, dword [ebx + 0x6c]
add edi, 2
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x68]
push eax
push dword [ebp - 0x78]
push edi
push dword [ebp - 0x74]
mov edi, dword [ebp - 0x7c]
push edi
push dword [ebp - 0x64]
push dword [esi + 0x10]
call fcn.10041bb0
add esp, 0x1c
cmp byte [ebp - 0x70], 0
jne 0x1003539b
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x10034cec
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x5c
mov dword [ecx + eax*4 + 4], edi
mov edx, dword [ebp - 0x5c]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [ebp - 0x74]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x10033f98
mov ebx, dword [ebp - 0x78]
test ebx, ebx
je 0x10034911
cmp dword [ebp - 0x74], 0
mov edi, dword [ebp - 0x6c]
je 0x10035324
mov ecx, dword [ebp - 0x60]
mov eax, dword [ecx + 0x2c]
lea ebx, [eax + 1]
mov dword [ebp - 0x70], ebx
add eax, dword [ebp - 0x68]
mov dword [ecx + 0x2c], eax
mov ebx, dword [ebp - 0x78]
mov eax, 0xc0
and eax, dword [edx + 4]
jne 0x100351bc
mov ecx, dword [ebp - 0x60]
mov edx, ebx
push 3
push 0
push dword [ebp - 0x70]
call fcn.10033b80
add esp, 0xc
mov eax, dword [ebp - 0x68]
cmp eax, 2
jl 0x10034496
test byte [esi + 5], 1
mov edx, dword [ebp - 0x64]
jne 0x10034cff
add ebx, 8
mov eax, dword [ebx]
xor ecx, ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x14], ecx
test eax, eax
je 0x100342ad
cmp byte [eax], 0xa7
je 0x100345be
mov ebx, edx
mov edx, ebx
test byte [edx + 4], 0x20
mov dword [ebp - 0x64], edx
jne 0x100346cc
movzx eax, byte [esi + 2]
mov ecx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x74]
mov edx, edi
push eax
push dword [ebp - 0x64]
mov esi, dword [ebp - 0x68]
push esi
mov ebx, dword [ebp - 0x5c]
push ebx
push dword [ebp - 0x70]
call fcn.10036360
add esp, 0x14
test esi, esi
je 0x10033e01
test edi, edi
jne 0x10033eab
mov ecx, dword [ebp - 0x68]
cmp ecx, 1
jne 0x10034c2d
cmp dword [ebp - 0x70], 0
je 0x10033eab
mov edx, dword [ebp - 0x60]
movzx eax, byte [edx + 0x13]
cmp eax, 7
ja 0x10033eab
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov ecx, dword [ebp - 0x70]
mov dword [edx + eax*4 + 0xa0], ecx
jmp 0x10033eab
mov eax, dword [edi + 0x6c]
dec eax
jmp 0x10033f01
mov ecx, dword [ebp - 0x60]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x10033fa3
mov edx, ecx
inc dl
mov esi, dword [ebp - 0x60]
mov byte [esi + 0x13], dl
mov dword [esi + ecx*4 + 0xa0], eax
jmp 0x10033fa3
mov ecx, edi
mov edx, 0x4e
push 0
push dword [ebp - 0x5c]
push eax
call fcn.10021190
add esp, 0xc
jmp 0x10033e50
mov dword [ebp - 0x64], edx
mov edx, dword [esi + 0xc]
lea eax, [ebp - 0x54]
mov dword [ebp - 0x6c], edi
mov edi, dword [ebp - 0x60]
mov ecx, edi
push eax
call fcn.100418d0
add esp, 4
mov dword [ebp - 0x68], eax
mov edx, dword [esi + 0x10]
lea eax, [ebp - 0x58]
mov ecx, edi
mov esi, dword [ebp - 0x6c]
push eax
call fcn.100418d0
add esp, 4
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x10034c47
lea edx, [ecx + 1]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov byte [edx + ecx*4], bl
mov word [edx + ecx*4 + 2], 0
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x68]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [ebp - 0x5c]
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], 0
mov byte [edx + ecx*4 + 1], 0
jmp 0x10033f98
mov dword [ebp - 0x7c], 0
test ebx, ebx
je 0x10034a77
mov edx, dword [ebp - 0x60]
mov eax, dword [edx + 0x1c]
sub eax, dword [ebp - 0x68]
jge 0x10034965
mov eax, dword [edx + 0x2c]
lea ecx, [eax + 1]
mov dword [ebp - 0x70], ecx
add eax, dword [ebp - 0x68]
mov dword [edx + 0x2c], eax
mov dword [ebp - 0x74], 0
mov edx, dword [ebp - 0x64]
jmp 0x10034258
xor eax, eax
mov ecx, edi
mov edx, 0x75
push eax
push dword [ebp - 0x5c]
push eax
call fcn.10021190
add esp, 0xc
jmp 0x10033ef1
mov dword [ebp - 0x6c], edi
lea edi, [ebp - 0x48]
mov word [edi + 0x14], 2
mov dword [edi + 4], 0x10076920
mov dword [edi + 8], 0x10076a30
mov dword [edi + 0x18], 0
mov ebx, ecx
mov ecx, edi
mov edx, esi
call fcn.1014fbd0
mov ecx, ebx
cmp word [edi + 0x14], 0
mov edi, dword [ebp - 0x6c]
je 0x10033ff0
mov ecx, dword [ebp - 0x60]
mov edx, esi
push 0xffffffffffffffff
call fcn.100419e0
add esp, 4
mov ebx, eax
jmp 0x10033e01
cmp eax, 1
mov edx, dword [ebp - 0x64]
je 0x10034293
jmp 0x100342b1
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
jne 0x100359e1
cmp bl, 0x8a
jne 0x100344d2
test byte [esi + 5], 0x10
je 0x100344d2
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp eax, 1
jne 0x1003543f
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10157a00
mov ecx, dword [ebp - 0x60]
mov edx, esi
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.1004aef0
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x60]
mov edi, dword [ecx + 8]
test eax, eax
jne 0x10035464
mov esi, dword [ebx]
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0x64], eax
dec eax
mov dword [ebp - 0x68], eax
mov dword [ecx + 0x38], eax
mov edx, dword [ebx + 8]
push dword [ebp - 0x5c]
call fcn.10020f70
add esp, 4
cmp esi, 2
jl 0x10034578
dec esi
add ebx, 0x1c
mov dword [ebp - 0x74], edi
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x10034d07
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x33
mov edi, dword [ebp - 0x5c]
mov dword [ecx + eax*4 + 4], edi
mov edx, dword [ebp - 0x68]
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
mov edx, dword [ebx]
mov ecx, dword [ebp - 0x60]
push edi
call fcn.10020f70
add esp, 4
add ebx, 0x14
dec esi
mov edi, dword [ebp - 0x74]
jne 0x1003452a
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x10035484
mov eax, dword [edi + 0x68]
mov ecx, dword [edi + 0x6c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
mov esi, dword [ebp - 0x64]
cmp byte [eax], 0x50
je 0x10034dd8
mov ecx, dword [edi + 0xc]
neg esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x10034c60
mov eax, dword [edi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
jmp 0x10033eab
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x100342ad
cmp byte [eax + 0x2b], 1
jne 0x100342ad
mov dword [ebp - 0x6c], edi
add eax, 0x34
mov edx, dword [ebp - 0x80]
mov ecx, dword [eax]
lea eax, [ecx + 0x18]
cmp dword [ecx], edx
jne 0x100345dc
mov edi, dword [ecx + 8]
mov eax, dword [edi]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x10035499
mov eax, dword [ebp - 0x64]
mov ebx, dword [eax + 0x20]
call dword [section..00cfg]
lea eax, [ebp - 0x14]
lea edx, [ebp - 0x48]
push eax
push edx
push ebx
push dword [ebp - 0x68]
push edi
call ecx
add esp, 0x14
test eax, eax
je 0x10035499
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x10035a78
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
and edi, 0x3fffffff
add edi, 0x29
cmp dword [ebp - 0x80], 0
je 0x10035a82
mov ecx, dword [ebp - 0x80]
mov edx, edi
push 0
call fcn.10158fd0
add esp, 4
mov ebx, eax
test eax, eax
je 0x10035499
push edi
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x64]
movsd xmm0, qword [eax + 0x20]
movsd qword [ebx + 0x20], xmm0
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movups xmmword [ebx], xmm0
movups xmmword [ebx + 0x10], xmm1
lea ecx, [ebx + 0x28]
mov dword [ebp - 0x78], ecx
mov dword [ebx + 0x20], ecx
mov edi, dword [eax + 0x20]
test edi, edi
je 0x10035b89
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
inc eax
push eax
push edi
push dword [ebp - 0x78]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x48]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x14]
mov dword [ebx + 8], eax
or byte [ebx + 4], 0x10
jmp 0x1003549c
cmp dword [ebp - 0x7c], 0
je 0x10034a8f
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x10034d24
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea edx, [eax + eax*4]
mov byte [ecx + edx*4], 0x55
xorps xmm0, xmm0
movups xmmword [ecx + edx*4 + 1], xmm0
mov dword [ecx + edx*4 + 0x10], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x100342be
test eax, eax
js 0x10034cc8
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 1], 0
jne 0x10034c92
mov edx, dword [ebp - 0x7c]
test edx, edx
je 0x100342be
lea eax, [ecx + eax*4]
inc eax
mov dword [eax + 0xf], edx
mov byte [eax], 0xfe
jmp 0x100342be
bt eax, 0x13
jb 0x10034756
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
test byte [eax + 0x20], 0x80
jne 0x10034052
push esi
push str.unsafe_use_of__T__
push dword [ebp - 0x60]
call fcn.10046a40
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x64]
add esp, 0xc
jmp 0x10034052
xor eax, eax
mov ecx, dword [ebp - 0x60]
mov edx, esi
push eax
push eax
mov ebx, dword [ebp - 0x5c]
push ebx
call fcn.1003a740
add esp, 0xc
jmp 0x10033e01
xor ebx, ebx
jmp 0x10034000
cmp edx, 0x47
je 0x100354c7
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x100348a7
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x4b
xor edx, edx
mov dword [ecx + eax*4 + 4], edx
mov ebx, dword [ebp - 0x5c]
mov dword [ecx + eax*4 + 8], ebx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x10033e01
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 0x34]
test eax, eax
jns 0x10034984
mov dword [ebp - 0x6c], edi
movzx edi, word [esi + 0x20]
test di, di
js 0x100355ce
movzx ecx, di
mov edx, dword [esi + 0x2c]
mov esi, dword [edx + 4]
shl ecx, 4
mov dword [ebp - 0x64], edx
test byte [edx + 0x1c], 0x20
jne 0x100355d5
movzx edx, word [esi + ecx + 0xe]
movsx ebx, di
sub ebx, eax
movzx edx, dx
test dl, 0x60
jne 0x10035606
cmp byte [esi + ecx + 8], 0x45
jne 0x10033e01
xor eax, eax
mov esi, dword [ebp - 0x6c]
mov ecx, esi
mov edx, 0x51
push eax
mov edi, dword [ebp - 0x5c]
push edi
push ebx
call fcn.10030110
add esp, 0xc
mov ecx, esi
mov edx, 0x57
xor eax, eax
push eax
push eax
push edi
call fcn.10030110
add esp, 0xc
mov ebx, edi
jmp 0x10033e01
mov eax, dword [esi + 0x28]
movsx ebx, word [esi + 0x22]
cmp dword [eax + 0x18], ebx
jle 0x100355c0
cmp byte [eax], 0
je 0x10034c8a
cmp byte [eax + 1], 0
jne 0x10034d44
cmp dword [esi + 0x2c], 0
jne case.0x10033dbb.167
movsx eax, word [esi + 0x20]
mov ecx, edi
mov edx, 0x5e
mov ebx, dword [ebp - 0x5c]
push ebx
push eax
push dword [esi + 0x1c]
jmp 0x10034fd8
xor eax, eax
mov ecx, edi
mov edx, 0x4b
push eax
mov ebx, dword [ebp - 0x5c]
push ebx
push eax
call fcn.10021190
jmp 0x10034784
mov dword [ebp - 0x64], edx
mov edx, dword [esi + 0xc]
lea eax, [ebp - 0x54]
mov ecx, dword [ebp - 0x60]
push eax
call fcn.100418d0
add esp, 4
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jle 0x10034dc2
lea edx, [ecx + 1]
mov dword [edi + 0x6c], edx
mov edx, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
mov byte [edx + ecx*4], bl
mov word [edx + ecx*4 + 2], 0
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x5c]
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 0x100343e3
mov dword [ebp - 0x70], 0
mov edi, dword [ebp - 0x6c]
jmp 0x1003427a
mov ecx, edi
mov edx, 0x9d
push 0
push dword [ebp - 0x5c]
push eax
call fcn.10021190
add esp, 0xc
jmp 0x10033f82
mov eax, dword [esi + 0x28]
test eax, eax
je 0x1003548e
movsx ebx, word [esi + 0x22]
test ebx, ebx
js 0x1003548e
cmp dword [eax + 0x24], ebx
jle 0x1003548e
add ebx, dword [eax + 0xc]
add ebx, dword [eax + 0x18]
jmp 0x10033e01
mov dword [ebp - 0x74], eax
mov eax, dword [edx + 0x20]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x70]
add ecx, eax
mov dword [edx + 0x20], ecx
mov eax, dword [ebp - 0x74]
mov dword [edx + 0x1c], eax
jmp 0x1003441a
dec eax
jmp 0x10033dd7
mov edx, dword [esi + 0xc]
mov ecx, dword [ebp - 0x60]
push dword [ebp - 0x5c]
call fcn.10020f70
add esp, 4
mov eax, dword [esi + 8]
mov bl, byte [eax]
test bl, bl
je 0x10034dd1
inc eax
xor ecx, ecx
mov dl, 0x43
mov esi, ecx
shl esi, 8
movzx ecx, bl
movzx ecx, byte [ecx + 0x101b1828]
or ecx, esi
mov dh, 0x42
cmp ecx, 0x74657873
jle 0x100349d2
cmp ecx, 0x74657874
jne 0x100349ee
jmp 0x10034a2e
cmp ecx, 0x63686172
je 0x10034a2e
cmp ecx, 0x626c6f62
je 0x100354a4
cmp ecx, 0x636c6f62
je 0x10034a2e
cmp ecx, 0x7265616c
setne dh
cmp ecx, 0x666c6f61
setne bl
and bl, dh
cmp ecx, 0x646f7562
setne dh
test dh, bl
jne 0x10034a18
cmp dl, 0x43
je 0x100354c0
mov esi, ecx
and esi, 0xffffff
mov dh, dl
cmp esi, 0x696e74
je 0x10034d3d
mov bl, byte [eax]
inc eax
mov dl, dh
test bl, bl
jne 0x100349ad
movsx eax, dh
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jle 0x10034e73
lea edx, [ecx + 1]
mov dword [edi + 0x6c], edx
mov edx, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x58
mov ebx, dword [ebp - 0x5c]
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 0x10033e01
mov dword [ebp - 0x70], 0
test byte [ecx + 4], 0x20
mov dword [ebp - 0x74], 0
je 0x100342be
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 8]
mov dword [ebp - 0x7c], eax
jmp 0x100346d6
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax]
mov dword [ebp - 0x84], ecx
mov ecx, dword [eax + 0x38]
mov edx, dword [esi + 0x14]
mov ebx, dword [edx]
mov dword [ebp - 0x68], ecx
dec ecx
mov dword [ebp - 0x70], ecx
mov dword [eax + 0x38], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x80], 0
mov eax, 0
mov dword [ebp - 0x7c], ecx
test ecx, ecx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x78], ebx
jne 0x10035a13
mov dword [ebp - 0x74], eax
lea eax, [ebx - 1]
cmp ebx, 2
jl 0x10034bbd
lea esi, [edx + 0x1c]
xor ecx, ecx
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x90], ecx
mov eax, dword [esi - 0x14]
cmp dword [ebp - 0x7c], 0
jne 0x10035a6d
mov ecx, eax
mov edi, dword [ebp - 0x60]
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x88], eax
dec eax
mov dword [edi + 0x38], eax
push 0x10
push eax
mov dword [ebp - 0x80], ecx
push ecx
push edi
call fcn.10041490
add esp, 0x10
mov edx, dword [esi]
mov ecx, edi
push dword [ebp - 0x5c]
call fcn.10020f70
add esp, 4
mov edi, dword [ebp - 0x6c]
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x10034e86
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 9
xor ebx, ebx
mov dword [ecx + eax*4 + 4], ebx
mov edx, dword [ebp - 0x70]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], ebx
mov dword [ecx + eax*4 + 0x10], ebx
mov ecx, dword [edi + 0xc]
mov ebx, dword [ebp - 0x88]
neg ebx
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
mov edx, dword [ebp - 0x64]
js 0x10034bad
mov eax, dword [edi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + ebx*4], eax
mov ecx, dword [ebp - 0x90]
add ecx, 2
add esi, 0x28
mov eax, dword [ebp - 0x8c]
cmp ecx, eax
jl 0x10034af7
jmp 0x10034bbd
mov edx, edi
push ebx
call fcn.100329e0
mov edx, dword [ebp - 0x64]
add esp, 4
jmp 0x10034b91
test byte [ebp - 0x78], 1
je 0x100359e8
lea eax, [eax + eax*4]
mov edx, dword [edx + eax*4 + 8]
mov ecx, dword [ebp - 0x60]
push dword [ebp - 0x5c]
call fcn.10020f70
add esp, 4
mov edx, dword [ebp - 0x74]
test edx, edx
jne 0x10035a53
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
mov esi, dword [ebp - 0x68]
jne 0x10035a63
mov eax, dword [edi + 0x68]
mov ecx, dword [edi + 0x6c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
cmp byte [eax], 0x50
je 0x10034df5
mov ecx, dword [edi + 0xc]
neg esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x10035a03
mov eax, dword [edi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
jmp 0x10033f98
mov eax, dword [ebp - 0x60]
cmp dword [eax + 0x1c], ecx
jge 0x10033eab
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0x70]
mov dword [eax + 0x20], ecx
jmp 0x10033eab
mov ecx, esi
mov edx, dword [ebp - 0x64]
push dword [ebp - 0x5c]
push dword [ebp - 0x68]
push eax
call fcn.10021190
add esp, 0xc
jmp 0x10033f98
mov edx, edi
push esi
call fcn.100329e0
add esp, 4
jmp 0x10033eab
test byte [esi + 5], 2
je 0x10034fba
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x10033d94
jmp case.0x10034109.21
add ebx, dword [eax + 0xc]
jmp 0x10033e01
lea edx, [ecx + eax*4]
mov ecx, edi
push 0xfffffffffffffffe
push dword [ebp - 0x7c]
call fcn.10035fc0
add esp, 8
jmp 0x100342be
mov edx, dword [esi + 0xc]
movzx eax, byte [edx]
cmp eax, 0x9b
jne 0x10035ab8
mov ecx, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x5c]
push ebx
push 1
jmp 0x100340e8
mov eax, dword [edi + 0x6c]
dec eax
jmp 0x10034716
mov ecx, ebx
mov edx, 0x47
push 0
push dword [ebp - 0x5c]
push 1
call fcn.10021190
add esp, 0xc
jmp 0x100341b4
mov ecx, ebx
mov edx, 0x5c
push dword [ebp - 0x74]
push dword [ebp - 0x5c]
push edi
jmp 0x10034c53
add ebx, 0x1c
jmp 0x10034296
mov ecx, edi
mov edx, 0x33
push 0
push dword [ebp - 0x68]
mov edi, dword [ebp - 0x5c]
push edi
call fcn.10021190
add esp, 0xc
jmp 0x10034561
xor eax, eax
mov ecx, edi
mov edx, 0x55
push eax
push eax
push eax
call fcn.10021190
add esp, 0xc
jmp 0x10034702
mov dh, 0x44
jmp 0x10034a3b
mov ecx, edi
mov edi, dword [eax + 0x14]
shl ebx, 4
lea edx, [edi + ebx]
mov esi, dword [edx]
movsx edx, word [edi + ebx + 0xe]
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x6c], ecx
mov edx, 0x5e
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push dword [eax + 8]
call fcn.10030110
add esp, 0xc
test esi, esi
je 0x10033eab
movzx eax, word [edi + ebx + 0xc]
test ax, ax
js 0x10033eab
mov ecx, dword [esi + 4]
shl eax, 4
cmp byte [ecx + eax + 8], 0x45
jne 0x10033eab
xor eax, eax
mov ecx, dword [ebp - 0x6c]
mov edx, 0x57
push eax
push eax
mov ebx, dword [ebp - 0x5c]
jmp 0x10034fd7
mov edx, dword [esi + 8]
mov ecx, edi
mov ebx, dword [ebp - 0x5c]
push ebx
push 0
call fcn.101591f0
jmp 0x100340ed
mov ecx, edi
mov edx, dword [ebp - 0x64]
push 0
push dword [ebp - 0x5c]
jmp 0x10034c52
mov dh, 0x43
jmp 0x10034a3b
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x1003459f
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 1
jmp 0x1003459f
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x10034c0e
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 1
jmp 0x10034c0e
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
and ebx, 0x3fffffff
mov eax, edi
mov dword [ebp - 0x6c], edi
lea edi, [ebx - 1]
mov ecx, dword [eax]
mov edx, esi
push edi
call fcn.101593f0
add esp, 4
mov esi, eax
shr edi, 0x1f
lea eax, [ebx + edi]
dec eax
sar eax, 1
mov edi, dword [ebp - 0x6c]
mov ecx, edi
mov edx, 0x4d
push 0
mov ebx, dword [ebp - 0x5c]
push ebx
push eax
call fcn.10030110
add esp, 0xc
mov ecx, edi
mov edx, eax
push 0xfffffffffffffffa
push esi
call fcn.1003a6c0
jmp 0x100340ed
mov ecx, edi
mov edx, 0x58
push 0
push eax
mov ebx, dword [ebp - 0x5c]
push ebx
jmp 0x100348b6
mov ecx, edi
mov edx, 9
xor eax, eax
push eax
push dword [ebp - 0x70]
push eax
call fcn.10021190
add esp, 0xc
jmp 0x10034b72
mov esi, dword [esi + 0xc]
test byte [esi + 5], 0x20
jne 0x10034ea1
mov ecx, dword [esi + 8]
xor eax, eax
cmp byte [ecx + 4], 0
sete al
mov ecx, edi
mov edx, 0x47
push 0
mov ebx, dword [ebp - 0x5c]
push ebx
push eax
jmp 0x10034fd8
xor edx, edx
cmp bl, 0x2d
sete dl
or edx, 0x34
mov dword [ebp - 0x78], 0x80
mov al, 1
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], 0
jmp 0x10034123
test byte [esi + 6], 0x80
jne 0x10033da1
mov ecx, dword [ebp - 0x60]
mov edx, esi
push dword [ebp - 0x5c]
call fcn.10170220
add esp, 4
test eax, eax
js 0x10033da1
jmp 0x1003448f
mov dword [ebp - 0x6c], edi
mov eax, dword [ebp - 0x60]
mov al, byte [eax + 0x17]
mov byte [ebp - 0x64], al
mov eax, dword [esi + 0x28]
test eax, eax
je 0x10035061
cmp byte [eax], 0
je 0x1003518f
cmp byte [eax + 1], 0
je 0x10035061
mov ecx, dword [eax + 0x14]
movsx edx, word [esi + 0x22]
shl edx, 4
movsx esi, word [ecx + edx + 0xe]
mov ecx, dword [ebp - 0x6c]
mov edx, 0x5e
push dword [ebp - 0x5c]
push esi
push dword [eax + 8]
call fcn.10030110
jmp 0x10034c58
mov edi, dword [esi + 0xc]
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x10034f7a
mov cl, byte [edi + 2]
mov edx, dword [ebp - 0x60]
cmp byte [edx + 0x1a], cl
jbe 0x10034f8f
mov ebx, dword [ebp - 0x60]
mov ecx, ebx
mov edx, edi
call fcn.1004aef0
mov dword [edi + 0x1c], eax
mov cl, byte [ebx + 0x1a]
mov byte [edi + 2], cl
mov edx, dword [edi]
cmp dl, 0xb0
movzx ecx, cl
cmovne ecx, edx
cmp cl, 0x8a
je 0x10035159
movzx ecx, cl
cmp ecx, 0xb1
jne 0x1003518a
lea ecx, [edi + 0x14]
jmp 0x1003515f
mov edx, dword [esi + 0xc]
mov ecx, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x5c]
push ebx
call fcn.10020f70
add esp, 4
xor eax, eax
mov ecx, edi
mov edx, 0xb3
push eax
push eax
push ebx
call fcn.10030110
jmp 0x10034784
mov edx, dword [esi + 0xc]
lea eax, [ebp - 0x54]
mov ecx, dword [ebp - 0x60]
push eax
call fcn.100418d0
add esp, 4
lea ecx, [esi + 0x10]
mov edx, dword [ecx]
lea ecx, [edx + 0xc]
test byte [edx + 5], 0x20
jne 0x10034ff7
mov ecx, dword [edx + 8]
mov cl, byte [ecx + 4]
xor ebx, ebx
mov byte [ebp - 0x64], cl
test cl, cl
setne bl
mov cl, byte [esi + 2]
mov byte [ebp - 0x68], cl
mov esi, edi
mov ecx, edi
mov edx, 0x5b
push ebx
push dword [ebp - 0x5c]
push eax
call fcn.10030110
add esp, 0xc
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x10033f98
cmp byte [ebp - 0x64], 0
sete cl
cmp byte [ebp - 0x68], 0x2d
sete dl
xor dl, cl
movzx ecx, dl
mov edx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov byte [edx + eax*4 + 1], 0xfd
mov dword [edx + eax*4 + 0x10], ecx
jmp 0x10033f98
mov edi, dword [ebp - 0x6c]
mov ecx, edi
mov edx, 0x14
push dword [ebp - 0x5c]
push 0
push dword [esi + 0x1c]
call fcn.10030110
add esp, 0xc
mov dword [ebp - 0x68], eax
mov ebx, dword [ebp - 0x60]
mov byte [ebx + 0x17], 0
mov edx, dword [esi + 0xc]
mov ecx, ebx
push dword [ebp - 0x5c]
call fcn.10020f70
add esp, 4
mov al, byte [ebp - 0x64]
mov byte [ebx + 0x17], al
mov edx, dword [edi]
mov eax, dword [edi + 0x6c]
mov ecx, 0x101f4350
cmp byte [edx + 0x57], 0
jne 0x100350ba
mov ecx, dword [ebp - 0x68]
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [ebp - 0x6c]
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
jmp 0x10033f98
mov edx, dword [esi + 0xc]
mov ecx, dword [ebp - 0x60]
push dword [ebp - 0x5c]
call fcn.10033d60
add esp, 4
mov ebx, eax
movsx ecx, word [esi + 0x20]
mov al, 0x44
test ecx, ecx
js 0x100350fa
mov edx, dword [esi + 0x2c]
cmp word [edx + 0x22], cx
jle 0x100350fa
mov eax, dword [edx + 4]
shl ecx, 4
mov al, byte [eax + ecx + 8]
cmp al, 0x42
jl 0x10033e01
movzx eax, al
lea esi, [eax + eax]
add esi, 0x101b6502
mov ecx, edi
mov edx, 0x60
push 0
push 1
push ebx
call fcn.10030110
add esp, 0xc
mov ecx, edi
mov edx, eax
push 0xffffffffffffffff
jmp 0x10034e68
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
mov eax, 0x101f4350
cmp byte [edx + 0x57], 0
jne 0x10035147
mov eax, dword [ecx + 0x68]
mov ecx, dword [ecx + 0x6c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
cmp byte [eax], 0x5e
jne 0x10033eab
mov word [eax + 2], di
jmp 0x10033eab
mov ecx, dword [edi + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x1c]
cmp edx, ecx
je 0x1003517f
push ecx
push edx
push str._d_columns_assigned__d_values
push dword [ebp - 0x60]
call fcn.10046a40
add esp, 0x10
mov eax, dword [edi + 0x1c]
movsx ebx, word [esi + 0x20]
add ebx, eax
jmp 0x10033e01
xor ecx, ecx
inc ecx
jmp 0x10035163
movsx ecx, word [esi + 0x22]
add ecx, dword [eax + 0xc]
mov dword [ebp - 0x5c], ecx
jmp 0x10033f98
push esi
push str.unknown_function:__T__
push dword [ebp - 0x60]
call fcn.10046a40
jmp 0x10034c58
mov eax, dword [esi + 0x2c]
mov ebx, dword [eax + 0x38]
jmp 0x10033e01
mov ecx, dword [ebx + 8]
movzx edx, byte [ecx]
cmp edx, 0xa9
je 0x100351d6
cmp edx, 0xa7
jne 0x10034266
mov byte [ecx + 2], al
jmp 0x10034266
xor eax, eax
mov ecx, edi
mov edx, 0x57
push eax
push eax
push dword [ebp - 0x5c]
jmp 0x10034f5b
mov ebx, edi
mov edi, dword [ebp - 0x60]
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x64], eax
lea ecx, [eax - 1]
mov dword [ebp - 0x68], ecx
add eax, 0xfffffffe
mov dword [ebp - 0x74], eax
mov dword [edi + 0x38], eax
mov ecx, ebx
mov edx, 0x4b
xor eax, eax
push eax
push dword [ebp - 0x5c]
xor eax, eax
push eax
call fcn.10030110
add esp, 0xc
mov ecx, edi
mov edx, esi
push dword [ebp - 0x74]
push dword [ebp - 0x68]
call fcn.10063250
add esp, 8
mov ecx, ebx
mov edx, 0x47
xor eax, eax
push eax
push dword [ebp - 0x5c]
push 1
call fcn.10030110
add esp, 0xc
mov esi, ebx
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebp - 0x64]
mov ebx, eax
neg eax
mov edx, dword [ecx + 0x38]
add edx, dword [ecx + 0x3c]
js 0x100353ea
mov edx, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + eax*4], edx
xor eax, eax
mov edi, esi
mov ecx, esi
mov edx, 0x56
push eax
push eax
push dword [ebp - 0x5c]
call fcn.10030110
add esp, 0xc
mov ecx, dword [esi + 0xc]
xor eax, eax
inc eax
sub eax, ebx
mov edx, dword [ecx + 0x38]
add edx, dword [ecx + 0x3c]
js 0x100353fa
mov edx, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + eax*4], edx
jmp 0x10033eab
xor eax, eax
mov ecx, edi
mov dword [ebp - 0x64], edx
mov edx, 0x47
push eax
mov ebx, dword [ebp - 0x5c]
push ebx
push 1
call fcn.10030110
add esp, 0xc
mov edx, dword [esi + 0xc]
lea eax, [ebp - 0x54]
mov ecx, dword [ebp - 0x60]
push eax
call fcn.100418d0
add esp, 4
mov ecx, edi
mov edx, dword [ebp - 0x64]
xor esi, esi
push esi
push esi
xor esi, esi
push eax
call fcn.10030110
add esp, 0xc
mov dword [ebp - 0x64], eax
mov ecx, edi
mov edx, 0x47
push esi
push ebx
push esi
call fcn.10030110
add esp, 0xc
mov edx, dword [edi]
mov eax, dword [edi + 0x6c]
mov ecx, 0x101f4350
cmp byte [edx + 0x57], 0
jne 0x100350ba
mov ebx, edi
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [edi + 0x68]
jmp 0x100350ba
cmp dword [ebp - 0x68], 1
jne 0x10035c89
mov eax, dword [ebp - 0x60]
mov al, byte [eax + 0x13]
test al, al
jne 0x10035402
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0x2c]
inc ecx
mov dword [ebp - 0x70], ecx
mov dword [eax + 0x2c], ecx
mov dword [ebp - 0x74], 0
mov edi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x64]
jmp 0x10034255
mov dword [ebp - 0x6c], edi
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x68], ecx
test si, si
je 0x1003541c
mov ecx, dword [ebp - 0x68]
lea edi, [ecx + 0xe]
xor ecx, ecx
mov dword [ebp - 0x64], esi
movzx edx, word [edi]
bt edx, 5
sbb cx, 0xffff
add edi, 0x10
dec dword [ebp - 0x64]
jne 0x10035378
jmp 0x1003541e
mov ecx, dword [ebp - 0x68]
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
jmp 0x100353b4
xor eax, eax
mov ecx, ebx
mov edx, 0x47
push eax
push dword [ebp - 0x5c]
push eax
jmp 0x10034f5b
mov ecx, dword [ebp - 0x68]
add ecx, 0x14
mov ecx, dword [ecx]
cmp dword [ecx], 2
jl 0x10034151
cmp al, 0xb0
jne 0x100353c9
mov eax, dword [ebp - 0x68]
mov al, byte [eax + 2]
cmp al, 0x8a
je 0x1003551f
movzx eax, al
cmp eax, 0xb1
jne 0x10035590
mov eax, dword [ebp - 0x68]
add eax, 0x14
jmp 0x10035528
mov edx, esi
push eax
call fcn.100329e0
add esp, 4
jmp 0x1003526d
mov edx, esi
push eax
jmp 0x10034c63
dec al
mov ecx, dword [ebp - 0x60]
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0xa0]
mov dword [ebp - 0x70], eax
jmp 0x10035349
xor ecx, ecx
mov edx, esi
shl edx, 4
mov edi, dword [ebp - 0x68]
test byte [edi + edx + 0xe], 0x20
je 0x10035437
mov edx, esi
sub edx, ecx
add dx, word [ebx + 0x24]
mov ecx, edx
mov edi, dword [ebp - 0x6c]
jmp 0x10033f49
mov ecx, dword [ebp - 0x60]
cmp dword [ecx + 0x24], 0
jne 0x10033f98
push 1
push eax
push str.sub_select_returns__d_columns___expected__d
push dword [ebp - 0x60]
call fcn.10046a40
add esp, 0x10
jmp 0x10033f98
dec eax
cmp eax, 4
jbe 0x10035595
mov eax, dword [ebp - 0x78]
mov edx, dword [eax + 8]
mov ecx, dword [ebp - 0x60]
push dword [ebp - 0x5c]
call fcn.10033d60
jmp 0x1003448c
mov eax, 0x101f4350
jmp 0x10034593
push esi
push str.misuse_of_aggregate:__T__
jmp 0x100351a4
mov ebx, dword [ebp - 0x64]
mov edi, dword [ebp - 0x6c]
jmp 0x100342af
mov dh, 0x41
cmp dl, 0x43
je 0x10034a2e
movzx esi, dl
cmp esi, 0x45
je 0x10034a2e
jmp 0x100349ee
mov dh, 0x45
jmp 0x10034a2e
mov ebx, edi
mov eax, dword [ebp - 0x60]
cmp dword [eax + 0x7c], 0
je 0x1003565f
mov al, byte [esi + 1]
cmp al, 2
jne 0x100354ef
mov ecx, dword [ebp - 0x60]
mov eax, dword [ecx + 0x78]
test eax, eax
cmove eax, ecx
mov byte [eax + 0x15], 1
mov al, byte [esi + 1]
cmp al, 4
jne 0x10035639
mov esi, dword [esi + 8]
xor edi, edi
mov ecx, ebx
mov edx, 0x46
push edi
push 4
push edi
call fcn.10030110
add esp, 0xc
mov ecx, ebx
mov edx, eax
push edi
push esi
call fcn.1003a6c0
jmp 0x10035950
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov eax, dword [eax]
mov edi, dword [eax]
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x70], ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x6c], ecx
mov edx, dword [eax + 0x38]
mov ecx, edx
mov dword [ebp - 0x8c], edx
lea ecx, [edx - 1]
mov dword [ebp - 0x90], ecx
mov dword [eax + 0x38], ecx
cmp dword [eax + 0x24], 0
jne 0x10033f98
mov eax, dword [ebp - 0x6c]
mov al, byte [eax]
mov ecx, eax
cmp al, 0xb0
jne 0x1003556d
mov ecx, dword [ebp - 0x6c]
mov cl, byte [ecx + 2]
cmp cl, 0x8a
je 0x10035681
movzx ecx, cl
cmp ecx, 0xb1
jne 0x100359c7
mov ecx, dword [ebp - 0x6c]
add ecx, 0x14
jmp 0x1003568a
xor edi, edi
inc edi
jmp 0x1003552c
mov esi, edi
jmp dword [eax*4 + 0x101b922c]
mov eax, dword [ebp - 0x78]
mov eax, dword [eax + 0x1c]
cmp byte [eax], 0xa7
jne 0x10035c1c
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax + 8]
call fcn.10036cb0
jmp 0x10035b15
xor eax, eax
mov ecx, edi
mov edx, 0x4b
jmp 0x100353a4
not eax
jmp 0x1003448f
xor edx, edx
test di, di
je 0x10035a90
mov dword [ebp - 0x68], 0
movzx ebx, word [esi + edx + 0xe]
bt ebx, 5
mov ebx, dword [ebp - 0x68]
sbb bx, 0xffff
mov dword [ebp - 0x68], ebx
add edx, 0x10
cmp ecx, edx
jne 0x100355e7
jmp 0x10035a97
lea eax, [esi + ecx]
bt edx, 8
jb 0x100359cf
add esi, ecx
add esi, 0xe
mov ecx, edx
or ecx, 0x100
mov word [esi], cx
test dl, dl
js 0x10035c71
and ecx, 0xfe7f
mov word [esi], cx
jmp 0x10033e01
xor ebx, ebx
inc ebx
xor edi, edi
mov ecx, dword [ebp - 0x60]
cmp dword [ecx + 0x7c], edi
movsx eax, al
mov edx, 0x713
cmove edx, ebx
push edi
push edi
push dword [esi + 8]
push eax
call fcn.10057460
jmp 0x1003545c
mov eax, dword [ebp - 0x60]
cmp byte [eax + 0x12], 0
jne 0x100354d6
push str.RAISE___may_only_be_used_within_a_trigger_program
push dword [ebp - 0x60]
call fcn.10046a40
add esp, 8
jmp 0x100359e1
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
mov ecx, dword [ecx]
cmp edi, ecx
jne case.0x10033dbb.177
mov ecx, dword [esi + 4]
mov dword [ebp - 0x84], ecx
mov ebx, dword [ebp - 0x64]
cmp bl, 0x37
movzx edx, bl
mov ecx, 0x38
mov dword [ebp - 0xa0], edx
cmovne ecx, edx
cmp bl, 0x39
mov edx, 0x36
cmovne edx, ecx
cmp bl, 0x34
mov ecx, 0x35
cmovne ecx, edx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x98], 0
mov ecx, dword [ebp - 0x68]
cmp byte [ecx], 0x8a
mov dword [ebp - 0x94], 0
jne 0x10035701
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x68]
call fcn.1004aef0
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x6c]
mov al, byte [eax]
shr dword [ebp - 0x84], 0xa
cmp al, 0x8a
jne 0x1003571d
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x6c]
call fcn.1004aef0
mov dword [ebp - 0x98], eax
and dword [ebp - 0x84], 1
mov ecx, dword [ebp - 0x70]
mov edx, 0x47
push 0
push dword [ebp - 0x5c]
push 1
call fcn.10030110
add esp, 0xc
lea eax, [edi - 1]
mov dword [ebp - 0xa4], eax
neg edi
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x7c], 0
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x88], 0
je 0x1003579f
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
mov eax, 0x101f4350
cmp byte [ecx + 0x57], 0
jne 0x10035796
mov eax, dword [ebp - 0x88]
lea eax, [eax + eax*4]
shl eax, 2
mov ecx, dword [ebp - 0x70]
add eax, dword [ecx + 0x68]
mov ecx, dword [ebp - 0x70]
mov ecx, dword [ecx + 0x6c]
mov dword [eax + 8], ecx
mov ebx, dword [ebp - 0x60]
mov ecx, ebx
mov edx, dword [ebp - 0x68]
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x94]
mov edi, dword [ebp - 0x7c]
push edi
call fcn.101705d0
add esp, 0x10
mov esi, eax
mov ecx, ebx
mov edx, dword [ebp - 0x6c]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x98]
push edi
call fcn.101705d0
add esp, 0x10
mov edi, eax
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0x6c]
mov dword [ebp - 0x88], eax
movzx eax, byte [ebp - 0x80]
mov edx, dword [ebp - 0x4c]
mov ecx, ebx
push dword [ebp - 0x84]
push dword [ebp - 0x78]
push dword [ebp - 0x90]
mov dword [ebp - 0xac], edi
push edi
mov dword [ebp - 0xb0], esi
push esi
mov dword [ebp - 0x9c], eax
push eax
push dword [ebp - 0x50]
call fcn.10041bb0
add esp, 0x1c
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x10035849
mov ecx, dword [ebp - 0x60]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x10035849
mov edx, ecx
inc dl
mov ebx, dword [ebp - 0x60]
mov byte [ebx + 0x13], dl
mov dword [ebx + ecx*4 + 0xa0], eax
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x1003586d
mov ecx, dword [ebp - 0x60]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x1003586d
mov edx, ecx
inc dl
mov ebx, dword [ebp - 0x60]
mov byte [ebx + 0x13], dl
mov dword [ebx + ecx*4 + 0xa0], eax
cmp byte [ebp - 0x80], 0x38
je 0x1003587c
cmp dword [ebp - 0x9c], 0x36
jne 0x100358a2
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0xa4]
jge 0x100358a2
mov ecx, dword [ebp - 0x70]
mov edx, 0x3a
xor eax, eax
push eax
push eax
push eax
call fcn.10030110
add esp, 0xc
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x7c]
lea ebx, [eax + ecx]
cmp byte [ebp - 0x74], 0
je 0x100358cd
mov ecx, dword [ebp - 0x70]
mov edx, 0x5c
push dword [ebp - 0xac]
push dword [ebp - 0x5c]
push dword [ebp - 0xb0]
jmp 0x100358dc
mov ecx, dword [ebp - 0x70]
mov edx, 0x47
xor eax, eax
push eax
push dword [ebp - 0x5c]
push eax
call fcn.10030110
add esp, 0xc
cmp ebx, 0xffffffff
je 0x10035958
cmp byte [ebp - 0x80], 0x35
jne 0x1003590e
mov ecx, dword [ebp - 0x70]
mov edx, 0x33
push 0
push dword [ebp - 0x90]
push dword [ebp - 0x5c]
call fcn.10030110
add esp, 0xc
mov al, 0x35
jmp 0x10035938
mov ecx, dword [ebp - 0x70]
mov edx, 9
xor eax, eax
push eax
push dword [ebp - 0x90]
push eax
call fcn.10030110
add esp, 0xc
cmp ebx, 0xfffffffe
mov eax, dword [ebp - 0x9c]
cmove eax, dword [ebp - 0xa0]
mov dword [ebp - 0x80], eax
inc dword [ebp - 0x7c]
jmp 0x1003575d
push str.row_value_misused
push dword [ebp - 0x60]
call fcn.10046a40
add esp, 8
jmp 0x10033f98
mov eax, dword [ebp - 0x70]
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
mov ecx, 0x101f4350
cmp byte [edx + 0x57], 0
jne 0x1003597d
mov ecx, dword [ebp - 0x88]
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [ebp - 0x70]
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax + 0xc]
neg dword [ebp - 0x8c]
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x10035ad5
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0x6c]
mov ecx, dword [ecx + 0x40]
mov edx, dword [ebp - 0x8c]
mov dword [ecx + edx*4], eax
cmp byte [ebp - 0x64], 0x34
jne 0x10033f98
mov ecx, dword [ebp - 0x70]
mov edx, 0x13
push 0
mov eax, dword [ebp - 0x5c]
push eax
jmp 0x100353a8
xor ecx, ecx
inc ecx
jmp 0x1003568e
push dword [eax]
push str.generated_column_loop_on___s_
push dword [ebp - 0x60]
call fcn.10046a40
add esp, 0xc
xor ebx, ebx
jmp 0x10033e01
xor eax, eax
mov ecx, edi
mov edx, 0x4b
push eax
push dword [ebp - 0x5c]
push eax
call fcn.10030110
add esp, 0xc
jmp 0x10034bdc
mov edx, edi
push esi
call fcn.100329e0
add esp, 4
jmp 0x10033f98
mov dword [ebp - 0x6c], edi
xor eax, eax
mov esi, dword [ebp - 0x84]
mov ecx, esi
mov edx, dword [ebp - 0x7c]
push eax
push eax
call fcn.10001810
add esp, 8
mov edi, eax
cmp byte [esi + 0x57], 0
je 0x10035b90
test edi, edi
je 0x10033f98
mov ecx, dword [ebp - 0x84]
mov edx, edi
call fcn.1014f3a0
jmp 0x10033f98
mov ecx, dword [ebp - 0x84]
call fcn.1014f3a0
jmp 0x10034be7
mov eax, 0x101f4350
jmp 0x10034c05
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x80]
jmp 0x10034b0c
mov edi, 0x29
jmp 0x1003463d
mov ecx, edi
xor edx, edx
call fcn.10142fa0
jmp 0x10034656
mov dword [ebp - 0x68], 0
movzx edx, word [esi + ecx + 0xe]
test dl, 0x20
jne 0x10035aa9
mov edi, dword [ebp - 0x68]
jmp 0x10034811
sub edi, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x64]
add di, word [ebx + 0x24]
jmp 0x10034811
mov ebx, edi
cmp eax, 0x99
jne 0x10035bd1
mov edx, dword [edx + 8]
mov ecx, ebx
mov ebx, dword [ebp - 0x5c]
push ebx
push 1
jmp 0x10034db8
mov edx, dword [ebp - 0x70]
push dword [ebp - 0x8c]
call fcn.100329e0
add esp, 4
jmp 0x100359aa
mov eax, dword [ebp - 0x78]
mov edx, dword [eax + 8]
mov ecx, dword [ebp - 0x60]
push 0xffffffffffffffff
push dword [eax + 0x1c]
call fcn.10049cd0
jmp 0x10035b12
mov eax, dword [ebp - 0x78]
mov edx, dword [eax + 8]
xor ecx, ecx
push 0xffffffffffffffff
push dword [eax + 0x1c]
call fcn.100317c0
add esp, 8
mov ecx, esi
jmp 0x10034eb8
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax + 8]
call fcn.10044010
mov dword [ebp - 0x60], 0x101cfffd
cmp al, 0x41
jl 0x10035b3f
movzx eax, al
mov eax, dword [eax*4 + 0x101b648c]
mov dword [ebp - 0x60], eax
xor edi, edi
mov ecx, esi
mov edx, 0x75
push edi
mov ebx, dword [ebp - 0x5c]
push ebx
push edi
call fcn.10030110
add esp, 0xc
mov ecx, esi
mov edx, eax
push edi
push dword [ebp - 0x60]
jmp 0x10034e69
xorps xmm0, xmm0
lea edx, [ebp - 0x48]
movups xmmword [edx], xmm0
movups xmmword [edx + 0x10], xmm0
movups xmmword [edx + 0x20], xmm0
mov dword [edx + 0x30], 0
mov byte [edx], 0x9d
mov eax, dword [ebp - 0x78]
mov dword [edx + 0x14], eax
jmp 0x10035474
xor eax, eax
jmp 0x100346a9
lea eax, [ebp - 0x54]
mov ecx, dword [ebp - 0x60]
mov esi, edi
mov edx, edi
push eax
call fcn.1003a8f0
add esp, 4
test edi, edi
je 0x10035c3f
mov ecx, edi
mov edx, dword [ecx + 4]
test edx, 0x82000
je 0x10035c2b
bt edx, 0x13
jb 0x10035bc3
add ecx, 0xc
jmp 0x10035bc9
mov ecx, dword [ecx + 0x14]
add ecx, 8
mov ecx, dword [ecx]
test ecx, ecx
jne 0x10035bad
jmp 0x10035c3f
lea edx, [ebp - 0x48]
mov byte [edx], 0x9b
mov dword [edx + 4], 0x10800
mov dword [edx + 8], 0
lea eax, [ebp - 0x54]
mov edi, dword [ebp - 0x60]
mov ecx, edi
push eax
call fcn.100418d0
add esp, 4
mov dword [ebp - 0x64], eax
mov edx, dword [esi + 0xc]
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
call fcn.100418d0
add esp, 4
mov ecx, ebx
mov edx, 0x6b
push dword [ebp - 0x5c]
push dword [ebp - 0x64]
jmp 0x100353a8
xor eax, eax
mov ecx, esi
mov edx, 0x4b
push eax
jmp 0x10034ebf
mov bl, byte [ecx]
mov byte [ecx + 2], bl
mov byte [ecx], 0xb0
mov dword [ecx + 0x1c], eax
and edx, 0xffffdfff
mov dword [ecx + 4], edx
xorps xmm0, xmm0
lea ecx, [ebp - 0x48]
movups xmmword [ecx], xmm0
xor eax, eax
mov dword [ecx + 0x30], eax
movups xmmword [ecx + 0x20], xmm0
movups xmmword [ecx + 0x10], xmm0
mov byte [ecx], 0x35
mov dword [ebp - 0x80], ecx
mov dword [ecx + 0xc], edi
mov dword [ebp - 0x54], eax
mov eax, edi
mov edi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x78]
jmp 0x10034ada
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x64]
push ebx
push eax
call fcn.10170370
add esp, 8
movzx ecx, word [esi]
jmp 0x1003562b
mov edi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x78]
jmp 0x100343fc