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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xe4
mov eax, dword [0x10094610]
xor eax, esp
mov dword [esp + 0xe0], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
xor eax, eax
push edi
mov edi, dword [ebp + 0x10]
inc eax
xor edx, edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
cmp ebx, edx
je 0x10042329
cmp byte [ecx + 0x1e], dl
jne 0x10042329
cmp dword [esi + 0x40], edx
jne 0x10042329
push edx
push edx
push edx
push 0x15
call fcn.100325f9
add esp, 0x10
test eax, eax
je 0x10041616
xor eax, eax
inc eax
jmp 0x10042329
push 0x2c
lea eax, [esp + 0x7c]
push 0
push eax
call fcn.10066c10
add esp, 0xc
cmp byte [edi], 4
ja 0x10041646
push dword [esp + 0x28]
mov edi, dword [ebx + 0x18]
call fcn.1002e606
and dword [ebx + 0x18], 0
mov eax, 0xfffe
and word [ebx + 6], ax
pop ecx
push 0
push ebx
push esi
call fcn.1004126e
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 8]
add esp, 0xc
cmp dword [esi + 0x40], 0
mov dword [esp + 0x54], eax
jne 0x10042302
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x1e], 0
jne 0x10042302
movzx eax, word [ebx + 6]
shr eax, 2
and eax, 1
mov edi, esi
mov dword [esp + 0x4c], eax
call fcn.1003f293
mov dword [esp + 0x10], eax
test eax, eax
je 0x10042302
and dword [esp + 0x1c], 0
jmp 0x100417bc
mov eax, dword [esp + 0x54]
movsx ecx, word [eax]
cmp dword [esp + 0x1c], ecx
jge 0x100417c6
mov ecx, dword [esp + 0x1c]
imul ecx, ecx, 0x38
lea eax, [ecx + eax + 8]
mov dword [esp + 0x34], eax
mov eax, dword [eax + 0x10]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x100417b8
mov eax, dword [esp + 0x34]
cmp byte [eax + 0x14], 0
jne 0x100417b8
and dword [esp + 0x14], 0
lea eax, [esp + 0x14]
mov ecx, ebx
call fcn.1002d92f
mov eax, dword [esp + 0x14]
add dword [esi + 0x220], eax
mov eax, dword [esp + 0x3c]
movzx edi, word [eax + 6]
shr edi, 2
and edi, 1
push edi
push dword [esp + 0x50]
mov eax, ebx
push dword [esp + 0x24]
push esi
call fcn.1004070e
add esp, 0x10
test eax, eax
je 0x10041738
test edi, edi
je 0x10041731
or word [ebx + 6], 4
mov dword [esp + 0x4c], 1
or dword [esp + 0x1c], 0xffffffff
jmp 0x10041779
mov edi, dword [esp + 0x34]
mov eax, dword [edi + 0x18]
and dword [esp + 0xe4], 0
and dword [esp + 0xe8], 0
mov dword [esp + 0xe0], eax
lea eax, [esp + 0xdc]
push eax
push dword [esp + 0x40]
mov word [esp + 0xe4], 9
push esi
call fcn.100415a2
add esp, 0xc
mov byte [edi + 0x14], 1
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x1e], 0
jne 0x10042302
and dword [esp + 0x14], 0
lea eax, [esp + 0x14]
mov ecx, ebx
call fcn.1002d92f
mov eax, dword [esp + 0x14]
sub dword [esi + 0x220], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x40]
cmp byte [eax], 4
jbe 0x100417b8
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x30], eax
inc dword [esp + 0x1c]
cmp dword [ebx + 0x1c], 0
je 0x100416a3
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx]
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x74], eax
movzx eax, word [ebx + 6]
and eax, 1
cmp dword [ebx + 0x1c], 0
mov dword [esp + 0x60], ecx
mov dword [esp + 0x14], eax
je 0x10041842
cmp dword [ebx + 0x24], 0
jne 0x1004182f
xor ecx, ecx
xor edx, edx
mov eax, ebx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ebx
mov ecx, eax
mov eax, dword [eax + 0x1c]
inc edx
test eax, eax
jne 0x100417fe
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x58]
test eax, eax
je 0x1004182f
cmp edx, eax
jle 0x1004182f
push str.too_many_terms_in_compound_SELECT
push esi
call fcn.100133ac
pop ecx
pop ecx
jmp 0x1004160e
push dword [esp + 0x40]
mov edx, ebx
mov ecx, esi
call fcn.1003f451
pop ecx
jmp 0x10042329
cmp dword [ecx], 1
mov eax, dword [esp + 0x40]
movzx eax, byte [eax]
jle 0x10041859
push eax
push esi
call fcn.1003e5c8
pop ecx
pop ecx
jmp 0x1004185b
xor eax, eax
test eax, eax
jne 0x10042302
mov al, byte [ebx + 6]
and al, 5
cmp al, 1
jne 0x10041894
mov ebx, dword [ebx]
push 0
push dword [esp + 0x2c]
call fcn.1002e177
pop ecx
pop ecx
mov ecx, dword [esp + 0x44]
mov dword [ecx + 0x10], eax
mov dword [esp + 0x24], eax
mov eax, 0xfffe
and word [ecx + 6], ax
and dword [esp + 0x14], 0
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
mov edi, dword [eax + 0x10]
mov ebx, esi
call fcn.1003064f
test eax, eax
jne 0x100418bd
mov eax, dword [esp + 0x28]
test byte [eax + 0xc], 0x20
jne 0x100418bd
and dword [esp + 0x30], 0
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
xor edi, edi
cmp esi, edi
je 0x100418ff
push esi
push ebx
call fcn.1003e933
mov ecx, dword [ebx + 0x44]
push 0xfffffffffffffff0
push eax
mov dword [esi + 8], ecx
inc dword [ebx + 0x44]
mov eax, dword [esi]
push edi
add eax, 2
push eax
push dword [esi + 8]
push 0x29
push dword [esp + 0x30]
call fcn.1002307f
mov esi, dword [esp + 0x68]
add esp, 0x24
mov dword [esp + 0x48], eax
mov dword [esi + 0x40], eax
jmp 0x10041908
or dword [esp + 0x48], 0xffffffff
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
cmp byte [eax], 9
jne 0x10041929
mov ecx, dword [esp + 0x60]
push edi
push dword [ecx]
push dword [eax + 4]
mov eax, dword [esp + 0x1c]
push 0x29
call fcn.10022fe3
add esp, 0x10
mov eax, dword [esp + 0x10]
call fcn.100230e0
push eax
mov dword [esp + 0xb8], eax
push esi
mov eax, ebx
call fcn.1003f2bc
pop ecx
pop ecx
cmp dword [esp + 0x14], edi
je 0x1004197a
mov edi, dword [ebx + 0x44]
lea eax, [edi + 1]
mov dword [ebx + 0x44], eax
push dword [esi]
mov dword [esp + 0xa8], edi
push ebx
call fcn.1003e933
push 0xfffffffffffffff0
push eax
push 0
push 0
push edi
push 0x29
push dword [esp + 0x30]
call fcn.1002307f
add esp, 0x24
jmp 0x10041982
or dword [esp + 0xa4], 0xffffffff
cmp dword [esp + 0x4c], 0
mov edx, dword [esp + 0x24]
jne 0x10041a00
test edx, edx
jne 0x10041a04
push edx
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x60]
push dword [esp + 0x60]
push ebx
call fcn.1004866b
mov edi, eax
add esp, 0x14
test edi, edi
je 0x10042302
cmp dword [esp + 0x48], 0
jl 0x100419d4
cmp dword [esp + 0x30], 0
jne 0x100419d4
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
push 1
call fcn.100233bf
or dword [esi + 0x40], 0xffffffff
pop ecx
push dword [edi + 0x14]
mov eax, dword [esp + 0x44]
push dword [edi + 0x10]
push 0xffffffffffffffff
push dword [esp + 0x3c]
push 0
push 0
push dword [esp + 0x78]
push esi
push ebx
call fcn.1003e5ef
add esp, 0x24
call fcn.10048f0a
jmp 0x100422b4
test edx, edx
je 0x10041a38
mov esi, dword [esi]
mov eax, dword [esi]
mov esi, dword [esi + 0xc]
test eax, eax
jle 0x10041a1f
lea ecx, [esi + 0x10]
xor esi, esi
mov word [ecx], si
dec eax
add ecx, 0x14
test eax, eax
jg 0x10041a12
mov eax, dword [edx]
mov ecx, dword [edx + 0xc]
test eax, eax
jle 0x10041a38
add ecx, 0x10
xor edx, edx
mov word [ecx], dx
dec eax
add ecx, 0x14
test eax, eax
jg 0x10041a2b
mov eax, dword [esp + 0x10]
call fcn.100230e0
mov dword [esp + 0x50], eax
xor eax, eax
push 9
pop ecx
lea edi, [esp + 0xb8]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xbc], eax
lea eax, [esp + 0x78]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xb8], ebx
test eax, eax
je 0x10041a84
mov eax, dword [eax]
inc eax
mov dword [esp + 0x84], eax
jmp 0x10041a8c
and dword [esp + 0x84], 0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x80], eax
lea eax, [esp + 0xb8]
push eax
call fcn.10030948
mov esi, dword [esp + 0x34]
pop ecx
lea eax, [esp + 0xb8]
push eax
call fcn.10030948
xor edi, edi
pop ecx
cmp dword [esp + 0x74], edi
je 0x10041ad4
push dword [esp + 0x74]
lea eax, [esp + 0xbc]
call fcn.10030921
pop ecx
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x94], eax
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x9c], edi
jle 0x10041b1e
mov eax, dword [esp + 0x98]
mov eax, dword [edi + eax]
mov esi, dword [eax + 0x10]
lea ecx, [esp + 0xb8]
push ecx
call fcn.10030948
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
add edi, 0x10
pop ecx
cmp eax, dword [esp + 0x9c]
jl 0x10041aef
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x1e], 0
jne 0x10042302
mov esi, dword [esp + 0x24]
test esi, esi
je 0x1004207a
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x7c], eax
inc eax
push esi
push ebx
mov dword [ebx + 0x44], eax
call fcn.1003e933
push 0xfffffffffffffff0
push eax
push 0
push dword [esp + 0x98]
mov dword [esp + 0x88], eax
push dword [esp + 0x94]
push 0x29
push dword [esp + 0x30]
call fcn.1002307f
mov dword [esp + 0x90], eax
add esp, 0x24
inc dword [ebx + 0x48]
mov eax, dword [ebx + 0x48]
lea edi, [eax + 1]
mov dword [esp + 0x3c], eax
lea eax, [edi + 1]
mov dword [esp + 0x48], eax
mov dword [ebx + 0x48], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], edi
call fcn.100230e0
inc dword [ebx + 0x48]
mov dword [esp + 0x68], eax
mov eax, dword [ebx + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
call fcn.100230e0
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x48]
lea ecx, [eax + 1]
add eax, dword [esi]
mov dword [esp + 0xac], ecx
lea ecx, [eax + 1]
mov dword [ebx + 0x48], eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi]
xor esi, esi
push esi
push edi
add ecx, eax
mov eax, dword [esp + 0x18]
push esi
push 7
mov dword [ebx + 0x48], ecx
call fcn.10022fe3
mov eax, dword [esp + 0x20]
push esi
push dword [esp + 0x50]
push esi
push 7
call fcn.10022fe3
mov eax, dword [esp + 0x30]
push esi
push dword [esp + 0x58]
push dword [esp + 0x3c]
push 2
call fcn.10022fe3
push esi
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x90]
push dword [esp + 0x90]
push ebx
call fcn.1004866b
add esp, 0x44
mov dword [esp + 0xb0], eax
cmp eax, esi
je 0x10042302
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x10041c58
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x10]
and dword [esp + 0x58], esi
mov dword [esp + 0x24], eax
jmp 0x10041dcb
mov edi, dword [eax]
mov edx, dword [esp + 0x8c]
lea eax, [edi + 1]
mov dword [esp + 0x58], 1
mov dword [esp + 0x2c], eax
mov dword [esp + 0x5c], eax
test edx, edx
jle 0x10041c91
mov ecx, dword [esp + 0x88]
add ecx, 0xc
cmp dword [ecx], eax
jl 0x10041c8b
inc dword [esp + 0x5c]
inc eax
add ecx, 0x18
dec edx
jne 0x10041c82
mov esi, dword [esp + 0x5c]
mov ecx, ebx
call fcn.100309c1
mov esi, eax
mov eax, ebx
call fcn.1002f2d2
mov eax, dword [esp + 0x24]
push 0
push esi
push ebx
call fcn.1002ff40
add esp, 0xc
push 0
lea eax, [esi + edi]
push eax
push dword [esp + 0x84]
mov eax, dword [esp + 0x1c]
push 0x35
call fcn.10022fe3
mov eax, dword [esp + 0x3c]
and dword [esp + 0x2c], 0
add esp, 0x10
cmp dword [esp + 0x8c], 0
mov dword [esp + 0x38], eax
jle 0x10041d55
add eax, esi
and dword [esp + 0x2c], 0
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x88]
add eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
cmp dword [eax + 0xc], ecx
jl 0x10041d3f
push dword [esp + 0x64]
mov edi, ebx
push dword [eax + 4]
push dword [eax + 8]
push dword [eax]
call fcn.1002f25c
add esp, 0x10
cmp dword [esp + 0x64], eax
je 0x10041d37
push 0
push dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x1c]
push 0xf
call fcn.10022fe3
add esp, 0x10
inc dword [esp + 0x38]
inc dword [esp + 0x64]
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
add dword [esp + 0x2c], 0x18
cmp eax, dword [esp + 0x8c]
jl 0x10041cf2
mov ecx, ebx
call fcn.10030971
mov edi, eax
mov eax, dword [esp + 0x10]
push edi
push dword [esp + 0x60]
push esi
push 0x1e
call fcn.10022fe3
mov eax, dword [esp + 0x20]
push 0
push edi
push dword [esp + 0x94]
push 0x46
call fcn.10022fe3
mov edx, edi
mov eax, ebx
call fcn.1003098d
mov edi, dword [esp + 0x7c]
mov ecx, esi
call fcn.100309e5
mov edi, dword [esp + 0xd0]
call fcn.10048f0a
mov eax, dword [esp + 0x30]
push 0
push dword [esp + 0x74]
push dword [esp + 0xa4]
push 0x40
call fcn.10022fe3
add esp, 0x30
mov eax, ebx
mov byte [esp + 0x79], 1
call fcn.1002f2d2
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x5c], eax
mov eax, ebx
call fcn.1002f2d2
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x38], eax
cmp dword [ecx], eax
jle 0x10041e50
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x58], 0
mov ecx, dword [esp + 0x4c]
je 0x10041e19
mov eax, dword [esp + 0x38]
add ecx, eax
push ecx
push eax
push dword [esp + 0x84]
mov eax, dword [esp + 0x1c]
push 0x1c
call fcn.10022fe3
add esp, 0x10
jmp 0x10041e3b
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov byte [esp + 0x78], 1
mov eax, dword [eax + 0xc]
lea edi, [edi + ecx]
mov ecx, dword [esp + 0x2c]
push dword [eax + ecx]
mov esi, ebx
call fcn.1002fe2f
pop ecx
inc dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
add dword [esp + 0x2c], 0x14
cmp ecx, dword [eax]
jl 0x10041def
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
push 0xfffffffffffffffa
push dword [esp + 0x74]
push dword [esi]
push dword [esp + 0x58]
push dword [esp + 0xbc]
push 0x18
push edi
call fcn.1002307f
mov eax, dword [edi + 0xc]
add esp, 0x1c
mov dword [esp + 0x70], eax
inc eax
push eax
push 0
push eax
push 0x19
mov eax, edi
call fcn.10022fe3
push dword [esp + 0xbc]
mov ebx, dword [esi]
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x34]
call fcn.1002f2f0
mov esi, dword [esp + 0x24]
add esp, 0x14
xor ebx, ebx
push ebx
push dword [esp + 0x6c]
mov eax, esi
push dword [esp + 0x50]
push 2
call fcn.10022fe3
push ebx
push dword [esp + 0x64]
mov eax, esi
push dword [esp + 0xc0]
push 0x71
call fcn.10022fe3
push ebx
push dword [esp + 0x58]
mov eax, esi
push dword [esp + 0x3c]
push 2
call fcn.10022fe3
mov eax, dword [esp + 0xa0]
mov edx, esi
call fcn.1002328b
lea eax, [esp + 0xa8]
push eax
push dword [esp + 0x54]
call fcn.10041400
push ebx
push dword [esp + 0x78]
mov eax, esi
push 1
push 7
call fcn.10022fe3
add esp, 0x48
cmp dword [esp + 0x58], ebx
je 0x10041f35
push ebx
push dword [esp + 0x60]
mov eax, esi
push dword [esp + 0x84]
push 0x43
call fcn.10022fe3
add esp, 0x10
jmp 0x10041f4f
mov edi, dword [esp + 0xb0]
call fcn.10048f0a
mov ecx, dword [esp + 0x6c]
push 1
mov eax, esi
call fcn.100233bf
pop ecx
push ebx
push dword [esp + 0x6c]
mov eax, esi
push dword [esp + 0x50]
push 2
call fcn.10022fe3
push ebx
push dword [esp + 0x64]
mov eax, esi
push ebx
push 1
call fcn.10022fe3
mov eax, dword [esi + 0xc]
push ebx
push dword [esp + 0xcc]
mov dword [esp + 0x94], eax
push 1
push 7
mov eax, esi
call fcn.10022fe3
push ebx
push ebx
push dword [esp + 0x80]
mov eax, esi
push 3
call fcn.10022fe3
mov edx, dword [esp + 0xa8]
add esp, 0x40
mov ecx, esi
call fcn.1002312c
mov eax, dword [esi + 0xc]
mov dword [esp + 0x68], eax
push ebx
add eax, 2
push eax
push dword [esp + 0x44]
mov eax, esi
push 0x71
call fcn.10022fe3
push ebx
push ebx
push dword [esp + 0x60]
mov eax, esi
push 3
call fcn.10022fe3
mov eax, dword [esp + 0x40]
lea edi, [esp + 0x98]
call fcn.100413b5
mov edi, dword [esp + 0x88]
push 8
inc edi
push edi
push dword [esp + 0x9c]
push dword [esp + 0x4c]
call fcn.100302ea
push dword [esp + 0x9c]
mov eax, dword [esp + 0x78]
push edi
push dword [esp + 0xdc]
push dword [esp + 0x6c]
push ebx
push ebx
push dword [eax]
push eax
push dword [esp + 0x70]
mov eax, dword [esp + 0x94]
call fcn.1003e5ef
add esp, 0x54
push ebx
push ebx
push dword [esp + 0x50]
mov eax, esi
push 3
call fcn.10022fe3
mov edx, dword [esp + 0x44]
mov ecx, esi
call fcn.1002312c
push dword [esp + 0x30]
lea edi, [esp + 0x8c]
call fcn.100412f3
add esp, 0x14
push ebx
push ebx
push dword [esp + 0x1c]
mov eax, esi
push 3
call fcn.10022fe3
mov ebx, dword [esp + 0x30]
add esp, 0x10
jmp 0x100422a5
mov esi, dword [esp + 0x44]
and dword [esp + 0x3c], 0
lea eax, [esp + 0x78]
push eax
mov eax, esi
call fcn.10040c57
mov edi, eax
pop ecx
test edi, edi
je 0x10042185
mov esi, dword [edi + 0x40]
mov ecx, dword [ebx]
call fcn.1003d9c5
and dword [esp + 0x14], 0
and dword [esp + 0x6c], 0
mov esi, eax
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x34], eax
inc eax
mov dword [ebx + 0x44], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x70], eax
mov eax, ebx
call fcn.10035755
push dword [edi]
mov ebx, dword [edi + 0x14]
mov eax, dword [esp + 0x24]
push 0
push esi
call fcn.10032677
mov eax, dword [edi + 0x10]
xor ebx, ebx
add esp, 0xc
cmp eax, ebx
je 0x10042120
mov ecx, dword [esp + 0x6c]
cmp ecx, ebx
je 0x100420f6
mov edx, dword [eax + 4]
cmp edx, dword [ecx + 4]
jge 0x100420f8
mov ecx, eax
mov eax, dword [eax + 0x20]
cmp eax, ebx
jne 0x100420ea
cmp ecx, ebx
je 0x10042120
mov eax, dword [ecx + 4]
cmp eax, dword [edi + 8]
jge 0x10042120
mov edi, dword [ecx + 0x14]
push ecx
push dword [esp + 0x24]
call fcn.10035a4d
pop ecx
pop ecx
mov dword [esp + 0x14], eax
jmp 0x10042124
mov edi, dword [esp + 0x70]
push esi
mov esi, dword [esp + 0x14]
push edi
push dword [esp + 0x3c]
mov eax, esi
push 0x26
call fcn.10022fe3
add esp, 0x10
cmp dword [esp + 0x14], ebx
je 0x10042152
push 0xfffffffffffffff0
push dword [esp + 0x18]
or eax, 0xffffffff
push esi
call fcn.100233fe
add esp, 0xc
mov eax, dword [esp + 0x98]
push ebx
push dword [eax + 8]
mov eax, esi
push dword [esp + 0x3c]
push 0x1f
call fcn.10022fe3
push ebx
push ebx
push dword [esp + 0x4c]
mov eax, esi
push 0x2b
call fcn.10022fe3
mov ebx, dword [esp + 0x40]
add esp, 0x20
jmp 0x1004225c
and dword [esp + 0x14], 0
mov eax, esi
call fcn.10040be9
mov byte [esp + 0x1b], al
test al, al
je 0x100421dd
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov esi, dword [esp + 0x28]
mov ebx, dword [eax + 0x10]
push 0
push esi
call fcn.1002e177
pop ecx
pop ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x3c], eax
test eax, eax
je 0x100421d9
cmp byte [esi + 0x1e], 0
jne 0x100421d9
cmp byte [esp + 0x1b], 1
mov edx, dword [eax + 0xc]
setne cl
mov byte [edx + 0xc], cl
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov byte [eax], 0x98
mov ebx, dword [esp + 0x20]
push ebx
lea edi, [esp + 0x7c]
call fcn.100412f3
movzx eax, byte [esp + 0x1f]
pop ecx
push eax
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x60]
push dword [esp + 0x60]
push ebx
call fcn.1004866b
mov edi, eax
xor esi, esi
add esp, 0x14
cmp edi, esi
jne 0x1004221f
push dword [esp + 0x28]
mov edi, dword [esp + 0x40]
call fcn.1002e606
pop ecx
jmp 0x10042302
lea eax, [esp + 0x78]
push eax
push ebx
call fcn.10041400
pop ecx
pop ecx
cmp dword [esp + 0x14], esi
jne 0x1004224c
cmp byte [esp + 0x1b], 0
je 0x1004224c
mov eax, dword [esp + 0x10]
push esi
push dword [edi + 0x14]
push esi
push 1
call fcn.10022fe3
add esp, 0x10
call fcn.10048f0a
lea edi, [esp + 0x78]
mov eax, ebx
call fcn.100413b5
push 8
push dword [esp + 0x54]
xor esi, esi
push dword [esp + 0x7c]
mov dword [esp + 0x3c], esi
push ebx
call fcn.100302ea
push dword [esp + 0x60]
mov eax, dword [esp + 0x58]
push dword [esp + 0x64]
push 0xffffffffffffffff
push esi
push esi
push esi
push dword [eax]
push eax
mov eax, dword [esp + 0x70]
push ebx
call fcn.1003e5ef
mov edi, dword [esp + 0x70]
add esp, 0x34
push dword [esp + 0x28]
call fcn.1002e606
mov esi, dword [esp + 0x14]
pop ecx
mov edx, dword [esp + 0x50]
mov ecx, esi
call fcn.1002312c
mov esi, dword [esp + 0x44]
cmp dword [esp + 0x30], 0
je 0x100422d3
mov eax, dword [esp + 0x60]
push dword [eax]
mov eax, dword [esp + 0x44]
push dword [esp + 0x14]
push esi
push ebx
call fcn.1003e9d2
add esp, 0x10
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0x10]
call fcn.1002312c
mov eax, dword [esp + 0x40]
and dword [esp + 0x2c], 0
cmp byte [eax], 5
jne 0x10042302
push dword [esp + 0x60]
push dword [esp + 0x58]
push ebx
call fcn.1003eded
add esp, 0xc
push dword [esp + 0x88]
push dword [esp + 0x2c]
call fcn.10011850
push dword [esp + 0xa0]
push dword [esp + 0x34]
call fcn.10011850
mov eax, dword [esp + 0x3c]
add esp, 0x10
mov ecx, dword [esp + 0xec]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100660ff
mov esp, ebp
pop ebp
ret