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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xb0
mov eax, dword [ebp + 8]
mov dword [esp + 0x38], eax
mov eax, dword [0x101db014]
xor eax, ebp
mov dword [esp + 0xa8], eax
mov dword [esp + 4], ecx
mov eax, dword [ecx + 8]
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], eax
test edx, edx
je case.0x1003b9a0.142
mov esi, edx
mov bl, byte [esi]
movzx edx, bl
mov eax, ebx
cmp bl, 0x46
jg 0x1003b993
add al, 0x77
cmp al, 0x2b
ja case.default.0x1003b98c
movzx eax, al
jmp dword [eax*4 + 0x101a3e00]
add al, 0x9a
cmp al, 0xe
ja case.default.0x1003b9a0
movzx eax, al
jmp dword [eax*4 + 0x101a3f4c]
mov eax, dword [esi + 8]
mov dword [esp + 4], eax
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x1003be1a
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4], 0x74
xor edi, edi
mov dword [ecx + edx*4 + 4], edi
mov ebx, dword [ebp + 8]
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 + 0x53], 0
jne 0x1003c616
test eax, eax
js 0x1003bce5
lea edx, [eax + eax*4]
shl edx, 2
mov ecx, dword [esp + 8]
add edx, dword [ecx + 0x68]
push 0
push dword [esp + 8]
call fcn.1003d950
add esp, 8
jmp 0x1003c616
movsx eax, word [esi + 0x20]
mov ecx, dword [esp + 8]
mov edi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edi
jle 0x1003be35
lea edx, [edi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [edi + edi*4]
mov dword [edx + ecx*4], 0x4b
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp + 8]
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 0x1003c616
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xd8]
xor eax, eax
test ecx, ecx
je 0x1003ba94
movsx edx, word [esi + 0x20]
mov edi, dword [ecx + 4]
mov esi, 2
cmp dword [ecx + esi*4], edx
je 0x1003ba8e
add esi, dword [ecx + esi*4 + 4]
cmp esi, edi
jl 0x1003ba7f
jmp 0x1003ba94
lea eax, [ecx + esi*4]
add eax, 8
mov dword [ecx], 0
mov edx, dword [esp + 8]
mov ecx, dword [edx]
cmp byte [ecx + 0x53], 0
jne 0x1003c616
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 0x1003c616
mov edi, dword [esi + 0x1c]
jmp 0x1003c619
mov ecx, dword [esp + 4]
mov edx, esi
mov edi, dword [ebp + 8]
push edi
push 0
call fcn.1003de40
add esp, 8
jmp 0x1003c619
test byte [esi + 7], 1
jne 0x1003cf47
mov eax, dword [esp + 4]
mov ecx, dword [eax]
mov dword [esp + 0x24], ecx
mov cl, byte [ecx + 0x50]
cmp byte [eax + 0x17], 0
je 0x1003bb36
lea edi, [esp + 0x70]
mov word [edi + 0x14], 2
mov dword [edi + 4], 0x1007ad60
mov dword [edi + 8], 0x1007f830
mov dword [edi + 0x18], 0
mov ebx, ecx
mov ecx, edi
mov edx, esi
call fcn.10148200
mov ecx, ebx
cmp word [edi + 0x14], 0
jne 0x1003ca34
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [esp + 0x14], eax
je 0x1003c30d
mov ebx, dword [eax]
mov edi, dword [esi + 8]
movzx eax, cl
mov ecx, dword [esp + 0x24]
mov edx, edi
push 0
push eax
mov dword [esp + 0x14], ebx
push ebx
call fcn.10130d40
add esp, 0xc
test eax, eax
je 0x1003cf33
mov ecx, eax
cmp dword [eax + 0x14], 0
jne 0x1003cf33
mov eax, dword [ecx + 4]
bt eax, 0x16
mov ebx, dword [esp + 0x14]
jb 0x1003c10b
test eax, 0x280000
mov dword [esp + 0x10], ecx
je 0x1003bb9d
test byte [esi + 7], 0x40
jne 0x1003c2ac
cmp dword [esp + 0xc], 0
jle 0x1003be71
lea edi, [ebx + 8]
mov dword [esp + 0x18], 0
xor ebx, ebx
mov dword [esp + 0x20], 0
cmp ebx, 0x1f
ja 0x1003bc0c
mov edx, dword [edi]
mov word [esp + 0x84], 1
mov dword [esp + 0x74], 0x1007ad60
mov dword [esp + 0x78], 0x1007f830
mov dword [esp + 0x88], 0
test edx, edx
je 0x1003bc01
lea ecx, [esp + 0x70]
call fcn.10148200
cmp word [esp + 0x84], 0
je 0x1003bc0c
mov eax, dword [esp + 0x18]
bts eax, ebx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x20], 0
jne 0x1003bc1f
mov eax, dword [edx + 4]
and eax, 0x20
jne 0x1003bc2e
inc ebx
add edi, 0x14
cmp dword [esp + 0xc], ebx
jne 0x1003bbbd
jmp 0x1003bcf2
mov edx, dword [edi]
mov ecx, dword [esp + 4]
call fcn.100357f0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], eax
jmp 0x1003bc1f
cmp bl, 0x4d
jne 0x1003c0c5
mov ebx, dword [esi + 0x2c]
movsx edi, word [esi + 0x20]
movsx eax, word [ebx + 0x2a]
inc eax
imul eax, dword [esi + 0x1c]
inc eax
mov ecx, edi
test edi, edi
js 0x1003bc71
mov edx, dword [ebx + 0x24]
mov ecx, edi
and edx, 0x20
jne 0x1003cfd0
movsx ecx, cx
add eax, ecx
mov ecx, dword [esp + 8]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x1003c3d0
lea edx, [esi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4], 0x99
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp + 8]
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 di, di
js 0x1003bcc4
mov eax, dword [ebx + 4]
lea ecx, [edi + edi*4]
cmp byte [eax + ecx*4 + 0xd], 0x45
je 0x1003cf81
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x1003bdf2
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x1003be4d
mov edi, dword [esp + 0x38]
jmp 0x1003c619
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x6c]
dec eax
jmp 0x1003b9fa
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x1003c404
cmp dword [esp + 0x18], 0
je 0x1003cf96
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x2c]
lea edi, [eax + 1]
mov dword [esp + 0x1c], edi
add eax, dword [esp + 0xc]
mov dword [ecx + 0x2c], eax
mov eax, dword [edx + 4]
test al, 0xc0
jne 0x1003cf64
mov ecx, dword [esp + 4]
mov edx, ebx
push 3
push 0
push dword [esp + 0x24]
call fcn.1003b750
add esp, 0xc
cmp dword [esp + 0xc], 2
mov edi, dword [esp + 0x18]
jl 0x1003c068
cmp byte [esi + 4], 0
mov eax, dword [esp + 0x10]
js 0x1003c4a6
add ebx, 8
mov ecx, dword [esp + 0x24]
mov edx, eax
push dword [ebx]
mov ebx, dword [esp + 0x10]
push ebx
call fcn.1003e020
add esp, 8
mov edi, dword [esp + 0x18]
test byte [eax + 4], 0x20
mov dword [esp + 0x10], eax
jne 0x1003c229
movzx eax, byte [esi + 2]
mov ecx, dword [esp + 4]
mov edx, edi
push eax
push dword [esp + 0x14]
push ebx
mov esi, dword [ebp + 8]
push esi
push dword [esp + 0x2c]
call fcn.1003e170
add esp, 0x14
test ebx, ebx
je 0x1003c9c1
test edi, edi
jne 0x1003c616
cmp ebx, 1
jne 0x1003c3e8
cmp dword [esp + 0x1c], 0
je 0x1003c616
mov edx, dword [esp + 4]
movzx eax, byte [edx + 0x13]
cmp eax, 7
ja 0x1003c616
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov ecx, dword [esp + 0x1c]
mov dword [edx + eax*4 + 0x94], ecx
jmp 0x1003c616
mov ecx, dword [esp + 4]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x1003bcd0
mov edx, ecx
inc dl
mov esi, dword [esp + 4]
mov byte [esi + 0x13], dl
mov dword [esi + ecx*4 + 0x94], eax
jmp 0x1003bcd0
xor eax, eax
mov ecx, esi
mov edx, 0x74
push eax
push dword [ebp + 8]
push eax
call fcn.10007820
add esp, 0xc
jmp 0x1003b9e6
mov edx, 0x4b
push 0
push dword [ebp + 8]
push eax
call fcn.10007820
add esp, 0xc
jmp 0x1003ba56
mov esi, dword [esp + 4]
movzx ecx, byte [esi + 0x13]
cmp ecx, 7
ja 0x1003bcdc
mov edx, ecx
inc dl
mov byte [esi + 0x13], dl
mov dword [esi + ecx*4 + 0x94], eax
jmp 0x1003bcdc
xor eax, eax
test ebx, ebx
je 0x1003c4d4
mov dword [esp + 0x20], eax
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x1c]
mov ecx, dword [esp + 0xc]
sub eax, ecx
jge 0x1003c2f9
mov eax, dword [edx + 0x2c]
lea edi, [eax + 1]
mov dword [esp + 0x1c], edi
add eax, ecx
mov dword [edx + 0x2c], eax
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x10]
jmp 0x1003bd1e
mov eax, ebx
add al, 0xed
cmp al, 0x26
ja case.0x1003b9a0.142
movzx eax, al
jmp dword [eax*4 + 0x101a3eb0]
mov edi, edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov edx, dword [esi + 0xc]
mov al, byte [edx]
mov ecx, eax
cmp al, 0xaf
je 0x1003c4ff
cmp cl, 0x89
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], edx
je 0x1003d1bc
cmp cl, 0xb0
je 0x1003d1d3
lea eax, [esp + 0x60]
mov edi, dword [esp + 4]
mov ecx, edi
push eax
call fcn.10045140
add esp, 4
mov ebx, eax
mov edx, dword [esi + 0x10]
lea eax, [esp + 0x5c]
mov ecx, edi
push eax
call fcn.10045140
add esp, 4
mov dword [esp + 0xc], eax
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
mov dword [esp + 0x24], ebx
jle 0x1003c9e8
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x45
mov dword [ecx + eax*4 + 4], 1
mov edx, dword [ebp + 8]
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, 9
and eax, 1
mov ebx, dword [edi + 0x6c]
add ebx, 2
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x18]
push ebx
push dword [esp + 0x18]
mov ebx, dword [esp + 0x34]
push ebx
push dword [esp + 0x24]
push dword [esi + 0x10]
call fcn.10045250
add esp, 0x1c
cmp byte [esp + 0x18], 0
jne 0x1003d1c4
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x1003ca03
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x59
mov dword [ecx + eax*4 + 4], ebx
mov edx, dword [ebp + 8]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [esp + 0xc]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x1003bcc4
mov dword [esp + 0x10], edx
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x60]
mov edi, dword [esp + 4]
mov ecx, edi
push eax
call fcn.10045140
add esp, 4
mov dword [esp + 0xc], eax
mov edx, dword [esi + 0x10]
lea eax, [esp + 0x5c]
mov ecx, edi
push eax
call fcn.10045140
add esp, 4
mov ecx, dword [esp + 8]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x1003c4ae
lea edx, [esi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov byte [edx + ecx*4], bl
mov word [edx + ecx*4 + 2], 0
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [esp + 0xc]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [ebp + 8]
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], 0
mov byte [edx + ecx*4 + 1], 0
jmp 0x1003bcc4
cmp dword [esp + 0xc], 1
mov eax, dword [esp + 0x10]
je 0x1003bd5c
mov ebx, dword [esp + 0xc]
jmp 0x1003bd78
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x1003b973
jmp case.0x1003b9a0.142
mov eax, dword [esp + 4]
mov eax, dword [eax]
cmp byte [eax + 0x53], 0
jne 0x1003d255
cmp bl, 0x89
jne 0x1003c0b3
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp eax, 1
jne 0x1003d01e
mov ecx, dword [esp + 4]
mov edx, esi
call fcn.1003eba0
mov edi, eax
jmp 0x1003c619
cmp bl, 0x47
je 0x1003d042
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x1003c2df
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x48
xor edx, edx
mov dword [ecx + eax*4 + 4], edx
mov edi, dword [ebp + 8]
mov dword [ecx + eax*4 + 8], edi
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x1003c619
mov eax, dword [ecx + 8]
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + 8]
test eax, eax
mov dword [esp + 0xc], ecx
jne 0x1003d09e
mov esi, dword [esp + 0x14]
mov eax, dword [esi]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x10], eax
dec eax
mov dword [esp + 0x18], eax
mov dword [ebx + 0x38], eax
test ecx, ecx
je 0x1003c15a
mov edi, dword [esi + 8]
mov ecx, ebx
mov edx, edi
mov eax, dword [ebp + 8]
push eax
call fcn.1003b930
add esp, 4
cmp eax, dword [ebp + 8]
jne 0x1003c507
mov eax, dword [esp + 8]
cmp eax, 2
jl 0x1003c1de
dec eax
add esi, 0x1c
mov ebx, dword [esp + 4]
mov dword [esp + 8], eax
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x1003c6b1
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x33
mov edx, dword [ebp + 8]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
cmp dword [ebx + 8], 0
mov esi, dword [esp + 0x14]
je 0x1003c1d4
mov edi, dword [esi]
mov ecx, ebx
mov edx, edi
mov eax, dword [ebp + 8]
push eax
call fcn.1003b930
add esp, 4
cmp eax, dword [ebp + 8]
jne 0x1003c560
add esi, 0x14
mov eax, dword [esp + 8]
dec eax
jne 0x1003c16b
mov edx, dword [esp + 0xc]
mov eax, dword [edx]
cmp byte [eax + 0x53], 0
mov esi, dword [esp + 0x10]
jne 0x1003d0c0
mov eax, dword [edx + 0x68]
mov ecx, dword [edx + 0x6c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
cmp byte [eax], 0x4d
je 0x1003ca17
mov ecx, dword [edx + 0xc]
neg esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x1003c498
mov eax, dword [edx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
jmp 0x1003c616
cmp dword [esp + 0x20], 0
je 0x1003c4ef
mov ebx, dword [esp + 8]
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x1003c8b0
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
lea edx, [eax + eax*4]
mov byte [ecx + edx*4], 0x52
xorps xmm0, xmm0
movups xmmword [ecx + edx*4 + 1], xmm0
mov dword [ecx + edx*4 + 0x10], 0
mov ecx, dword [ebx]
cmp byte [ecx + 0x53], 0
jne 0x1003d163
test eax, eax
mov ebx, dword [esp + 0xc]
js 0x1003c4c7
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
cmp byte [edx + eax*4 + 1], 0
jne 0x1003c411
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x1003bd86
lea eax, [edx + eax*4]
inc eax
mov dword [eax + 0xf], ecx
mov byte [eax], 0xfe
jmp 0x1003bd86
bt eax, 0x13
jb 0x1003c2c2
mov eax, dword [esp + 4]
mov eax, dword [eax]
cmp byte [eax + 0x20], 0
js 0x1003bb9d
push dword [ecx + 0x20]
push str.unsafe_use_of__s__
push dword [esp + 0xc]
call fcn.100394d0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x1003bb9d
xor eax, eax
mov edx, 0x48
push eax
mov edi, dword [ebp + 8]
push edi
push eax
call fcn.10007820
add esp, 0xc
jmp 0x1003c619
mov edi, dword [edx + 0x20]
mov dword [esp + 0x1c], edi
add ecx, edi
mov dword [edx + 0x20], ecx
mov dword [edx + 0x1c], eax
jmp 0x1003bea1
xor ebx, ebx
jmp 0x1003bb47
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 4]
mov edi, dword [ebp + 8]
push edi
call fcn.1003b930
add esp, 4
cmp eax, edi
jne 0x1003d269
mov eax, dword [esi + 8]
mov bl, byte [eax]
test bl, bl
je 0x1003c9e1
inc eax
xor ecx, ecx
mov dl, 0x43
mov esi, ecx
shl esi, 8
movzx ecx, bl
movzx ecx, byte [ecx + 0x1019c728]
or ecx, esi
mov dh, 0x42
cmp ecx, 0x666c6f60
jle 0x1003c398
cmp ecx, 0x74657874
je 0x1003c38a
cmp ecx, 0x666c6f61
je 0x1003c3c5
cmp ecx, 0x7265616c
je 0x1003c3c5
mov esi, ecx
and esi, 0xffffff
mov dh, dl
cmp esi, 0x696e74
je 0x1003c427
mov bl, byte [eax]
inc eax
mov dl, dh
test bl, bl
jne 0x1003c341
jmp 0x1003c429
cmp ecx, 0x63686171
jg 0x1003c3ad
cmp ecx, 0x626c6f62
jne 0x1003c374
jmp 0x1003c9c8
cmp ecx, 0x63686172
je 0x1003c38a
cmp ecx, 0x636c6f62
je 0x1003c38a
cmp ecx, 0x646f7562
jne 0x1003c374
mov dh, 0x45
cmp dl, 0x43
je 0x1003c38a
mov dh, dl
jmp 0x1003c38a
mov edx, 0x99
push 0
push dword [ebp + 8]
push eax
call fcn.10007820
add esp, 0xc
jmp 0x1003bcae
mov eax, dword [esp + 4]
cmp dword [eax + 0x1c], ebx
jge 0x1003c616
mov dword [eax + 0x1c], ebx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x20], ecx
jmp 0x1003c616
mov dword [esp + 0x1c], 0
jmp 0x1003bd3f
lea edx, [edx + eax*4]
push 0xfffffffffffffffe
push dword [esp + 0x24]
call fcn.1003d950
add esp, 8
jmp 0x1003bd86
mov dh, 0x44
movzx eax, dh
mov ecx, dword [esp + 8]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x1003ca49
lea edx, [esi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4], 0x55
mov edi, dword [ebp + 8]
mov dword [edx + ecx*4 + 4], edi
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 0x1003c619
mov eax, dword [esi + 0x28]
test eax, eax
je 0x1003d25c
movsx ecx, word [esi + 0x22]
test ecx, ecx
js 0x1003d25c
cmp dword [eax + 0x2c], ecx
jle 0x1003d25c
mov eax, dword [eax + 0x28]
lea ecx, [ecx + ecx*4]
mov edi, dword [eax + ecx*4 + 8]
jmp 0x1003c619
push esi
call fcn.10037c90
add esp, 4
jmp 0x1003c616
add ebx, 0x1c
jmp 0x1003bd5f
mov edx, dword [esp + 0x10]
push dword [ebp + 8]
push dword [esp + 0x10]
push eax
call fcn.10007820
add esp, 0xc
jmp 0x1003bcc4
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x6c]
dec eax
jmp 0x1003c27c
mov dword [esp + 0x1c], 0
test byte [ecx + 4], 0x20
mov edi, 0
mov ebx, dword [esp + 0xc]
je 0x1003bd86
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
jmp 0x1003c234
mov cl, byte [edx + 2]
jmp 0x1003bee9
mov cl, byte [edi + 6]
and cl, 0x20
cmp cl, 1
mov edx, 0x4d
adc edx, 0
mov ecx, dword [ebx + 8]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x1003caaf
lea edi, [esi + 1]
mov dword [ecx + 0x6c], edi
mov ecx, dword [ecx + 0x68]
lea esi, [esi + esi*4]
mov byte [ecx + esi*4], dl
mov word [ecx + esi*4 + 2], 0
mov dword [ecx + esi*4 + 4], eax
mov eax, dword [ebp + 8]
mov dword [ecx + esi*4 + 8], eax
xor eax, eax
mov dword [ecx + esi*4 + 0xc], eax
mov dword [ecx + esi*4 + 0x10], eax
mov byte [ecx + esi*4 + 1], 0
mov esi, dword [esp + 0x14]
jmp 0x1003c15a
mov cl, byte [edi + 6]
and cl, 0x20
cmp cl, 1
mov edx, 0x4d
adc edx, 0
mov ecx, dword [ebx + 8]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x1003cac2
lea edi, [esi + 1]
mov dword [ecx + 0x6c], edi
mov ecx, dword [ecx + 0x68]
lea esi, [esi + esi*4]
mov byte [ecx + esi*4], dl
mov word [ecx + esi*4 + 2], 0
mov dword [ecx + esi*4 + 4], eax
mov eax, dword [ebp + 8]
mov dword [ecx + esi*4 + 8], eax
xor eax, eax
mov dword [ecx + esi*4 + 0xc], eax
mov dword [ecx + esi*4 + 0x10], eax
mov byte [ecx + esi*4 + 1], 0
mov esi, dword [esp + 0x14]
jmp 0x1003c1d4
mov eax, dword [esi + 0x28]
mov edi, dword [eax + 0x1c]
movsx ecx, word [esi + 0x22]
cmp byte [eax], 0
je 0x1003d3f3
cmp byte [eax + 1], 0
jne 0x1003d3ff
test byte [esi + 4], 8
jne 0x1003ce1c
mov eax, dword [esi + 0x1c]
test eax, eax
js 0x1003c631
movzx edi, byte [esi + 2]
movsx ebx, word [esi + 0x20]
mov edx, dword [esi + 0x2c]
mov ecx, dword [esp + 8]
push dword [ebp + 8]
push ebx
push eax
call fcn.1003db30
add esp, 0xc
test di, di
jne 0x1003ce8d
cmp dword [esi + 0x2c], 0
je 0x1003cec2
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0xa8]
xor ecx, ebp
call fcn.1014dc80
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x34]
test eax, eax
js 0x1003c63f
dec eax
jmp 0x1003c5e7
movzx edi, word [esi + 0x20]
test di, di
js 0x1003d285
mov edx, dword [esi + 0x2c]
movzx ebx, di
mov ecx, dword [edx + 4]
lea esi, [ebx + ebx*4]
test byte [edx + 0x24], 0x20
jne 0x1003d28c
movsx edi, di
sub edi, eax
movzx eax, word [ecx + esi*4 + 0x10]
test al, 0x60
jne 0x1003d2dd
cmp byte [ecx + esi*4 + 0xd], 0x45
jne 0x1003c619
xor eax, eax
mov esi, dword [esp + 8]
mov ecx, esi
mov edx, 0x4e
push eax
mov ebx, dword [ebp + 8]
push ebx
push edi
call fcn.10036aa0
add esp, 0xc
mov ecx, esi
mov edx, 0x54
xor eax, eax
push eax
push eax
push ebx
call fcn.10036aa0
add esp, 0xc
mov edi, ebx
jmp 0x1003c619
mov edx, 0x33
push 0
push dword [esp + 0x1c]
push dword [ebp + 8]
call fcn.10007820
add esp, 0xc
jmp 0x1003c1af
mov eax, dword [esp + 4]
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x38]
mov edx, dword [esi + 0x14]
mov dword [esp + 0x14], edx
mov ebx, dword [edx]
mov dword [esp + 0x2c], ecx
dec ecx
mov dword [esp + 0x24], ecx
mov dword [eax + 0x38], ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x30], 0
mov edi, 0
mov dword [esp + 0x1c], ecx
test ecx, ecx
mov dword [esp + 0x20], ebx
jne 0x1003d823
mov dword [esp + 0x34], edi
lea ecx, [ebx - 1]
cmp ebx, 2
jl 0x1003c807
mov eax, dword [esp + 0x14]
add eax, 0x1c
xor edx, edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xc], eax
mov eax, dword [eax - 0x14]
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x10], edx
jne 0x1003d44e
mov ecx, eax
mov edi, dword [esp + 4]
mov eax, dword [edi + 0x38]
mov dword [esp + 0x18], eax
dec eax
mov dword [edi + 0x38], eax
push 0x10
push eax
mov dword [esp + 0x38], ecx
push ecx
push edi
call fcn.10044d40
add esp, 0x10
cmp dword [edi + 8], 0
je 0x1003c787
mov eax, dword [esp + 0xc]
mov esi, dword [eax]
mov ecx, edi
mov edx, esi
mov ebx, dword [ebp + 8]
push ebx
call fcn.1003b930
add esp, 4
cmp eax, ebx
jne 0x1003ca5a
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
mov ebx, dword [esp + 0x20]
jle 0x1003cad5
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0xb
xor edi, edi
mov dword [ecx + eax*4 + 4], edi
mov edx, dword [esp + 0x24]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], edi
mov dword [ecx + eax*4 + 0x10], edi
mov ecx, dword [esi + 0xc]
mov edi, dword [esp + 0x18]
neg edi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x1003c7fa
mov eax, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + edi*4], eax
mov edx, dword [esp + 0x10]
add edx, 2
mov eax, dword [esp + 0xc]
add eax, 0x28
mov ecx, dword [esp + 0x3c]
cmp edx, ecx
jl 0x1003c72b
jmp 0x1003c807
mov edx, esi
push edi
call fcn.10037c90
add esp, 4
jmp 0x1003c7de
test bl, 1
je 0x1003d7fb
mov ebx, dword [esp + 4]
cmp dword [ebx + 8], 0
je 0x1003c83d
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + eax*4 + 8]
mov ecx, ebx
mov edx, esi
mov edi, dword [ebp + 8]
push edi
call fcn.1003b930
add esp, 4
cmp eax, edi
jne 0x1003caf1
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x1003d859
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
cmp byte [eax + 0x53], 0
mov esi, dword [esp + 0x2c]
jne 0x1003d867
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], 0x4d
jne 0x1003c88d
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x6c]
test eax, eax
jle 0x1003c88d
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 1
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0xc]
neg esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x1003d815
mov eax, dword [edx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
jmp 0x1003bcc4
xor eax, eax
mov ecx, ebx
mov edx, 0x52
push eax
push eax
push eax
call fcn.10007820
add esp, 0xc
jmp 0x1003c264
mov edi, edx
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x60]
mov ecx, dword [esp + 4]
push eax
call fcn.10045140
add esp, 4
mov ecx, dword [esp + 8]
mov edx, edi
push 0
push dword [ebp + 8]
push eax
call fcn.10036aa0
jmp 0x1003c4bf
xor eax, eax
mov ecx, dword [esp + 4]
mov edx, esi
push eax
push eax
mov edi, dword [ebp + 8]
push edi
call fcn.1005c6c0
jmp 0x1003c2f1
mov edi, dword [esp + 4]
mov ebx, dword [edi + 0x38]
lea eax, [ebx - 1]
mov dword [esp + 0xc], eax
lea eax, [ebx - 2]
mov dword [esp + 0x10], eax
mov dword [edi + 0x38], eax
xor eax, eax
mov ecx, dword [esp + 8]
mov edx, 0x48
push eax
mov eax, dword [ebp + 8]
push eax
xor eax, eax
push eax
call fcn.10036aa0
add esp, 0xc
mov ecx, edi
mov edi, ebx
mov ebx, dword [esp + 8]
mov edx, esi
push dword [esp + 0x10]
push dword [esp + 0x10]
call fcn.100646a0
add esp, 8
mov ecx, ebx
mov edx, 0x45
xor eax, eax
push eax
push dword [ebp + 8]
push 1
call fcn.10036aa0
add esp, 0xc
mov ecx, dword [ebx + 0xc]
mov eax, edi
neg eax
mov edx, dword [ecx + 0x38]
add edx, dword [ecx + 0x3c]
js 0x1003d871
mov edx, dword [ebx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + eax*4], edx
xor eax, eax
mov ecx, ebx
mov edx, 0x53
push eax
push eax
mov esi, dword [ebp + 8]
push esi
call fcn.10036aa0
add esp, 0xc
mov ecx, dword [ebx + 0xc]
xor eax, eax
inc eax
sub eax, edi
mov edx, dword [ecx + 0x38]
add edx, dword [ecx + 0x3c]
js 0x1003d881
mov edx, dword [ebx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + eax*4], edx
mov edi, esi
jmp 0x1003c619
mov dh, 0x41
cmp dl, 0x43
je 0x1003c38a
cmp dl, 0x45
je 0x1003c38a
jmp 0x1003c3cc
mov dh, 0x43
jmp 0x1003c429
mov ecx, edi
mov edx, 0x45
push 0
push dword [ebp + 8]
push 1
call fcn.10007820
add esp, 0xc
jmp 0x1003bf6e
mov ecx, edi
mov edx, 0x59
push dword [esp + 0xc]
push dword [ebp + 8]
push ebx
jmp 0x1003c4ba
mov eax, dword [edx + 0x6c]
test eax, eax
jle 0x1003c20a
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 1
jmp 0x1003c20a
mov ecx, dword [esp + 4]
mov edx, esi
push 0xffffffffffffffff
call fcn.100453f0
add esp, 4
jmp 0x1003c0be
mov edx, 0x55
push 0
push eax
mov edi, dword [ebp + 8]
push edi
jmp 0x1003c2ec
mov cl, byte [esi + 6]
and cl, 0x20
cmp cl, 1
mov edx, 0x4d
adc edx, 0
mov ecx, dword [edi + 8]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x1003cb42
lea ebx, [esi + 1]
mov dword [ecx + 0x6c], ebx
mov ecx, dword [ecx + 0x68]
lea esi, [esi + esi*4]
mov byte [ecx + esi*4], dl
mov word [ecx + esi*4 + 2], 0
mov dword [ecx + esi*4 + 4], eax
mov eax, dword [ebp + 8]
mov dword [ecx + esi*4 + 8], eax
xor eax, eax
mov dword [ecx + esi*4 + 0xc], eax
mov dword [ecx + esi*4 + 0x10], eax
mov byte [ecx + esi*4 + 1], 0
jmp 0x1003c787
push 0
push dword [ebp + 8]
push eax
call fcn.10007820
add esp, 0xc
jmp 0x1003c557
push 0
push dword [ebp + 8]
push eax
call fcn.10007820
add esp, 0xc
jmp 0x1003c5b0
mov ecx, esi
mov edx, 0xb
xor eax, eax
push eax
push dword [esp + 0x28]
push eax
call fcn.10007820
add esp, 0xc
jmp 0x1003c7c4
mov cl, byte [esi + 6]
and cl, 0x20
cmp cl, 1
mov edx, 0x4d
adc edx, 0
mov ecx, dword [ebx + 8]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x1003cb55
lea edi, [esi + 1]
mov dword [ecx + 0x6c], edi
mov ecx, dword [ecx + 0x68]
lea esi, [esi + esi*4]
mov byte [ecx + esi*4], dl
mov word [ecx + esi*4 + 2], 0
mov dword [ecx + esi*4 + 4], eax
mov eax, dword [ebp + 8]
mov dword [ecx + esi*4 + 8], eax
xor eax, eax
mov dword [ecx + esi*4 + 0xc], eax
mov dword [ecx + esi*4 + 0x10], eax
mov byte [ecx + esi*4 + 1], 0
jmp 0x1003c83d
push 0
push dword [ebp + 8]
push eax
call fcn.10007820
add esp, 0xc
jmp 0x1003c787
push 0
push dword [ebp + 8]
push eax
call fcn.10007820
add esp, 0xc
jmp 0x1003c83d
mov esi, dword [esi + 0xc]
test byte [esi + 5], 0x10
jne 0x1003cb68
mov ecx, dword [esi + 8]
xor eax, eax
cmp byte [ecx + 4], 0
sete al
mov ecx, dword [esp + 8]
mov edx, 0x45
push 0
mov edi, dword [ebp + 8]
push edi
push eax
call fcn.10036aa0
jmp 0x1003c2f1
xor eax, eax
cmp bl, 0x2d
sete al
or eax, 0x34
mov edi, eax
mov dword [esp + 0x14], 0x80
mov al, 1
mov dword [esp + 0x18], eax
jmp 0x1003beda
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 edi, eax
and edi, 0x3fffffff
lea ebx, [edi - 1]
mov eax, dword [esp + 8]
mov ecx, dword [eax]
mov edx, esi
push ebx
call fcn.10168390
add esp, 4
mov esi, eax
shr ebx, 0x1f
lea eax, [edi + ebx]
dec eax
sar eax, 1
mov ebx, dword [esp + 8]
mov ecx, ebx
mov edx, 0x4a
push 0
mov edi, dword [ebp + 8]
push edi
push eax
call fcn.10036aa0
add esp, 0xc
mov ecx, ebx
mov edx, eax
push 0xfffffffffffffff9
push esi
call fcn.1004f010
jmp 0x1003bada
mov edx, dword [esi + 8]
mov ecx, dword [esp + 8]
mov edi, dword [ebp + 8]
push edi
push 0
call fcn.101682e0
jmp 0x1003bada
mov ebx, dword [esp + 4]
mov al, byte [ebx + 0x17]
mov byte [esp + 0x10], al
xor eax, eax
mov edi, dword [esp + 8]
mov ecx, edi
mov edx, 0x15
push eax
push eax
push dword [esi + 0x1c]
call fcn.10036aa0
add esp, 0xc
mov dword [esp + 0xc], eax
mov byte [ebx + 0x17], 0
mov edx, dword [esi + 0xc]
mov ecx, ebx
push dword [ebp + 8]
call fcn.1003b930
add esp, 4
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x10]
mov byte [ebx + 0x17], al
mov ecx, dword [edi]
mov eax, dword [edi + 0x6c]
cmp byte [ecx + 0x53], 0
mov ecx, 0x101ddee0
jne 0x1003cca0
lea ecx, [eax - 1]
mov edx, dword [esp + 0xc]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 8]
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
cmp dword [esp + 0xc], 0
jns 0x1003ccb6
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x6c]
dec eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
mov ecx, dword [eax]
mov eax, 0x101ddee0
cmp byte [ecx + 0x53], 0
jne 0x1003ccd8
mov eax, dword [esp + 0xc]
lea eax, [eax + eax*4]
shl eax, 2
mov ecx, dword [esp + 8]
add eax, dword [ecx + 0x68]
mov ecx, dword [esp + 0x38]
mov dword [eax + 0xc], ecx
jmp 0x1003bcc4
mov edx, dword [esi + 0xc]
cmp dword [edx + 0x1c], 0
jne 0x1003ccfc
mov ecx, dword [esp + 4]
call fcn.1003eba0
mov ecx, dword [esi + 0xc]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x1003cf18
mov ecx, dword [esi + 0xc]
mov dl, byte [ecx]
cmp dl, 0xaf
jne 0x1003cd14
mov dl, byte [ecx + 2]
cmp dl, 0x89
je 0x1003cef7
cmp dl, 0xb0
jne 0x1003cf27
add ecx, 0x14
jmp 0x1003cefd
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x60]
mov ecx, dword [esp + 4]
push eax
call fcn.10045140
add esp, 4
lea ecx, [esi + 0x10]
mov edx, dword [ecx]
lea ecx, [edx + 0xc]
test byte [edx + 5], 0x10
jne 0x1003cd45
mov ecx, dword [edx + 8]
mov cl, byte [ecx + 4]
xor ebx, ebx
mov byte [esp + 0xc], cl
test cl, cl
setne bl
mov cl, byte [esi + 2]
mov byte [esp + 0x10], cl
mov esi, dword [esp + 8]
mov ecx, esi
mov edx, 0x58
push ebx
push dword [ebp + 8]
push eax
call fcn.10036aa0
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x53], 0
jne 0x1003bcc4
cmp byte [esp + 0xc], 0
sete cl
cmp byte [esp + 0x10], 0x2d
sete dl
xor dl, cl
movzx ecx, dl
mov edx, dword [esp + 8]
mov edx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov byte [edx + eax*4 + 1], 0xfd
mov dword [edx + eax*4 + 0x10], ecx
jmp 0x1003bcc4
mov edx, dword [esi + 0xc]
mov al, byte [edx]
cmp al, 0x9a
je 0x1003cee2
cmp al, 0x98
je 0x1003cf52
lea edx, [esp + 0x70]
mov byte [edx], 0x9a
mov dword [edx + 4], 0x4400
mov dword [edx + 8], 0
lea eax, [esp + 0x60]
mov ebx, dword [esp + 4]
mov ecx, ebx
push eax
call fcn.10045140
add esp, 4
mov edi, eax
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x5c]
mov ecx, ebx
push eax
call fcn.10045140
add esp, 4
mov ecx, dword [esp + 8]
mov edx, 0x6b
push dword [ebp + 8]
push edi
jmp 0x1003c8ea
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 4]
push dword [ebp + 8]
call fcn.1003b930
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x1003cef1
movzx ecx, word [esi + 0x20]
test cx, cx
js 0x1003cf2c
mov eax, dword [eax + 4]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*4]
add esi, 0xd
mov al, byte [esi]
cmp al, 0x42
jl 0x1003c619
movzx eax, al
lea esi, [eax + eax]
add esi, 0x101a1210
mov ebx, dword [esp + 8]
mov ecx, ebx
mov edx, 0x5c
push 0
push 1
push edi
call fcn.10036aa0
add esp, 0xc
mov ecx, ebx
mov edx, eax
push 0xffffffffffffffff
jmp 0x1003cc0d
mov eax, dword [esp + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
mov eax, 0x101ddee0
cmp byte [edx + 0x53], 0
jne 0x1003ceb0
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], 0x5b
jne 0x1003c60c
mov word [eax + 2], di
jmp 0x1003c60c
cmp byte [esi + 1], 0x45
jne 0x1003c616
xor eax, eax
mov ecx, dword [esp + 8]
mov edx, 0x54
push eax
push eax
mov edi, dword [ebp + 8]
push edi
jmp 0x1003cb8d
mov ecx, dword [esp + 4]
mov edi, dword [ebp + 8]
push edi
push 1
jmp 0x1003bad5
inc esi
jmp 0x1003ce54
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x1003cf18
push ecx
push eax
push str._d_columns_assigned__d_values
push dword [esp + 0x10]
call fcn.100394d0
add esp, 0x10
mov eax, dword [esi + 0xc]
movsx edi, word [esi + 0x20]
add edi, dword [eax + 0x1c]
jmp 0x1003c619
xor ecx, ecx
inc ecx
jmp 0x1003cf01
mov al, 0x44
jmp 0x1003ce5e
push edi
push str.unknown_function:__s__
push dword [esp + 0xc]
call fcn.100394d0
jmp 0x1003c4bf
mov eax, dword [esi + 0x2c]
mov edi, dword [eax + 0x38]
jmp 0x1003c619
mov edx, dword [edx + 8]
mov ecx, dword [esp + 8]
mov edi, dword [ebp + 8]
push edi
push 1
jmp 0x1003cc25
mov ecx, dword [ebx + 8]
mov dl, byte [ecx]
cmp dl, 0xa8
je 0x1003cf77
cmp dl, 0xa6
jne 0x1003bd29
and al, 0xc0
mov byte [ecx + 2], al
jmp 0x1003bd29
xor eax, eax
mov ecx, dword [esp + 8]
mov edx, 0x54
push eax
push eax
push dword [ebp + 8]
jmp 0x1003c8eb
cmp dword [esp + 0xc], 1
jne 0x1003d93c
mov eax, dword [esp + 4]
mov al, byte [eax + 0x13]
test al, al
jne 0x1003d16c
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x2c]
inc ecx
mov dword [esp + 0x1c], ecx
mov dword [eax + 0x2c], ecx
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x14]
jmp 0x1003bea9
mov dword [esp + 0x10], ebx
mov ecx, dword [ebx + 4]
mov dword [esp + 0xc], ecx
test di, di
jle 0x1003d188
mov ecx, dword [esp + 0xc]
lea esi, [ecx + 0x10]
xor ecx, ecx
mov ebx, edi
mov dl, byte [esi]
and dl, 0x20
cmp dl, 1
adc cx, 0
add esi, 0x14
dec ebx
jne 0x1003cfef
mov esi, edi
lea edx, [esi + esi*4]
mov ebx, dword [esp + 0xc]
test byte [ebx + edx*4 + 0x10], 0x20
jne 0x1003d0ca
mov ebx, dword [esp + 0x10]
jmp 0x1003bc71
mov ecx, dword [esp + 4]
cmp dword [ecx + 0x24], 0
jne 0x1003bcc4
push 1
push eax
push str.sub_select_returns__d_columns___expected__d
push dword [esp + 0x10]
call fcn.100394d0
jmp 0x1003d22e
mov eax, dword [esp + 4]
cmp dword [eax + 0x78], 0
je 0x1003d236
mov al, byte [esi + 1]
cmp al, 2
jne 0x1003d06a
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x74]
test eax, eax
cmove eax, ecx
mov byte [eax + 0x15], 1
mov al, byte [esi + 1]
cmp al, 4
jne 0x1003d20c
mov esi, dword [esi + 8]
xor edi, edi
mov ebx, dword [esp + 8]
mov ecx, ebx
mov edx, 0x44
push edi
push 4
push edi
call fcn.10036aa0
add esp, 0xc
mov ecx, ebx
mov edx, eax
push edi
push esi
call fcn.1004f010
jmp 0x1003d7eb
dec eax
cmp eax, 4
jbe switch.0x1003d191
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 8]
mov ecx, dword [esp + 4]
push dword [ebp + 8]
call fcn.1003b930
jmp 0x1003ca41
mov eax, 0x101ddee0
jmp 0x1003c201
sub esi, ecx
mov ebx, dword [esp + 0x10]
add si, word [ebx + 0x2c]
mov ecx, esi
jmp 0x1003bc71
xor edi, edi
mov ebx, dword [esp + 8]
mov ecx, ebx
mov dword [esp + 0x10], edx
mov edx, 0x45
push edi
mov eax, dword [ebp + 8]
push eax
push 1
call fcn.10036aa0
add esp, 0xc
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x60]
mov ecx, dword [esp + 4]
push eax
call fcn.10045140
add esp, 4
mov ecx, ebx
mov edx, dword [esp + 0x10]
push edi
push edi
push eax
call fcn.10036aa0
add esp, 0xc
mov esi, eax
mov ecx, ebx
mov edx, 0x45
push edi
push dword [ebp + 8]
push edi
call fcn.10036aa0
add esp, 0xc
mov edx, dword [ebx]
mov eax, dword [ebx + 0x6c]
mov ecx, 0x101ddee0
cmp byte [edx + 0x53], 0
jne 0x1003d15b
lea ecx, [eax - 1]
test esi, esi
cmovns ecx, esi
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 8]
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
jmp 0x1003bcc4
mov ebx, dword [esp + 0xc]
jmp 0x1003bd86
dec al
mov ecx, dword [esp + 4]
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x94]
mov dword [esp + 0x1c], eax
jmp 0x1003cfbf
xor esi, esi
xor ecx, ecx
jmp 0x1003d003
jmp dword [eax*4 + 0x101a3f88]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x1c]
cmp byte [eax], 0xa6
jne 0x1003d45e
mov edx, dword [eax + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
call fcn.10037010
jmp 0x1003d3d2
mov ecx, dword [edx + 0x14]
add ecx, 0x1c
jmp 0x1003d1d6
xor eax, eax
mov ecx, edi
mov edx, 0x45
push eax
jmp 0x1003c8e7
lea ecx, [edx + 0x14]
mov ecx, dword [ecx]
cmp dword [ecx], 2
mov edx, dword [esp + 0x20]
jl 0x1003bf03
cmp al, 0xaf
jne 0x1003d1f0
mov eax, dword [esp + 0x20]
mov al, byte [eax + 2]
cmp al, 0x89
je 0x1003d311
cmp al, 0xb0
jne 0x1003d378
mov eax, dword [esp + 0x20]
add eax, 0x14
jmp 0x1003d31b
xor ebx, ebx
inc ebx
xor edi, edi
mov ecx, dword [esp + 4]
cmp dword [ecx + 0x78], edi
movsx eax, al
mov edx, 0x713
cmove edx, ebx
push edi
push edi
push dword [esi + 8]
push eax
call fcn.100562f0
add esp, 0x10
jmp 0x1003bcc4
mov eax, dword [esp + 4]
cmp byte [eax + 0x12], 0
jne 0x1003d050
push str.RAISE___may_only_be_used_within_a_trigger_program
push dword [esp + 8]
call fcn.100394d0
add esp, 8
xor edi, edi
jmp 0x1003c619
push dword [esi + 8]
push str.misuse_of_aggregate:__s__
jmp 0x1003cf39
mov ecx, dword [esp + 8]
mov edx, 0x4e
push 0
push dword [ebp + 8]
push eax
call fcn.10036aa0
add esp, 0xc
jmp 0x1003c32f
not eax
jmp 0x1003c0be
mov dword [esp + 0x18], ebx
test di, di
jle 0x1003d46f
mov edi, dword [esp + 0x18]
lea edi, [edi*4]
lea edi, [edi + edi*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 0
xor edi, edi
mov ebx, dword [esp + 0xc]
mov bl, byte [ecx + ebx + 0x10]
and bl, 0x20
cmp bl, 1
adc di, 0
mov ebx, dword [esp + 0xc]
add ebx, 0x14
mov dword [esp + 0xc], ebx
cmp dword [esp + 0x10], ebx
jne 0x1003d2b5
jmp 0x1003d479
lea edx, [ecx + esi*4]
bt eax, 8
jb 0x1003d3db
lea esi, [ecx + esi*4]
add esi, 0x10
mov ecx, eax
or ecx, 0x100
mov word [esi], cx
test al, al
js 0x1003d927
and ecx, 0xfe7f
mov word [esi], cx
jmp 0x1003c619
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov eax, dword [eax]
mov edi, dword [eax]
mov eax, dword [esi + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 4]
mov edx, dword [eax + 0x38]
mov ecx, edx
mov dword [esp + 0x34], edx
lea ecx, [edx - 1]
mov dword [esp + 0x30], ecx
mov dword [eax + 0x38], ecx
cmp dword [eax + 0x24], 0
jne 0x1003bcc4
mov eax, dword [esp + 0x24]
mov al, byte [eax]
mov ecx, eax
cmp al, 0xaf
jne 0x1003d35a
mov ecx, dword [esp + 0x24]
mov cl, byte [ecx + 2]
cmp cl, 0x89
je 0x1003d49c
cmp cl, 0xb0
jne 0x1003d7f3
mov ecx, dword [esp + 0x24]
add ecx, 0x14
jmp 0x1003d4a6
xor edi, edi
inc edi
jmp 0x1003d31f
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 8]
mov ecx, dword [esp + 4]
push 0xffffffffffffffff
push dword [eax + 0x1c]
call fcn.1004cfb0
jmp 0x1003d3cf
xorps xmm0, xmm0
lea edx, [esp + 0x70]
movaps xmmword [edx], xmm0
movaps xmmword [edx + 0x10], xmm0
movaps xmmword [edx + 0x20], xmm0
mov dword [edx + 0x30], 0
mov byte [edx], 0x9c
mov eax, dword [esp + 0x14]
mov dword [edx + 0x14], eax
jmp 0x1003d0af
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 8]
xor ecx, ecx
push 0xffffffffffffffff
push dword [eax + 0x1c]
call fcn.10005480
add esp, 8
mov ecx, dword [esp + 0xc]
jmp 0x1003cb81
push dword [edx]
push str.generated_column_loop_on___s_
push dword [esp + 0xc]
call fcn.100394d0
add esp, 0xc
jmp 0x1003d255
lea eax, [ecx + ecx*4]
mov edi, dword [edi + eax*4 + 0xc]
jmp 0x1003c619
lea ebx, [ecx + ecx*4]
mov ecx, dword [edi + ebx*4]
mov dword [esp + 4], ecx
movsx esi, word [edi + ebx*4 + 0x12]
mov ecx, dword [esp + 8]
mov edx, 0x5b
push dword [ebp + 8]
push esi
push dword [eax + 8]
call fcn.10036aa0
add esp, 0xc
movzx eax, word [edi + ebx*4 + 0x10]
test ax, ax
js 0x1003c616
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 0xd], 0x45
je 0x1003cecc
jmp 0x1003c616
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x30]
jmp 0x1003c743
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, 0x48
push eax
jmp 0x1003cb88
mov dword [esp + 0x18], 0
xor edi, edi
mov ebx, dword [esp + 0x18]
lea ebx, [ebx + ebx*4]
test byte [ecx + ebx*4 + 0x10], 0x20
je 0x1003c662
mov ebx, dword [esp + 0x18]
sub ebx, edi
add bx, word [edx + 0x2c]
mov edi, ebx
jmp 0x1003c662
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
cmp edi, dword [ecx]
sete cl
test cl, cl
je case.0x1003b98c.80
mov ecx, dword [esi + 4]
mov dword [esp + 0x28], ecx
mov ebx, dword [esp + 0x10]
cmp bl, 0x37
movzx edx, bl
mov ecx, 0x38
mov dword [esp + 0x48], edx
cmovne ecx, edx
cmp bl, 0x39
mov edx, 0x36
cmovne edx, ecx
cmp bl, 0x34
mov ecx, 0x35
cmovne ecx, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x44], 0
mov ecx, dword [esp + 0x20]
cmp byte [ecx], 0x89
mov dword [esp + 0x40], 0
jne 0x1003d51c
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x20]
call fcn.1003eba0
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
mov al, byte [eax]
shr dword [esp + 0x28], 9
cmp al, 0x89
jne 0x1003d536
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x24]
call fcn.1003eba0
mov dword [esp + 0x44], eax
and dword [esp + 0x28], 1
mov ecx, dword [esp + 8]
mov edx, 0x45
push 0
push dword [ebp + 8]
push 1
call fcn.10036aa0
add esp, 0xc
lea eax, [edi - 1]
mov dword [esp + 0x4c], eax
neg edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x2c], 0
mov dword [esp + 0xc], 0
xor eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], eax
cmp dword [esp + 0x2c], 0
je 0x1003d5b9
mov eax, dword [esp + 8]
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
mov ecx, 0x101ddee0
cmp byte [edx + 0x53], 0
jne 0x1003d5b6
lea ecx, [eax - 1]
mov edx, dword [esp + 0x2c]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 8]
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
mov ebx, dword [esp + 4]
mov ecx, ebx
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x48]
mov esi, dword [esp + 0x18]
push esi
call fcn.10168420
add esp, 0x10
mov edi, eax
mov ecx, ebx
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x4c]
push esi
call fcn.10168420
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x6c]
mov dword [esp + 0x2c], eax
movzx eax, byte [esp + 0x1c]
mov edx, dword [esp + 0x68]
mov ecx, ebx
push dword [esp + 0x28]
push dword [esp + 0x18]
push dword [esp + 0x38]
mov dword [esp + 0x60], esi
push esi
mov dword [esp + 0x68], edi
push edi
mov dword [esp + 0x64], eax
push eax
push dword [esp + 0x7c]
call fcn.10045250
add esp, 0x1c
mov eax, dword [esp + 0x70]
test eax, eax
je 0x1003d663
mov ecx, dword [esp + 4]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x1003d663
mov edx, ecx
inc dl
mov ebx, dword [esp + 4]
mov byte [ebx + 0x13], dl
mov dword [ebx + ecx*4 + 0x94], eax
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x1003d68a
mov ecx, dword [esp + 4]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x1003d68a
mov edx, ecx
inc dl
mov ebx, dword [esp + 4]
mov byte [ebx + 0x13], dl
mov dword [ebx + ecx*4 + 0x94], eax
cmp byte [esp + 0x1c], 0x38
je 0x1003d698
cmp byte [esp + 0x1c], 0x36
jne 0x1003d6bc
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x4c]
jge 0x1003d6bc
mov ecx, dword [esp + 8]
mov edx, 0x3a
xor eax, eax
push eax
push eax
push eax
call fcn.10036aa0
add esp, 0xc
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc]
lea ebx, [eax + ecx]
cmp byte [esp + 0x18], 0
je 0x1003d6e0
mov ecx, dword [esp + 8]
mov edx, 0x45
xor eax, eax
push eax
push dword [ebp + 8]
push eax
jmp 0x1003d6f4
mov ecx, dword [esp + 8]
mov edx, 0x59
push dword [esp + 0x54]
push dword [ebp + 8]
push dword [esp + 0x60]
call fcn.10036aa0
add esp, 0xc
cmp ebx, 0xffffffff
je 0x1003d74f
cmp byte [esp + 0x1c], 0x35
jne 0x1003d726
mov ecx, dword [esp + 8]
mov edx, 0x33
push 0
push dword [esp + 0x34]
push dword [ebp + 8]
call fcn.10036aa0
add esp, 0xc
mov al, 0x35
jmp 0x1003d74b
mov ecx, dword [esp + 8]
mov edx, 0xb
xor eax, eax
push eax
push dword [esp + 0x34]
push eax
call fcn.10036aa0
add esp, 0xc
cmp ebx, 0xfffffffe
mov eax, dword [esp + 0x50]
cmove eax, dword [esp + 0x48]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0xc]
inc edx
mov eax, dword [esp + 0x3c]
mov ecx, edx
mov dword [esp + 0xc], edx
add eax, edx
jne 0x1003d570
mov eax, dword [esp + 8]
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
mov ecx, 0x101ddee0
cmp byte [edx + 0x53], 0
jne 0x1003d793
lea ecx, [eax - 1]
mov edx, dword [esp + 0x2c]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 8]
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0xc]
neg dword [esp + 0x34]
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x1003d891
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x6c]
mov ecx, dword [ecx + 0x40]
mov edx, dword [esp + 0x34]
mov dword [ecx + edx*4], eax
cmp byte [esp + 0x10], 0x34
jne 0x1003bcc4
mov ecx, dword [esp + 8]
mov edx, 0x13
push 0
mov eax, dword [ebp + 8]
push eax
jmp 0x1003c8ea
push str.row_value_misused
push dword [esp + 8]
call fcn.100394d0
add esp, 8
jmp 0x1003bcc4
cmp edi, 1
jmp 0x1003d4aa
xor eax, eax
mov ecx, dword [esp + 8]
mov edx, 0x48
push eax
push dword [ebp + 8]
push eax
call fcn.10036aa0
jmp 0x1003cb60
push esi
call fcn.10037c90
add esp, 4
jmp 0x1003bcc4
xor eax, eax
mov esi, dword [esp + 0x28]
mov ecx, esi
mov edx, dword [esp + 0x1c]
push eax
push eax
call fcn.10001c40
add esp, 8
mov edi, eax
cmp byte [esi + 0x53], 0
je 0x1003d8a6
test edi, edi
je 0x1003bcc4
mov ecx, dword [esp + 0x28]
mov edx, edi
call fcn.10139110
jmp 0x1003bcc4
mov ecx, dword [esp + 0x28]
call fcn.10139110
jmp 0x1003c849
mov eax, 0x101ddee0
jmp 0x1003c86c
mov edx, ebx
push eax
call fcn.10037c90
add esp, 4
jmp 0x1003c98d
mov edx, ebx
push eax
call fcn.10037c90
add esp, 4
jmp 0x1003c9c1
mov edx, dword [esp + 8]
push dword [esp + 0x34]
call fcn.10037c90
add esp, 4
jmp 0x1003d7be
lea eax, [esp + 0x60]
mov ecx, dword [esp + 4]
mov esi, edi
mov edx, edi
push eax
call fcn.100655c0
add esp, 4
test edi, edi
je 0x1003d8f9
mov ecx, edi
mov edx, dword [ecx + 4]
test edx, 0x41000
je 0x1003d8e5
bt edx, 0x12
jb 0x1003d8d7
add ecx, 0xc
jmp 0x1003d8dd
mov ecx, dword [ecx + 0x14]
add ecx, 8
mov ecx, dword [ecx]
test ecx, ecx
jne 0x1003d8c1
jmp 0x1003d8f9
mov bl, byte [ecx]
mov byte [ecx + 2], bl
mov byte [ecx], 0xaf
mov dword [ecx + 0x1c], eax
and edx, 0xffffefff
mov dword [ecx + 4], edx
xorps xmm0, xmm0
lea ecx, [esp + 0x70]
movaps xmmword [ecx], xmm0
xor eax, eax
mov dword [ecx + 0x30], eax
movaps xmmword [ecx + 0x20], xmm0
movaps xmmword [ecx + 0x10], xmm0
mov byte [ecx], 0x35
mov dword [esp + 0x30], ecx
mov dword [ecx + 0xc], edi
mov dword [esp + 0x60], eax
mov ebx, dword [esp + 0x20]
jmp 0x1003c70e
mov ecx, dword [esp + 4]
push edi
call fcn.10168230
add esp, 4
movzx ecx, word [esi]
jmp 0x1003d303
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
jmp 0x1003be7b