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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x64
push ebx
push esi
mov esi, edx
xorps xmm0, xmm0
mov edx, dword [esi]
push edi
mov eax, dword [edx]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov dword [esp + 0x20], esi
cmp byte [eax + 0x49], 0
mov dword [esp + 0x24], ecx
movlpd qword [esp + 0x68], xmm0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x1c], eax
jne 0x1007757b
mov eax, dword [ebp + 8]
mov ebx, dword [esi + 0x14]
lea eax, [eax + eax*2]
shl eax, 4
add ebx, eax
mov dword [esp + 0x18], eax
mov edi, dword [ebx]
lea eax, [edx + 0x1e8]
mov edx, dword [edi + 0xc]
mov ecx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x64], edi
call fcn.10076670
mov dword [esp + 0x50], eax
movzx eax, byte [edi]
mov dword [esp + 0x54], edx
mov dword [esp + 0x2c], eax
cmp eax, 0x31
jne 0x100769d0
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.100b0b50
test eax, eax
jne 0x1007757b
test dword [edi + 4], 0x800
mov edx, dword [edi + 0x14]
mov ecx, dword [esp + 0x28]
je 0x100769c9
call fcn.10077740
jmp 0x100769f1
call fcn.10076600
jmp 0x100769f1
cmp eax, 0x32
jne 0x100769e5
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
jmp 0x100769f7
mov edx, dword [edi + 0x10]
mov ecx, dword [esp + 0x28]
call fcn.10076670
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], edx
mov eax, dword [esp + 0x28]
mov edx, edi
mov ecx, eax
mov dword [eax], 0
call fcn.10076670
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], eax
cmp dword [ecx], 0
mov dword [esp + 0x34], edx
je 0x10076a24
mov edx, 0x1000
or word [ebx + 0xa], dx
test byte [edi + 4], 1
je 0x10076a89
movsx edx, word [edi + 0x24]
call fcn.100762a0
or dword [esp + 0x34], edx
mov ecx, eax
mov eax, dword [esp + 0x30]
or eax, ecx
mov dword [esp + 0x40], ecx
add dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], edx
adc dword [esp + 0x44], 0xffffffff
shrd dword [esp + 0x38], eax, 1
shr eax, 1
cmp eax, edx
jb 0x10076a9b
ja 0x10076a71
cmp dword [esp + 0x38], ecx
jb 0x10076a9b
push str.ON_clause_references_tables_to_its_right
push dword [esp + 0x18]
call fcn.100e99e0
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x40], ecx
jmp 0x10076a9f
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x2c], eax
xor eax, eax
mov word [ebx + 0xc], ax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x14], 0xffffffff
mov dword [ebx + 0x10], 0xffffffff
cmp eax, 0x31
je 0x10076c11
cmp eax, 0x35
jl 0x10076ad8
cmp eax, 0x39
jle 0x10076c11
cmp eax, 0x32
je 0x10076c11
cmp eax, 0x2d
je 0x10076c11
mov al, byte [edi]
cmp al, 0x30
jne 0x10076bec
cmp byte [esi + 8], 0x2c
jne 0x10076bec
mov eax, dword [edi + 0x14]
add eax, 4
mov dword [esp + 0x38], 0
mov dword [esp + 0x58], eax
mov edx, dword [eax]
test edx, edx
je 0x10076b2a
mov ecx, dword [esp + 0x1c]
push 0
push 0
call fcn.100b3270
add esp, 8
mov ebx, eax
jmp 0x10076b2c
xor ebx, ebx
mov edx, dword [edi + 0xc]
test edx, edx
je 0x10076b45
mov ecx, dword [esp + 0x1c]
push 0
push 0
call fcn.100b3270
add esp, 8
jmp 0x10076b47
xor eax, eax
mov ecx, dword [esp + 0x14]
push ebx
push eax
mov eax, dword [esp + 0x40]
movzx edx, byte [eax + 0x10108e48]
call fcn.100b3af0
add esp, 8
test eax, eax
je 0x10076b75
mov ecx, dword [edi + 4]
and ecx, 1
or dword [eax + 4], ecx
mov cx, word [edi + 0x24]
mov word [eax + 0x24], cx
push 3
mov edx, eax
mov ecx, esi
call fcn.10078890
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
add esp, 4
mov esi, eax
push esi
mov edx, ebx
call fcn.10076910
mov ecx, dword [ebx + 0x14]
mov eax, dword [esp + 0x1c]
lea edx, [esi + esi*2]
mov esi, dword [ebp + 8]
add edx, edx
lea ebx, [ecx + eax]
mov dword [ecx + edx*8 + 0x10], esi
mov esi, dword [esp + 0x24]
add esp, 4
mov ecx, dword [esi + 0x14]
mov ax, word [ecx + eax + 8]
mov word [ecx + edx*8 + 8], ax
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x18]
inc byte [eax + ecx + 0xe]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x58]
inc ecx
add eax, 0x18
mov dword [esp + 0x38], ecx
mov dword [esp + 0x58], eax
cmp ecx, 2
jl 0x10076b10
jmp 0x10076df8
cmp al, 0x2b
jne 0x10076df8
push dword [ebp + 8]
mov ecx, dword [esp + 0x28]
mov edx, esi
call fcn.10077a20
mov ebx, dword [esi + 0x14]
add esp, 4
add ebx, dword [esp + 0x18]
jmp 0x10076df8
mov ecx, dword [edi + 0xc]
call fcn.100b4a30
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x38], eax
call fcn.100b4a30
mov edx, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
and edx, dword [esp + 0x50]
and ecx, dword [esp + 0x54]
mov dword [esp + 0x60], eax
or edx, ecx
mov dword [esp + 0x58], 0x1fff
je 0x10076c4b
mov dword [esp + 0x58], 0x800
mov eax, dword [ebx + 0x18]
test eax, eax
jle 0x10076c62
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + ecx*8 - 0x14]
jmp 0x10076c66
mov eax, dword [esp + 0x38]
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
push dword [esp + 0x5c]
lea edx, [esp + 0x74]
push dword [esp + 0x5c]
call fcn.10077590
add esp, 0x10
test eax, eax
je 0x10076ca7
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x1c], eax
call fcn.100787b0
and ax, word [esp + 0x58]
mov word [ebx + 0xc], ax
mov eax, dword [esp + 0x2c]
cmp eax, 0x2d
jne 0x10076cb9
mov ecx, 0x800
or word [ebx + 0xa], cx
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x10076df8
push eax
push ecx
push dword [ebx + 0x24]
mov ecx, dword [esp + 0x30]
push dword [ebx + 0x20]
lea edx, [esp + 0x78]
call fcn.10077590
add esp, 0x10
test eax, eax
je 0x10076df8
cmp dword [ebx + 0x14], 0
mov dword [esp + 0x60], 0
jl 0x10076e55
mov ebx, dword [esp + 0x1c]
push 0
push 0
mov edx, edi
mov ecx, ebx
call fcn.100b3270
add esp, 8
cmp byte [ebx + 0x49], 0
mov dword [esp + 0x38], eax
je 0x10076d2d
test eax, eax
je 0x1007757b
mov edx, eax
mov ecx, ebx
call fcn.100b3630
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 3
mov edx, eax
mov ecx, esi
call fcn.10078890
add esp, 4
test eax, eax
je 0x1007757b
push dword [ebp + 8]
lea ebx, [eax + eax*2]
shl ebx, 4
add ebx, dword [esi + 0x14]
mov edx, eax
mov ecx, esi
mov dword [esp + 0x60], ebx
call fcn.100783b0
add esp, 4
cmp dword [esp + 0x2c], 0x2d
jne 0x10076d6f
mov eax, 0x800
or word [ebx + 0xa], ax
mov ebx, dword [esi + 0x14]
add ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
or word [ebx + 0xa], 8
call fcn.10077970
test eax, eax
je 0x10076d99
mov eax, 0x800
or word [ebx + 0xc], ax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov edx, eax
call fcn.100787e0
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x44]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x6c]
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x50]
or eax, dword [esp + 0x40]
mov dword [edx + 0x24], ecx
mov dword [edx + 0x20], eax
mov eax, dword [esp + 0x30]
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0x38]
movzx ecx, byte [eax]
call fcn.100787b0
add ax, word [esp + 0x60]
and ax, word [esp + 0x58]
mov word [edx + 0xc], ax
cmp byte [esi + 8], 0x2c
jne 0x10077460
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x44]
push eax
mov edx, edi
call fcn.10078510
add esp, 0xc
test eax, eax
je 0x100770b4
mov eax, dword [edi + 0x14]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x60], eax
test ecx, ecx
je 0x10076e64
push 0
mov edx, ecx
mov ecx, dword [esp + 0x20]
push 0
call fcn.100b3270
mov ecx, dword [esp + 0x44]
add esp, 8
mov dword [esp + 0x38], eax
jmp 0x10076e6c
mov eax, edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x5c], ebx
jmp 0x10076d9d
mov dword [esp + 0x38], 0
cmp dword [esp + 0x4c], 0
je 0x10076ed8
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp byte [eax + 0x49], 0
jne 0x10076ed8
mov eax, 0x400
or word [ebx + 0xa], ax
mov eax, dword [ecx + 8]
xor ebx, ebx
mov cl, byte [eax]
mov dword [esp + 0x5c], eax
test cl, cl
je 0x10076ed8
mov edi, dword [esp + 0x3c]
mov esi, eax
lea ecx, [ecx]
movzx edx, cl
inc ebx
movzx eax, byte [edx + 0x10109b28]
and al, 0x20
not al
and al, cl
mov byte [esi], al
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 8]
movzx eax, byte [edx + 0x10105440]
mov byte [ebx + ecx - 1], al
mov esi, dword [edi + 8]
add esi, ebx
mov cl, byte [esi]
test cl, cl
jne 0x10076ea0
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0x49], 0
jne 0x10076f35
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 8]
test edx, edx
jne 0x10076ef1
xor ecx, ecx
jmp 0x10076f05
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10076ef6
sub ecx, ebx
and ecx, 0x3fffffff
mov al, byte [edx + ecx - 1]
add edx, ecx
cmp dword [esp + 0x4c], 0
mov ecx, dword [esp + 0x48]
je 0x10076f26
xor ebx, ebx
cmp al, 0x40
movzx eax, al
cmove ecx, ebx
mov al, byte [eax + 0x10105440]
inc al
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
mov byte [edx - 1], al
jmp 0x10076f3d
mov eax, dword [esp + 0x48]
mov dword [esp + 0x58], eax
cmp dword [esp + 0x4c], 0
mov eax, 0x100fca30
mov ebx, str.NOCASE
cmove ebx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x64], ebx
test eax, eax
je 0x10076f6b
push 0
push 0
mov edx, eax
call fcn.100b3270
add esp, 8
jmp 0x10076f6d
xor eax, eax
push dword [esp + 0x3c]
mov edx, eax
push ecx
push ebx
mov ebx, dword [esp + 0x20]
mov ecx, ebx
call fcn.100b4a60
add esp, 8
mov edx, 0x39
push eax
mov ecx, ebx
call fcn.100b3af0
add esp, 8
test eax, eax
je 0x10076fa8
mov ecx, dword [edi + 4]
and ecx, 1
or dword [eax + 4], ecx
mov cx, word [edi + 0x24]
mov word [eax + 0x24], cx
push 0x103
mov edx, eax
mov ecx, esi
call fcn.10078890
mov ecx, dword [esp + 0x28]
add esp, 4
mov edx, esi
push eax
mov dword [esp + 0x60], eax
call fcn.10076910
mov eax, dword [esp + 0x64]
add esp, 4
test eax, eax
je 0x10076fe8
mov ecx, dword [esp + 0x1c]
push 0
push 0
mov edx, eax
call fcn.100b3270
add esp, 8
jmp 0x10076fea
xor eax, eax
push dword [esp + 0x38]
mov edx, eax
push ecx
push dword [esp + 0x6c]
mov ecx, ebx
call fcn.100b4a60
add esp, 8
mov edx, 0x38
push eax
mov ecx, ebx
call fcn.100b3af0
add esp, 8
test eax, eax
je 0x10077024
mov ecx, dword [edi + 4]
and ecx, 1
or dword [eax + 4], ecx
mov cx, word [edi + 0x24]
mov word [eax + 0x24], cx
push 0x103
mov edx, eax
mov ecx, esi
call fcn.10078890
mov ecx, dword [esp + 0x28]
add esp, 4
mov edx, esi
push eax
mov dword [esp + 0x68], eax
call fcn.10076910
mov ecx, dword [esi + 0x14]
mov eax, dword [esp + 0x1c]
add esp, 4
cmp dword [esp + 0x58], 0
lea ebx, [ecx + eax]
je 0x100770b4
mov eax, dword [esp + 0x5c]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 8]
add edx, edx
mov dword [ecx + edx*8 + 0x10], eax
mov ecx, dword [esi + 0x14]
mov eax, dword [esp + 0x18]
movzx eax, word [ecx + eax + 8]
mov word [ecx + edx*8 + 8], ax
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x18]
inc byte [eax + ecx + 0xe]
mov eax, dword [esp + 0x64]
mov ecx, dword [ebp + 8]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x14]
add edx, edx
mov dword [eax + edx*8 + 0x10], ecx
mov ecx, dword [esi + 0x14]
mov eax, dword [esp + 0x18]
movzx eax, word [ecx + eax + 8]
mov word [ecx + edx*8 + 8], ax
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x18]
inc byte [eax + ecx + 0xe]
cmp byte [esi + 8], 0x2c
jne 0x10077460
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x64]
push eax
lea edx, [esp + 0x1b]
mov ecx, edi
call fcn.10078410
mov edx, eax
add esp, 8
test edx, edx
jle 0x1007727d
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x54], eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x28]
dec edx
mov dword [esp + 0x64], edx
mov edx, eax
call fcn.10076670
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x60], eax
call fcn.10076670
and eax, dword [esp + 0x60]
and edx, dword [esp + 0x5c]
or eax, edx
jne 0x10077261
mov eax, dword [esp + 0x54]
test eax, eax
je 0x10077141
mov ecx, dword [esp + 0x1c]
push 0
push 0
mov edx, eax
call fcn.100b3270
add esp, 8
jmp 0x10077143
xor eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x14]
push 0
mov ecx, dword [eax]
push 0x30
call fcn.100ec7e0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x100771b2
push 0x30
push 0
push ebx
call fcn.10003750
or eax, 0xffffffff
mov word [ebx + 0x22], ax
mov eax, dword [esp + 0x64]
add esp, 0xc
mov byte [ebx], 0x2e
test eax, eax
je 0x1007718c
mov dword [ebx + 0x10], eax
mov eax, dword [eax + 4]
and eax, 0x200100
or dword [ebx + 4], eax
mov ecx, ebx
call fcn.100b3df0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x70]
cmp dword [ebx + 0x18], eax
jle 0x100771c7
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ecx
call fcn.100e99e0
add esp, 0xc
jmp 0x100771c7
mov eax, dword [esp + 0x58]
test eax, eax
je 0x100771c7
mov edx, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
call fcn.100b3630
test byte [edi + 4], 1
je 0x100771d5
test ebx, ebx
je 0x100771d5
or dword [ebx + 4], 1
push 3
mov edx, ebx
mov ecx, esi
call fcn.10078890
mov esi, dword [esi + 0x14]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x24]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x64]
shl edx, 4
add esi, edx
add esp, 4
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x5c]
mov dword [esi + 0x24], eax
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x14], eax
movsx eax, word [ecx + 0x20]
mov ecx, dword [ebp + 8]
mov dword [esi + 0x1c], eax
mov eax, 0x40
mov word [esi + 0xc], ax
mov al, byte [esp + 0x13]
mov byte [esi + 0xf], al
mov eax, dword [ebx + 0x14]
mov dword [eax + edx + 0x10], ecx
mov ecx, dword [ebx + 0x14]
mov eax, dword [esp + 0x18]
mov ax, word [ecx + eax + 8]
mov word [ecx + edx + 8], ax
mov eax, dword [ebx + 0x14]
mov ecx, dword [esp + 0x18]
inc byte [eax + ecx + 0xe]
mov ebx, dword [ebx + 0x14]
add ebx, ecx
mov eax, dword [ebx + 0x28]
or word [ebx + 0xa], 8
mov dword [esi + 0x28], eax
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x2c], eax
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], eax
test edx, edx
jg 0x100770f0
cmp byte [esi + 8], 0x2c
jne 0x10077460
mov al, byte [edi]
cmp al, 0x35
je 0x10077295
cmp al, 0x2d
jne 0x10077394
mov ecx, dword [edi + 0xc]
mov al, byte [ecx]
cmp al, 0x96
jne 0x100772a1
mov al, byte [ecx + 0x26]
cmp al, 0x97
jne 0x100772aa
mov eax, dword [ecx + 0x14]
jmp 0x100772b7
cmp al, 0x77
jne 0x10077394
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [esp + 0x60], ecx
cmp ecx, 1
jle 0x10077394
mov edx, dword [edi + 0x10]
mov al, byte [edx]
cmp al, 0x96
jne 0x100772d2
mov al, byte [edx + 0x26]
cmp al, 0x97
jne 0x100772dd
mov eax, dword [edx + 0x14]
mov eax, dword [eax]
jmp 0x100772ef
cmp al, 0x77
jne 0x100772ea
mov eax, dword [edx + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x100772ef
mov eax, 1
cmp eax, ecx
jne 0x10077394
mov eax, dword [edi + 0xc]
test dword [eax + 4], 0x800
je 0x10077310
test dword [edx + 4], 0x800
jne 0x10077394
xor ebx, ebx
test ecx, ecx
jle 0x10077386
mov edx, dword [edi + 0xc]
mov ecx, dword [esp + 0x14]
push ebx
call fcn.100b4460
mov edx, dword [edi + 0x10]
mov ecx, dword [esp + 0x18]
add esp, 4
mov esi, eax
push ebx
call fcn.100b4460
movzx edx, byte [edi]
mov ecx, dword [esp + 0x18]
add esp, 4
push eax
push esi
call fcn.100b3af0
add esp, 8
test eax, eax
je 0x1007735e
mov ecx, dword [edi + 4]
and ecx, 1
or dword [eax + 4], ecx
mov cx, word [edi + 0x24]
mov word [eax + 0x24], cx
mov esi, dword [esp + 0x20]
push 1
mov edx, eax
mov ecx, esi
call fcn.10078890
mov ecx, dword [esp + 0x28]
add esp, 4
mov edx, esi
push eax
call fcn.10076910
inc ebx
add esp, 4
cmp ebx, dword [esp + 0x60]
jl 0x10077316
mov ebx, dword [esi + 0x14]
add ebx, dword [esp + 0x18]
mov dword [ebx + 0xa], 6
cmp byte [esi + 8], 0x2c
jne 0x10077460
cmp byte [edi], 0x31
jne 0x10077460
cmp dword [ebx + 0x18], 0
jne 0x10077460
mov eax, dword [edi + 0xc]
cmp byte [eax], 0x97
jne 0x10077460
mov eax, dword [edi + 0x14]
cmp dword [eax + 0x30], 0
jne 0x10077460
xor ebx, ebx
lea esp, [esp]
mov ecx, dword [edi + 0xc]
mov al, byte [ecx]
cmp al, 0x96
jne 0x100773dc
mov al, byte [ecx + 0x26]
cmp al, 0x97
jne 0x100773e7
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
jmp 0x100773f9
cmp al, 0x77
jne 0x100773f4
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x100773f9
mov eax, 1
cmp ebx, eax
jge 0x10077460
push 2
mov edx, edi
mov ecx, esi
call fcn.10078890
inc ebx
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x64]
mov ecx, dword [ebx + 0x14]
lea esi, [eax + eax*2]
add esi, esi
add esp, 4
mov dword [ecx + esi*8 + 0x18], edx
mov ecx, dword [esp + 0x24]
push eax
mov edx, ebx
call fcn.10076910
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
mov dword [eax + esi*8 + 0x10], ecx
mov ecx, dword [ebx + 0x14]
add esp, 4
mov ax, word [ecx + edx + 8]
mov word [ecx + esi*8 + 8], ax
mov esi, ebx
mov ebx, dword [esp + 0x60]
mov eax, dword [esi + 0x14]
inc byte [eax + edx + 0xe]
jmp 0x100773d0
cmp byte [edi], 0x33
jne 0x10077566
mov ebx, dword [edi + 0xc]
mov dword [esp + 0x64], ebx
cmp byte [ebx], 0x91
jne 0x10077566
cmp word [ebx + 0x20], 0
jl 0x10077566
mov eax, dword [esp + 0x1c]
mov ecx, 0x800
test word [eax + 0x44], cx
jne 0x10077566
push 0
push 0x30
mov ecx, eax
call fcn.100ec7e0
mov edi, eax
add esp, 8
test edi, edi
je 0x100774c9
push 0x30
push 0
push edi
call fcn.10003750
add esp, 0xc
or eax, 0xffffffff
mov byte [edi], 0x65
mov word [edi + 0x22], ax
mov dword [edi + 0x18], 1
test ebx, ebx
je 0x100774e1
mov ecx, dword [esp + 0x1c]
push 0
push 0
mov edx, ebx
call fcn.100b3270
add esp, 8
jmp 0x100774e3
xor eax, eax
mov ecx, dword [esp + 0x14]
push edi
push eax
mov edx, 0x36
call fcn.100b3af0
push 0x83
mov edx, eax
mov ecx, esi
call fcn.10078890
mov edx, eax
add esp, 0xc
test edx, edx
je 0x10077566
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x64]
push dword [ebp + 8]
lea esi, [edx + edx*2]
shl esi, 4
add esi, dword [ebx + 0x14]
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x14], eax
movsx eax, word [ecx + 0x20]
mov dword [esi + 0x1c], eax
mov eax, 4
mov ecx, ebx
mov word [esi + 0xc], ax
call fcn.100783b0
mov ecx, dword [ebx + 0x14]
add ecx, dword [esp + 0x1c]
add esp, 4
mov eax, dword [ecx + 0x28]
or word [ecx + 0xa], 8
mov dword [esi + 0x28], eax
mov eax, dword [ecx + 0x2c]
mov dword [esi + 0x2c], eax
mov esi, ebx
mov eax, dword [esi + 0x14]
add eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x40]
or dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x44]
or dword [eax + 0x24], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret