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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa0
mov eax, dword [ebp + 8]
push esi
mov esi, edx
mov dword [esp + 4], eax
mov edx, ecx
mov dword [esp + 0x30], esi
push edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], 0
mov edi, dword [edx + 8]
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], 0
test edi, edi
je 0x1008ad6e
nop dword [eax + eax]
mov ecx, 0x72
test esi, esi
je 0x1008987c
movzx ecx, byte [esi]
lea eax, [ecx - 0x13]
mov dword [esp + 0x18], ecx
cmp eax, 0x9a
ja case.0x10089895.21
movzx eax, byte [eax + 0x1008b14c]
jmp dword [eax*4 + 0x1008b0d4]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x34], esi
jmp 0x10089870
mov ecx, dword [esi + 0x28]
movsx eax, word [esi + 0x22]
cmp byte [ecx], 0
lea eax, [eax + eax*2]
jne 0x100898c1
mov ecx, dword [ecx + 0x1c]
mov eax, dword [ecx + eax*8 + 0x10]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [ecx + 1], 0
je case.0x10089895.162
mov edx, dword [ecx + 0x1c]
mov esi, dword [ecx + 8]
mov ecx, dword [edi + 0x6c]
mov edx, dword [edx + eax*8 + 0xc]
cmp dword [edi + 0x70], ecx
jg 0x100898f8
push dword [esp + 8]
mov ecx, edi
push edx
push esi
mov edx, 0x5a
call fcn.1006f360
mov eax, dword [esp + 0x14]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 8]
mov dword [eax + ecx*4], 0x5a
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, edx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test byte [esi + 4], 8
mov ecx, dword [esi + 0x1c]
je 0x10089a44
push dword [esp + 8]
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x14]
call fcn.10089820
movsx ecx, word [esi + 0x20]
add esp, 4
mov edx, eax
mov dword [esp + 0xc], edx
test ecx, ecx
js 0x10089967
mov eax, dword [esi + 0x2c]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 0xd]
jmp 0x10089969
mov al, 0x44
movsx eax, al
mov dword [esp + 0x14], eax
cmp eax, 0x41
je 0x10089a3c
mov esi, dword [esp + 8]
cmp edx, esi
je 0x100899cf
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x1008999e
push 0
push esi
push edx
mov edx, 0x4f
mov ecx, edi
call fcn.1006f360
add esp, 0xc
jmp 0x100899c9
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x4f
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, esi
mov dword [esp + 0xc], esi
mov esi, dword [edi + 0x6c]
cmp dword [edi + 0x70], esi
jg 0x100899ef
push 0
push 1
push edx
mov edx, 0x5b
mov ecx, edi
call fcn.1006f360
add esp, 0xc
mov esi, eax
jmp 0x10089a1e
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
mov edx, esi
push 0xffffffffffffffff
mov ecx, edi
lea eax, [eax*2 + 0x101ed63c]
push eax
call fcn.1006fdd0
mov edx, dword [esp + 0x14]
add esp, 8
mov eax, edx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test ecx, ecx
jns 0x10089a5c
mov ecx, dword [edx + 0x34]
test ecx, ecx
jns 0x10089a5b
movsx eax, word [esi + 0x20]
sub eax, ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
dec ecx
mov al, byte [esi + 0x26]
push dword [esp + 8]
mov edx, dword [esi + 0x2c]
mov byte [esp + 0x2b], al
movsx eax, word [esi + 0x20]
push eax
push ecx
mov ecx, edi
call fcn.100894a0
mov cl, byte [esp + 0x33]
add esp, 0xc
test cl, cl
je 0x1008b0c8
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x1008b0c8
movzx edx, cl
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 8]
mov edx, esi
mov ecx, dword [esp + 0x10]
push edi
push 0
call fcn.100892e0
add esp, 8
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.10086600
mov ecx, dword [edi + 0x6c]
mov edx, eax
cmp dword [edi + 0x70], ecx
jg 0x10089af7
push 0
push dword [esp + 0xc]
mov ecx, edi
push edx
mov edx, 0x46
call fcn.1006f360
mov eax, dword [esp + 0x14]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], edx
jmp 0x10089c00
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x1008b0c8
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x10089b23
sub edx, esi
and edx, 0x3fffffff
push 1
push edx
lea edx, [esp + 0x40]
call fcn.100518f0
jmp 0x1008a05f
mov eax, dword [esi + 8]
mov esi, dword [edi + 0x6c]
mov dword [esp + 0xc], eax
cmp dword [edi + 0x70], esi
jg 0x10089b6d
push 0
push dword [esp + 0xc]
mov edx, 0x6e
mov ecx, edi
push 0
call fcn.1006f360
add esp, 0xc
mov esi, eax
jmp 0x10089ba0
mov edx, dword [esp + 8]
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x6e
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x10]
mov edx, esi
mov ecx, edi
call fcn.1006fdd0
mov eax, dword [esp + 0x10]
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x10089be5
push 0
push dword [esp + 0xc]
mov edx, 0x49
mov ecx, edi
push 0
call fcn.1006f360
mov eax, dword [esp + 0x14]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x49
mov dword [eax + ecx*4 + 4], 0
mov edx, dword [esp + 8]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 8]
add edx, 2
jne 0x10089c2e
xor esi, esi
jmp 0x10089c42
mov esi, edx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10089c33
sub esi, ecx
and esi, 0x3fffffff
mov ecx, dword [edi]
dec esi
push esi
call fcn.100526b0
mov dword [esp + 0x10], eax
add esp, 4
mov eax, esi
mov esi, dword [edi + 0x6c]
cdq
sub eax, edx
mov edx, eax
sar edx, 1
cmp dword [edi + 0x70], esi
jg 0x10089c7d
push 0
push dword [esp + 0xc]
mov ecx, edi
push edx
mov edx, 0x4b
call fcn.1006f360
add esp, 0xc
mov esi, eax
jmp 0x10089cac
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 8]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff9
push dword [esp + 0x10]
mov edx, esi
mov ecx, edi
call fcn.1006fdd0
mov eax, dword [esp + 0x10]
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movsx eax, word [esi + 0x20]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0xc], eax
cmp dword [edi + 0x70], ecx
jg 0x10089cf4
push 0
push dword [esp + 0xc]
mov edx, 0x4c
mov ecx, edi
push eax
call fcn.1006f360
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x10089d2b
mov esi, dword [esp + 0xc]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 8]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x4c
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 8]
cmp byte [eax + 1], 0
je 0x1008b0c8
mov edx, dword [edx + 0xd8]
test edx, edx
jne 0x10089d46
xor esi, esi
jmp 0x10089d73
movsx ecx, word [esi + 0x20]
mov eax, 2
mov esi, dword [edx + 4]
mov dword [esp + 0xc], ecx
mov edi, dword [esp + 0xc]
lea ecx, [edx + eax*4]
cmp dword [ecx], edi
mov edi, dword [esp + 0x28]
je 0x10089d70
add eax, dword [ecx + 4]
cmp eax, esi
jl 0x10089d56
xor esi, esi
jmp 0x10089d73
lea esi, [ecx + 8]
mov dword [edx], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x51], 0
je 0x10089d97
push esi
or edx, 0xffffffff
call fcn.1006fb80
mov eax, dword [esp + 0xc]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xff
mov dword [eax + ecx*4 - 4], esi
mov eax, dword [esp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x1c]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push dword [esp + 8]
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x14]
call fcn.10089820
mov edx, dword [esp + 0xc]
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, edx
je 0x10089e33
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x10089dfc
push 0
push edx
push eax
mov edx, 0x4f
mov ecx, edi
call fcn.1006f360
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x10089e2f
mov esi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x4f
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esp + 0x14], edx
mov ecx, dword [esi + 8]
xor edx, edx
call fcn.10094e10
mov ecx, dword [edi + 0x6c]
movsx esi, al
cmp dword [edi + 0x70], ecx
jg 0x10089e68
push 0
push esi
push dword [esp + 0x10]
mov edx, 0x55
mov ecx, edi
call fcn.1006f360
mov eax, dword [esp + 0x20]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 8]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x55
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
mov edi, 0x80
cmp ecx, 0x2d
mov dword [esp + 0xc], edi
sete al
lea ecx, [eax + 0x34]
mov dword [esp + 0x18], ecx
jmp 0x10089ebd
xor edi, edi
mov edx, dword [esi + 0xc]
mov dword [esp + 0x14], edx
mov al, byte [edx]
cmp al, 0xa8
jne 0x10089ecd
mov al, byte [edx + 0x26]
cmp al, 0xa9
jne 0x10089ed6
lea eax, [edx + 0x14]
jmp 0x10089edd
cmp al, 0x83
jne 0x10089f02
mov eax, dword [edx + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jle 0x10089f02
push edi
push ecx
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.100846b0
mov eax, dword [esp + 0x14]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x20]
push eax
call fcn.1008b2b0
mov edi, dword [esp + 0x38]
add esp, 4
mov ecx, dword [esp + 0x10]
mov esi, eax
lea eax, [esp + 0x1c]
mov edx, dword [edi + 0x10]
push eax
call fcn.1008b2b0
mov ecx, dword [esp + 0x10]
add esp, 4
mov edx, dword [esp + 0x18]
or ecx, 0x20
push ecx
push dword [esp + 0xc]
push eax
push esi
mov esi, dword [esp + 0x20]
mov ecx, esi
push edx
push dword [edi + 0x10]
mov edx, dword [esp + 0x2c]
call fcn.10084410
add esp, 0x18
jmp 0x1008a25c
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x10]
push eax
call fcn.1008b2b0
mov edx, dword [esi + 0x10]
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, esi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1c]
push eax
call fcn.1008b2b0
mov ecx, dword [edi + 0x6c]
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [edi + 0x70], ecx
jg 0x10089fb1
push dword [esp + 8]
mov edx, dword [esp + 0x10]
mov ecx, edi
push edx
mov edx, dword [esp + 0x20]
push eax
call fcn.1006f360
add esp, 0xc
jmp 0x1008a25c
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 8]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
jmp 0x1008a25c
mov eax, dword [esi + 0xc]
mov cl, byte [eax]
cmp cl, 0x93
jne 0x1008a01c
mov esi, dword [esp + 8]
mov edx, eax
mov ecx, dword [esp + 0x10]
push esi
push 1
call fcn.100892e0
add esp, 8
mov eax, esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp cl, 0x91
jne 0x1008a088
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x1008b0c8
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x1008a031
sub edx, esi
and edx, 0x3fffffff
push 1
push edx
lea edx, [esp + 0x40]
call fcn.100518f0
movsd xmm0, qword [esp + 0x40]
xorps xmm0, xmmword [0x1020b360]
movsd qword [esp + 0x40], xmm0
add esp, 8
lea eax, [esp + 0x38]
mov edx, 0x91
push 0xfffffffffffffff3
push eax
push ecx
push dword [esp + 0x14]
push ecx
mov ecx, edi
call fcn.1006f5a0
mov eax, dword [esp + 0x1c]
add esp, 0x14
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x78]
mov byte [esp + 0x78], 0x93
mov dword [esp + 0x7c], 0x4400
mov dword [esp + 0x80], 0
call fcn.1008b2b0
mov edx, dword [esi + 0xc]
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, esi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1c]
push eax
call fcn.1008b2b0
mov ecx, dword [edi + 0x6c]
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [edi + 0x70], ecx
jg 0x1008a0f9
push dword [esp + 8]
mov edx, dword [esp + 0x10]
mov ecx, edi
push edx
push eax
mov edx, 0x65
call fcn.1006f360
add esp, 0xc
jmp 0x1008a25c
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 8]
mov dword [eax + ecx*4], 0x65
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1008a25c
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x20]
mov esi, dword [esp + 0x10]
mov ecx, esi
push eax
call fcn.1008b2b0
mov ecx, dword [edi + 0x6c]
add esp, 4
mov edx, dword [esp + 0x18]
mov dword [esp + 0xc], eax
cmp dword [edi + 0x70], ecx
jg 0x1008a16d
push 0
push dword [esp + 0xc]
mov ecx, edi
push eax
call fcn.1006f360
add esp, 0xc
jmp 0x1008a25c
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 8]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
jmp 0x1008a25c
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x10]
push eax
call fcn.1008b2b0
mov ecx, dword [esi + 0x10]
add esp, 4
mov edx, eax
call fcn.10086600
mov ecx, eax
xor eax, eax
cmp byte [esi + 0x26], 0x2d
mov esi, dword [edi + 0x6c]
sete al
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], eax
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 0xc], eax
cmp dword [edi + 0x70], esi
jg 0x1008a20a
push eax
push dword [esp + 0xc]
mov ecx, edi
push edx
mov edx, 0x58
call fcn.1006f360
add esp, 0xc
mov esi, eax
jmp 0x1008a239
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 8]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*4], 0x58
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x1008a258
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
mov edx, dword [esp + 0x14]
xor edx, dword [esp + 0x30]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x1008a278
mov al, byte [esi + 0x13]
cmp al, 8
jae 0x1008a278
movzx eax, al
mov dword [esi + eax*4 + 0x94], ecx
inc byte [esi + 0x13]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x1008b0c8
mov al, byte [esi + 0x13]
cmp al, 8
jae 0x1008b0c8
movzx eax, al
mov dword [esi + eax*4 + 0x94], ecx
inc byte [esi + 0x13]
mov eax, dword [esp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x1008a2c7
push 0
push dword [esp + 0xc]
mov edx, 0x46
mov ecx, edi
push 1
call fcn.1006f360
add esp, 0xc
jmp 0x1008a2fa
mov edx, dword [esp + 8]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x20]
mov esi, dword [esp + 0x10]
mov ecx, esi
push eax
call fcn.1008b2b0
mov ecx, dword [edi + 0x6c]
add esp, 4
mov edx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
cmp dword [edi + 0x70], ecx
jg 0x1008a339
push 0
push 0
push eax
mov ecx, edi
call fcn.1006f360
add esp, 0xc
mov dword [esp + 0xc], eax
jmp 0x1008a374
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x1008a395
push 0
push dword [esp + 0xc]
mov edx, 0x46
mov ecx, edi
push 0
call fcn.1006f360
add esp, 0xc
jmp 0x1008a3c8
mov edx, dword [esp + 8]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0xc]
mov edx, dword [edi + 0x6c]
test ecx, ecx
jns 0x1008a3da
lfence
mov ecx, dword [edi + 0x6c]
dec ecx
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
je 0x1008a3ef
mov eax, 0x10234fb8
mov dword [eax + 8], edx
jmp 0x1008a25c
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x1008a25c
mov eax, dword [esi + 0x28]
test eax, eax
jne 0x1008a423
push dword [esi + 8]
push str.misuse_of_aggregate:__s__
push edx
call fcn.100516a0
mov eax, dword [esp + 0x14]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movsx ecx, word [esi + 0x22]
mov eax, dword [eax + 0x28]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test dword [esi + 4], 0x1000000
mov eax, dword [edx]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], 0
mov al, byte [eax + 0x4e]
mov byte [esp + 0x20], al
je 0x1008a468
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 0x34]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [edx + 0x17], 0
je 0x1008a4b3
mov edx, esi
mov byte [esp + 0x54], 2
lea ecx, [esp + 0x40]
mov dword [esp + 0x44], fcn.100866c0
mov dword [esp + 0x48], 0x10086530
mov dword [esp + 0x58], 0
call fcn.100817f0
cmp byte [esp + 0x54], 0
je 0x1008a4b3
mov ecx, dword [esp + 0x10]
mov edx, esi
push 0xffffffffffffffff
call fcn.1008b1f0
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test dword [esi + 4], 0x4000
je 0x1008a573
mov dword [esp + 0x2c], 0
xor eax, eax
mov ecx, dword [esi + 8]
mov edx, ecx
push 0
push dword [esp + 0x24]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
push eax
mov dword [esp + 0x3c], eax
call fcn.1009bb50
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x1008a94a
cmp dword [eax + 0x14], 0
jne 0x1008a94a
mov eax, dword [eax + 4]
test eax, 0x200
je 0x1008a60a
mov esi, dword [esp + 0x10]
mov ecx, esi
push dword [esp + 8]
dec dword [esi + 0x38]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 4]
call fcn.1008b3a0
mov eax, dword [esp + 0x34]
add esp, 4
cmp eax, 1
jle 0x1008a5e0
mov ecx, dword [esp + 0x2c]
add ecx, 0x1c
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], eax
nop
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x1008a589
push 0
push dword [esp + 0x20]
mov edx, 0x33
mov ecx, edi
push dword [esp + 0x10]
call fcn.1006f360
add esp, 0xc
jmp 0x1008a5bc
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x1008a4c8
mov eax, dword [ecx]
jmp 0x1008a4ca
mov edx, dword [esp + 8]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x33
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x14]
mov ecx, esi
push dword [esp + 8]
mov edx, dword [edx]
call fcn.1008b3a0
add dword [esp + 0x18], 0x18
add esp, 4
sub dword [esp + 0xc], 1
jne 0x1008a550
mov edx, dword [esp + 0x1c]
mov ecx, dword [edi + 0xc]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x1008b0bf
push edx
mov edx, edi
call fcn.1006f7c0
mov eax, dword [esp + 0xc]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test eax, 0x400
je 0x1008a62e
mov eax, dword [esp + 0x2c]
push dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 4]
call fcn.10089820
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x30]
xor eax, eax
mov dword [esp + 0x18], eax
test edx, edx
jle 0x1008a6da
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
add ecx, 4
mov dword [esp + 0x1c], ecx
xor edi, edi
cmp eax, 0x20
jge 0x1008a690
mov edx, dword [ecx]
mov byte [esp + 0x54], 1
mov dword [esp + 0x44], fcn.100866c0
mov dword [esp + 0x48], 0x10086530
mov dword [esp + 0x58], 0
test edx, edx
je 0x1008a68d
lea ecx, [esp + 0x40]
call fcn.100817f0
cmp byte [esp + 0x54], 0
mov eax, dword [esp + 0x18]
je 0x1008a690
bts edi, eax
mov ecx, dword [esp + 0x20]
test byte [ecx + 4], 0x20
je 0x1008a6b6
cmp dword [esp + 0xc], 0
jne 0x1008a6b6
mov edx, dword [esp + 0x1c]
mov ecx, esi
mov edx, dword [edx]
call fcn.10084170
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0x30]
add ecx, 0x18
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
cmp eax, edx
jl 0x1008a651
mov esi, dword [esp + 0x34]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x1008a7b4
cmp dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x10]
je 0x1008a706
mov eax, dword [ecx + 0x2c]
lea edi, [eax + 1]
add eax, edx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x28]
mov dword [ecx + 0x2c], eax
jmp 0x1008a766
cmp edx, 1
jne 0x1008a733
mov al, byte [ecx + 0x13]
test al, al
jne 0x1008a71e
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x18], eax
jmp 0x1008a766
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x94]
mov dword [esp + 0x18], eax
jmp 0x1008a766
mov esi, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x18], eax
cmp edx, esi
jg 0x1008a74f
add eax, edx
mov dword [ecx + 0x20], eax
mov eax, esi
sub eax, edx
mov dword [ecx + 0x1c], eax
jmp 0x1008a762
mov eax, dword [ecx + 0x2c]
lea edi, [eax + 1]
add eax, edx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x28]
mov dword [ecx + 0x2c], eax
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x2c]
test dl, 0xc0
je 0x1008a79c
mov ecx, dword [eax + 4]
mov cl, byte [ecx]
mov byte [esp + 0x27], cl
cmp cl, 0xa2
mov ecx, dword [esp + 0x10]
je 0x1008a78f
cmp byte [esp + 0x27], 0xa4
jne 0x1008a79c
mov edi, dword [eax + 4]
and dl, 0xc0
mov byte [edi + 0x26], dl
mov edi, dword [esp + 0x28]
push 3
push 0
push dword [esp + 0x20]
mov edx, eax
call fcn.1008b480
mov ecx, dword [esp + 0x38]
add esp, 0xc
jmp 0x1008a7bc
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x30]
cmp eax, 2
jl 0x1008a7e5
test byte [esi + 4], 0x80
je 0x1008a7e5
push dword [ecx + 0x1c]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
push eax
call fcn.100c3ab0
add esp, 8
mov dword [esp + 0x20], eax
jmp 0x1008a7f2
test eax, eax
jle 0x1008a7ee
push dword [ecx + 4]
jmp 0x1008a7ce
mov eax, dword [esp + 0x20]
test byte [eax + 4], 0x20
je 0x1008a86c
mov esi, dword [esp + 0xc]
test esi, esi
jne 0x1008a807
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 8]
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x1008a828
push 0
push 0
push 0
mov edx, 0x52
mov ecx, edi
call fcn.1006f360
add esp, 0xc
mov edx, eax
jmp 0x1008a85f
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffffe
push esi
mov ecx, edi
call fcn.1006fdd0
add esp, 8
mov esi, dword [esp + 0x10]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x38], ecx
mov edx, dword [esi + 0x34]
neg edx
sbb edx, edx
add edx, 0x3f
cmp dword [edi + 0x70], ecx
jg 0x1008a89e
push dword [esp + 8]
mov ecx, edi
push dword [esp + 0x1c]
push dword [esp + 0x24]
call fcn.1006f360
add esp, 0xc
jmp 0x1008a8dd
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 8]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov eax, dword [esp + 0x38]
push 0xfffffffffffffff8
push dword [esp + 0x24]
mov edx, eax
mov ecx, edi
call fcn.1006fdd0
mov ecx, dword [edi + 0x6c]
add esp, 8
test ecx, ecx
jle 0x1008a908
mov eax, dword [esp + 0x30]
lea ecx, [ecx + ecx*4]
movzx edx, al
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1008b0c8
cmp dword [esp + 0x1c], 0
jne 0x1008b0c8
cmp eax, 1
jne 0x1008a92d
mov ecx, dword [esp + 0x18]
jmp 0x1008a27c
cmp eax, dword [esi + 0x1c]
jle 0x1008b0c8
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push dword [esp + 0x38]
push str.unknown_function:__s__
push dword [esp + 0x18]
call fcn.100516a0
mov eax, dword [esp + 0x14]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp ecx, 0x83
jne 0x1008a998
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, 1
je 0x1008a998
push 1
push eax
push str.sub_select_returns__d_columns___expected__d
push edx
call fcn.100516a0
mov eax, dword [esp + 0x18]
add esp, 0x10
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.10087f70
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0xc]
cmp dword [ecx + 0x1c], 0
jne 0x1008a9ca
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.10087f70
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x10]
mov dword [ecx + 0x1c], eax
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x1c]
test edi, edi
je 0x1008aa0e
mov al, byte [ecx]
cmp al, 0xa8
jne 0x1008a9da
mov al, byte [ecx + 0x26]
cmp al, 0xa9
jne 0x1008a9e5
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
jmp 0x1008a9f7
cmp al, 0x83
jne 0x1008a9f2
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x1008a9f7
mov eax, 1
cmp edi, eax
je 0x1008aa0e
push eax
push edi
push str._d_columns_assigned__d_values
push edx
call fcn.100516a0
mov ecx, dword [esi + 0xc]
add esp, 0x10
movsx eax, word [esi + 0x20]
add eax, dword [ecx + 0x1c]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [edx + 0x38]
dec eax
mov dword [esp + 0xc], eax
dec eax
mov dword [edx + 0x38], eax
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x14], eax
cmp dword [edi + 0x70], ecx
jg 0x1008aa4c
push 0
push dword [esp + 0xc]
mov edx, 0x49
mov ecx, edi
push 0
call fcn.1006f360
add esp, 0xc
jmp 0x1008aa7f
mov edx, dword [esp + 8]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x49
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov edx, esi
push dword [esp + 0x10]
call fcn.10088490
mov ecx, dword [edi + 0x6c]
add esp, 8
mov esi, dword [esp + 8]
cmp dword [edi + 0x70], ecx
jg 0x1008aab7
push 0
push esi
push 1
mov edx, 0x46
mov ecx, edi
call fcn.1006f360
add esp, 0xc
jmp 0x1008aae6
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0xc]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x1008ab04
push edx
mov edx, edi
call fcn.1006f7c0
add esp, 4
jmp 0x1008ab0d
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x1008ab32
push 0
push 0
push esi
mov edx, 0x53
mov ecx, edi
call fcn.1006f360
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x1008a5e4
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x53
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1008a5e4
mov edi, dword [esp + 8]
mov edx, esi
mov ecx, dword [esp + 0x10]
push 0
push 0
push edi
call fcn.1008b670
add esp, 0xc
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x2c]
movsx edx, word [esi + 0x20]
mov dword [esp + 0x38], eax
movsx ecx, word [eax + 0x2a]
inc ecx
imul ecx, dword [esi + 0x1c]
inc ecx
add edx, ecx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x1008abc4
push 0
push dword [esp + 0xc]
mov ecx, edi
push edx
mov edx, 0x95
call fcn.1006f360
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x1008abf7
mov esi, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 8]
mov dword [eax + ecx*4], 0x95
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
movzx eax, word [esi + 0x20]
test ax, ax
js 0x1008b0c8
movsx ecx, ax
mov eax, dword [esp + 0x38]
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xd], 0x45
jne 0x1008b0c8
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x1008ac41
push 0
push 0
push edx
mov edx, 0x54
mov ecx, edi
call fcn.1006f360
mov eax, dword [esp + 0x14]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x54
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
jmp 0x10089c08
push str.row_value_misused
push edx
call fcn.100516a0
mov eax, dword [esp + 0x10]
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x6c]
mov edx, dword [esi + 0x1c]
mov dword [esp + 0xc], ecx
cmp dword [edi + 0x70], ecx
jg 0x1008aca6
push 0
push 0
push edx
mov edx, 0x15
mov ecx, edi
call fcn.1006f360
add esp, 0xc
mov dword [esp + 0xc], eax
jmp 0x1008acd9
mov esi, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x15
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 8]
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x14]
call fcn.10089820
mov edx, dword [esp + 0x10]
add esp, 4
mov esi, dword [edi + 0x6c]
mov ecx, edx
mov dword [esp + 8], eax
test edx, edx
jns 0x1008ad04
lfence
mov ecx, dword [edi + 0x6c]
dec ecx
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
je 0x1008ad13
mov eax, 0x10234fb8
jmp 0x1008ad1c
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], esi
test edx, edx
jns 0x1008ad2a
lfence
mov edx, dword [edi + 0x6c]
dec edx
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
je 0x1008ad44
mov eax, dword [esp + 8]
mov ecx, 0x10234fb8
mov dword [ecx + 0xc], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 8]
mov dword [ecx + 0xc], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [edx + 0x78], 0
jne 0x1008ad76
push str.RAISE___may_only_be_used_within_a_trigger_program
push edx
call fcn.100516a0
add esp, 8
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 1]
cmp al, 2
jne 0x1008ad8e
mov eax, dword [edx + 0x74]
mov ecx, edx
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
mov al, byte [esi + 1]
mov esi, dword [esi + 8]
cmp al, 4
jne 0x1008ae19
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x1008adcf
push 0
push 4
push 0
mov edx, 0x45
mov ecx, edi
call fcn.1006f360
add esp, 0xc
mov edx, eax
mov ecx, edi
push 0
push esi
call fcn.1006fdd0
mov eax, dword [esp + 0x10]
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
push 0
push esi
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, edi
call fcn.1006fdd0
mov eax, dword [esp + 0x10]
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x10]
mov edx, 0x713
push 0
push 0
movsx eax, al
push esi
push eax
call fcn.1009aa30
mov eax, dword [esp + 0x18]
add esp, 0x10
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x28], eax
lea ecx, [eax + 4]
mov eax, dword [eax]
dec dword [edx + 0x38]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [edx + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], esi
test esi, esi
je 0x1008af35
push 0x34
lea eax, [esp + 0x78]
push 0
push eax
call fcn.10188460
mov eax, dword [esi + 4]
add esp, 0xc
test eax, 0x4000
je 0x1008ae92
mov eax, 0xc
jmp 0x1008aea1
and eax, 0x2000
neg eax
sbb eax, eax
and eax, 0xffffffe8
add eax, 0x34
push eax
lea eax, [esp + 0x78]
push esi
push eax
call fcn.10187960
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x2c]
add esp, 0xc
lea edx, [esp + 0x74]
push eax
call fcn.10089710
add esp, 4
lea ecx, [esp + 0x74]
mov esi, eax
nop dword [eax + eax]
mov edx, dword [ecx + 4]
test edx, 0x41000
je 0x1008aef2
test edx, 0x40000
je 0x1008aeeb
mov eax, dword [ecx + 0x14]
mov ecx, dword [eax + 4]
jmp 0x1008aeee
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x1008aed0
mov al, byte [ecx]
and dword [ecx + 4], 0xffffefff
push 0x34
mov byte [ecx + 0x26], al
lea eax, [esp + 0x44]
push 0
push eax
mov byte [ecx], 0xa8
mov dword [ecx + 0x1c], esi
call fcn.10188460
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x80]
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x40]
mov byte [esp + 0x40], 0x35
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
dec eax
test eax, eax
jle 0x1008b02f
dec eax
shr eax, 1
inc eax
mov dword [esp + 0x34], eax
jmp 0x1008af52
mov edx, esi
mov ecx, dword [ecx]
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0xc]
cmovne eax, ecx
cmove esi, ecx
dec dword [edx + 0x38]
push 0x10
mov dword [esp + 0x54], eax
mov eax, dword [edx + 0x38]
push eax
push esi
push edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x48], eax
call fcn.1008bcf0
mov edx, dword [esp + 0x24]
push dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov ecx, esi
mov edx, dword [edx + 0x18]
call fcn.1008b3a0
mov ecx, dword [edi + 0x6c]
add esp, 0x14
cmp dword [edi + 0x70], ecx
jg 0x1008afbd
push 0
push dword [esp + 0x20]
mov edx, 0xb
mov ecx, edi
push 0
call fcn.1006f360
add esp, 0xc
jmp 0x1008aff0
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x38]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x1008b00e
push edx
mov edx, edi
call fcn.1006f7c0
add esp, 4
jmp 0x1008b017
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x14]
add ecx, 0x30
sub dword [esp + 0x34], 1
mov dword [esp + 0x14], ecx
jne 0x1008af50
jmp 0x1008b033
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
test al, 1
je 0x1008b056
push dword [esp + 8]
lea edx, [eax + eax*2]
mov ecx, esi
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + edx*8 - 0x14]
call fcn.1008b3a0
add esp, 4
jmp 0x1008b0aa
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x1008b077
push 0
push dword [esp + 0xc]
mov edx, 0x49
mov ecx, edi
push 0
call fcn.1006f360
add esp, 0xc
jmp 0x1008b0aa
mov edx, dword [esp + 8]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x49
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x1c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
js 0x1008a5f5
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret