Function at 0x586b70
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x88bba0]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push ebx
push esi
mov ebx, dword [edx]
lea eax, [edx + 0x50]
mov dword [ebp - 0xd4], eax
lea esi, [edx + 0x2f0]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0xb0], edx
mov eax, dword [ebx]
mov dword [ebp - 0xc8], eax
lea eax, [ecx + ecx*4]
shl eax, 4
add esi, eax
mov dword [ebp - 0xb4], 0
push edi
mov edi, dword [ebx + 8]
mov dword [ebp - 0xd0], ebx
mov eax, dword [esi + 0x40]
mov dword [ebp - 0xac], eax
movzx eax, byte [esi + 0x2c]
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xa4], esi
lea ecx, [eax + eax*4]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x1ec]
add eax, 8
shl ecx, 4
add eax, ecx
mov dword [ebp - 0x84], eax
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x8c], eax
xor eax, eax
test edx, edx
jle 0x586c3c
mov ecx, dword [ebp - 0xb0]
add ecx, 0x1f0
lea ebx, [ebx]
mov ebx, dword [ebp - 0x8c]
cmp dword [ecx], ebx
mov ebx, dword [ebp - 0xd0]
je 0x586df8
inc eax
add ecx, 4
cmp eax, edx
jl 0x586c20
xorps xmm0, xmm0
movlpd qword [ebp - 0xe0], xmm0
mov edx, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xe0]
not ecx
not edx
and ecx, dword [ebp + 0x10]
and edx, dword [ebp + 0x14]
mov dword [esi + 0x48], ecx
mov ecx, dword [ebp - 0xb0]
mov dword [esi + 0x4c], edx
mov eax, dword [ecx + 0x40]
mov edx, dword [ecx + 0x44]
mov ecx, dword [ebp - 0x94]
call fcn.00727a00
and eax, 1
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xac]
test byte [eax + 0x24], 0x40
je 0x586ca2
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x78], 1
test byte [eax + 0x2c], 0x20
je 0x586ca9
mov dword [ebp - 0x78], 0
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x70], ecx
mov edx, dword [ecx + 0x44]
mov dword [ebp - 0x88], edx
lea eax, [edx + 1]
mov dword [ecx + 0x44], eax
lea eax, [edx - 1]
test edx, eax
jne 0x586ce8
push 0
lea eax, [edx*8 + 4]
push eax
push dword [ecx + 0x48]
push dword [ecx]
call fcn.0055bf70
mov ecx, dword [ebp - 0x70]
add esp, 0x10
mov edx, dword [ebp - 0x88]
mov dword [ecx + 0x48], eax
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x586cf6
mov dword [eax + edx*4], 0xffffffff
or eax, 0xffffffff
sub eax, edx
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], eax
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x70], ecx
mov edx, dword [ecx + 0x44]
mov dword [ebp - 0x88], edx
lea eax, [edx + 1]
mov dword [ecx + 0x44], eax
lea eax, [edx - 1]
test edx, eax
jne 0x586d43
push 0
lea eax, [edx*8 + 4]
push eax
push dword [ecx + 0x48]
push dword [ecx]
call fcn.0055bf70
mov ecx, dword [ebp - 0x70]
add esp, 0x10
mov edx, dword [ebp - 0x88]
mov dword [ecx + 0x48], eax
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x586d51
mov dword [eax + edx*4], 0xffffffff
or eax, 0xffffffff
sub eax, edx
cmp byte [esi + 0x2c], 0
mov edx, dword [ebp - 0x84]
mov dword [ebp - 0xe4], eax
mov dword [esi + 0x18], eax
jbe 0x586d8e
test byte [edx + 0x24], 8
je 0x586d8e
mov eax, dword [ebx + 0x2c]
inc eax
push eax
push 0
push 0x43
mov dword [ebx + 0x2c], eax
push edi
mov dword [esi], eax
call fcn.0057a2f0
mov edx, dword [ebp - 0x84]
add esp, 0x10
mov ecx, dword [ebp - 0x94]
mov eax, ecx
test ecx, ecx
jle 0x586dad
mov ecx, esi
lea esp, [esp]
cmp dword [ecx], 0
jne 0x586dad
dec eax
sub ecx, 0x50
test eax, eax
jg 0x586da0
mov ecx, dword [ebp - 0xb0]
lea eax, [eax + eax*4]
add eax, eax
mov eax, dword [ecx + eax*8 + 0x2fc]
mov dword [ebp - 0x70], eax
mov eax, dword [edx + 0x28]
mov dword [ebp - 0xdc], eax
test al, 0x10
je 0x586eaa
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
mov ebx, dword [edx + 0x1c]
mov edx, dword [edx + 0x18]
cmp dword [eax + 0x30], ecx
jg 0x586e12
push edx
push 0
push ebx
push 0xf
push edi
call fcn.00544a50
add esp, 0x14
jmp 0x586e40
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
jmp 0x586c53
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x88]
cmp dword [eax + 0x30], edx
jg 0x586e6d
push 0
push dword [ebp - 0x7c]
push ebx
push 0x10
push edi
call fcn.00544a50
mov edx, eax
mov byte [esi + 0x2d], 0xd
add esp, 0x14
mov dword [esi + 0x34], edx
jmp 0x58747f
lea eax, [edx + 1]
mov dword [edi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [ebp - 0x7c]
mov dword [eax + ecx*4], 0x10
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esi + 0x34], edx
mov byte [esi + 0x2d], 0xd
jmp 0x58747f
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 0x24]
test ecx, 0x400
je 0x5873a5
movzx ecx, word [eax + 0x28]
inc dword [ebx + 0x3c]
mov dword [ebp - 0x6c], ecx
lea edx, [ecx + 2]
cmp edx, 1
jne 0x586ef7
mov al, byte [ebx + 0x13]
test al, al
jne 0x586ee3
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x74], eax
jmp 0x586f20
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0x15c]
mov dword [ebp - 0x74], eax
jmp 0x586f20
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x74], eax
cmp edx, dword [ebx + 0x1c]
jg 0x586f0c
add eax, edx
sub dword [ebx + 0x1c], edx
mov dword [ebx + 0x20], eax
jmp 0x586f20
mov eax, dword [ebx + 0x2c]
lea edi, [eax + 1]
add eax, edx
mov dword [ebp - 0x74], edi
mov edi, dword [ebp - 0xbc]
mov dword [ebx + 0x2c], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x68], eax
test ecx, ecx
jle 0x586f86
xor edi, edi
lea esp, [esp]
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x30]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x586f7a
mov eax, dword [ebp - 0x74]
add eax, 2
add eax, edi
test byte [ecx + 0xc], 1
je 0x586f69
push eax
push dword [ebp - 0x9c]
push edi
push esi
push ecx
push ebx
call fcn.00538320
mov edx, dword [esi + 0x10]
add esp, 0x18
mov dword [ebp - 0x68], edx
jmp 0x586f7a
push 1
push eax
mov eax, dword [ecx]
push dword [eax + 0x10]
push ebx
call fcn.00538880
add esp, 0x10
inc edi
cmp edi, dword [ebp - 0x6c]
jl 0x586f30
mov edi, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xac]
mov ecx, dword [edi + 0x88]
mov edx, dword [eax + 0x18]
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x586fb0
push 0
push dword [ebp - 0x74]
push edx
push 0x43
push edi
call fcn.00544a50
add esp, 0x14
jmp 0x586fe1
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x74]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0x74]
mov ecx, dword [edi + 0x88]
inc edx
mov dword [ebp - 0x70], edx
cmp dword [eax + 0x30], ecx
jg 0x587009
push 0
push edx
push dword [ebp - 0x6c]
push 0x43
push edi
call fcn.00544a50
add esp, 0x14
jmp 0x58703d
mov edx, dword [ebp - 0x6c]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x70]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp - 0xac]
or eax, 0xffffffff
mov edx, 0xfffffff9
cmp byte [ecx + 0x1c], 0
cmovne eax, edx
mov edx, dword [edi + 0x88]
mov dword [ebp - 0x78], eax
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x84], eax
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x30], edx
jg 0x587087
push dword [ebp - 0x74]
push dword [ebp - 0x68]
push dword [ebp - 0x8c]
push 0xb
push edi
call fcn.00544a50
add esp, 0x14
mov edx, eax
jmp 0x5870c3
mov ebx, dword [ebp - 0x8c]
lea eax, [edx + 1]
mov dword [edi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [ebp - 0x68]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [ebp - 0x74]
mov dword [eax + ecx*4 + 0xc], ebx
mov ebx, dword [ebp - 0xd0]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x5870e7
mov eax, dword [ebp - 0x78]
cmp eax, 0xfffffff4
je 0x587141
mov ecx, dword [ebp - 0x84]
push ecx
push eax
push dword [edi]
call fcn.00542390
add esp, 0xc
jmp 0x587141
test edx, edx
jns 0x5870f2
mov edx, dword [edi + 0x88]
dec edx
mov eax, dword [edi + 0x58]
lea ecx, [edx + edx*4]
lea edx, [eax + ecx*4]
mov eax, dword [ebp - 0x78]
test eax, eax
jns 0x58712f
cmp byte [edx + 1], 0
jne 0x58712f
mov ecx, dword [ebp - 0x84]
cmp eax, 0xfffffffd
jne 0x58711b
mov dword [edx + 0x10], ecx
mov byte [edx + 1], al
jmp 0x587141
test ecx, ecx
je 0x587141
mov dword [edx + 0x10], ecx
mov byte [edx + 1], al
cmp eax, 0xfffffff4
jne 0x587141
inc dword [ecx + 0xc]
jmp 0x587141
mov ecx, dword [ebp - 0x84]
push eax
push ecx
push edx
push edi
call fcn.0058cd60
add esp, 0x10
mov edx, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0x8c]
mov byte [edx + 0x1c], 0
mov dword [esi + 0x30], eax
mov eax, 0x3d
cmp byte [ecx + 0x31], 0
mov ecx, 0xa8
cmovne eax, ecx
mov ecx, dword [ebp - 0x6c]
mov byte [esi + 0x2d], al
dec ecx
mov eax, dword [edi + 0x88]
mov dword [esi + 0x34], eax
mov dword [ebp - 0x7c], ecx
js 0x587397
mov eax, dword [esi + 0x38]
lea eax, [eax + eax*2]
shl eax, 2
mov dword [ebp - 0x78], eax
mov eax, dword [edx + 0x30]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x70], edx
cmp ecx, 0x10
jge 0x5871be
mov eax, dword [ebp - 0xac]
mov ax, word [eax + 0x1e]
shr ax, cl
test al, 1
je 0x5871bb
push edx
push esi
call fcn.0053c4b0
jmp 0x587381
mov ecx, dword [ebp - 0x7c]
test byte [edx + 0xc], 1
je 0x587387
mov eax, dword [ebp - 0xc8]
cmp byte [eax + 0x49], 0
jne 0x587296
mov ecx, dword [ebp - 0x78]
mov eax, dword [esi + 0x3c]
sub ecx, 0xc
mov dword [ebp - 0x78], ecx
mov ecx, dword [eax + ecx + 4]
test ecx, ecx
jns 0x5871f3
mov ecx, dword [edi + 0x88]
dec ecx
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x587202
mov eax, 0x89e9dc
jmp 0x58720b
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x94], ecx
mov ecx, dword [eax + 4]
movzx eax, byte [eax]
mov dword [ebp - 0x88], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x68], ecx
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x58724f
push edx
push dword [ebp - 0x94]
push dword [ebp - 0x68]
push dword [ebp - 0x88]
push edi
call fcn.00544a50
add esp, 0x14
jmp 0x587296
mov ebx, dword [ebp - 0x88]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov byte [eax + ecx*4], bl
xor ebx, ebx
mov word [eax + ecx*4 + 2], bx
mov ebx, dword [ebp - 0x68]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [ebp - 0x94]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [ebp - 0xd0]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
push 0
push 0x30
push dword [ebx]
call fcn.0055bdf0
add esp, 0xc
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x587384
push 0x30
push 0
push eax
call fcn.00723180
mov eax, dword [ebp - 0x6c]
or ecx, 0xffffffff
push eax
mov byte [eax], 0x35
mov word [eax + 0x22], cx
call fcn.0053f840
mov eax, dword [ebx]
add esp, 0x10
mov ecx, dword [eax + 0x70]
mov eax, dword [ebp - 0x6c]
cmp dword [eax + 0x18], ecx
jle 0x5872eb
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.0055dbe0
add esp, 0xc
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x6c]
push 0
push 0x31
mov eax, dword [eax]
push dword [ebp - 0xc8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
call fcn.0055bdf0
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x70], edx
test edx, edx
je 0x58733e
push 0x30
push 0
push edx
call fcn.00723180
mov edx, dword [ebp - 0x70]
add esp, 0xc
or eax, 0xffffffff
mov word [edx + 0x22], ax
lea eax, [edx + 0x30]
mov byte [edx], 0x96
mov dword [edx + 8], eax
mov byte [eax], 0
mov dword [edx + 0x18], 1
mov ecx, dword [ebp - 0x6c]
mov dword [ecx + 0x10], edx
test edx, edx
je 0x58736e
mov edi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x7c]
add edi, 2
add eax, edi
push 0
mov dword [edx + 0x1c], eax
push dword [esi + 0x18]
push ecx
push ebx
call fcn.005611e0
mov edi, dword [ebp - 0xbc]
add esp, 0x10
mov ecx, dword [ebp - 0x6c]
push ecx
push dword [ebp - 0xc8]
mov dword [ecx + 0xc], 0
call fcn.00560f70
add esp, 8
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0xac]
dec ecx
mov dword [ebp - 0x7c], ecx
jns 0x587190
push ebx
call fcn.0055e3e0
add esp, 4
jmp 0x58747f
mov edx, ecx
and edx, 0x100
je 0x5874f4
test cl, 5
je 0x5874f4
mov eax, dword [eax + 0x30]
mov eax, dword [eax]
inc dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x2c]
push ecx
push dword [ebp - 0x9c]
mov dword [ebp - 0x70], ecx
push 0
push esi
push eax
push ebx
call fcn.00538320
mov edx, eax
add esp, 0x18
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x68], edx
cmp edx, eax
je 0x5873f7
push eax
push ebx
call fcn.00570e30
mov edx, dword [ebp - 0x68]
add esp, 8
mov eax, dword [esi + 0x10]
mov ecx, dword [edi + 0x88]
mov dword [ebp - 0x78], eax
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x587425
push edx
push dword [ebp - 0x78]
push dword [ebp - 0x8c]
push 0x1f
push edi
call fcn.00544a50
mov edx, dword [ebp - 0x68]
add esp, 0x14
jmp 0x58745e
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov edi, dword [ebp - 0x8c]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [ebp - 0x78]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [ebp - 0xbc]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push 1
push edx
push ebx
call fcn.0055e460
push dword [ebp - 0x68]
push 0xffffffffffffffff
push dword [ebp - 0x8c]
push ebx
call fcn.0055e4f0
add esp, 0x1c
mov byte [esi + 0x2d], 0xa8
xor eax, eax
mov edx, eax
neg edx
sbb edx, edx
add edx, 2
mov dword [ebp - 0x78], edx
mov edx, dword [ebp - 0xd4]
mov ecx, dword [edx + 0xc]
xor eax, eax
mov ebx, dword [edx + 0x14]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x70], ecx
test ecx, ecx
jle 0x588bbe
lea esp, [esp]
movzx edx, word [ebx + 0xa]
xor esi, esi
test dl, 6
jne 0x588ba6
mov eax, dword [ebp - 0xa4]
mov edi, dword [ebp - 0xa4]
mov ecx, dword [ebx + 0x28]
and ecx, dword [eax + 0x48]
mov eax, dword [ebx + 0x2c]
and eax, dword [edi + 0x4c]
or ecx, eax
mov edi, dword [ebp - 0xbc]
je 0x588a14
mov eax, dword [ebp - 0xb0]
mov byte [eax + 0x32], 1
jmp 0x588ba3
test edx, edx
je 0x58779d
test cl, 2
je 0x58779d
xor edx, edx
mov dword [ebp - 0xa0], 0xa8
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x68], edx
test cl, 0x20
je 0x587549
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x78], 1
mov edx, dword [eax]
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x68], edx
test cl, 0x10
je 0x58755f
mov eax, dword [eax + 0x30]
mov ecx, dword [ebp - 0x78]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x84], ecx
jmp 0x587561
xor ecx, ecx
cmp dword [ebp - 0x9c], 0
je 0x587575
mov dword [ebp - 0x84], edx
mov edx, ecx
mov dword [ebp - 0x68], edx
test edx, edx
je 0x587650
mov edx, dword [edx]
mov dword [ebp - 0x6c], 0x1a18191b
mov dword [ebp - 0x78], edx
mov eax, dword [edx + 0x10]
push eax
mov dword [ebp - 0x70], eax
call fcn.005619d0
add esp, 4
test eax, eax
je 0x5875e5
mov al, byte [ebx + 0x13]
test al, al
jne 0x5875ab
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x5875ba
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0x15c]
push 1
push eax
push dword [edx + 0x10]
mov dword [ebp - 0x68], eax
push ebx
mov dword [ebp - 0x94], eax
call fcn.00538880
mov eax, dword [ebp - 0x78]
add esp, 0x10
movzx eax, byte [eax]
sub eax, 0x36
or eax, 1
movzx ecx, byte [ebp + eax - 0x6c]
jmp 0x58761e
lea eax, [ebp - 0xcc]
push eax
push dword [ebp - 0x70]
push ebx
call fcn.00560af0
push dword [ebp - 0x68]
mov dword [ebp - 0x94], eax
push esi
call fcn.0053c4b0
mov eax, dword [ebp - 0x78]
add esp, 0x14
movzx eax, byte [eax]
movzx ecx, byte [ebp + eax - 0xa2]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x68], eax
push dword [ebp - 0x94]
push dword [ebp - 0x7c]
push dword [ebp - 0x8c]
push ecx
push edi
call fcn.0057a360
push 1
push dword [ebp - 0x94]
push ebx
call fcn.0055e460
push dword [ebp - 0x68]
push ebx
call fcn.00570e30
add esp, 0x28
jmp 0x587675
push dword [ebp - 0x70]
xor eax, eax
cmp dword [ebp - 0x9c], eax
push dword [ebp - 0x8c]
sete al
lea eax, [eax*4 + 0x21]
push eax
push edi
call fcn.0057a2f0
add esp, 0x10
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x587711
mov eax, dword [eax]
inc dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x2c]
push 1
push ecx
push dword [eax + 0x10]
mov dword [ebp - 0x70], eax
push ebx
mov dword [ebp - 0x88], ecx
call fcn.00538880
mov edx, dword [ebp - 0x70]
mov eax, dword [edx + 0x10]
push eax
mov dword [ebp - 0x70], eax
call fcn.005619d0
add esp, 0x14
test eax, eax
jne 0x5876da
mov al, byte [edx]
cmp al, 0x38
je 0x5876c0
cmp al, 0x36
jne 0x5876da
xor edx, edx
cmp dword [ebp - 0x9c], edx
sete dl
lea edx, [edx*2 + 0x37]
mov dword [ebp - 0xa0], edx
jmp 0x5876f2
xor eax, eax
cmp dword [ebp - 0x9c], eax
setne al
lea eax, [eax*2 + 0x36]
mov dword [ebp - 0xa0], eax
push dword [ebp - 0x70]
call fcn.005619d0
add esp, 4
test eax, eax
jne 0x587711
mov eax, dword [ebp - 0x84]
push eax
push esi
call fcn.0053c4b0
add esp, 8
cmp dword [ebp - 0x9c], 0
mov ecx, dword [edi + 0x88]
sete al
mov dword [esi + 0x34], ecx
add al, 6
cmp dword [ebp - 0xa0], 0xa8
mov byte [esi + 0x2d], al
mov eax, dword [ebp - 0x8c]
mov dword [esi + 0x30], eax
je 0x58747f
inc dword [ebx + 0x2c]
mov esi, dword [ebx + 0x2c]
push esi
push eax
push 0x7c
push edi
call fcn.0057a2f0
push esi
push 0xffffffffffffffff
push dword [ebp - 0x8c]
push ebx
call fcn.0055e4f0
push esi
push dword [ebp - 0x7c]
push dword [ebp - 0x88]
push dword [ebp - 0xa0]
push edi
call fcn.0057a360
mov eax, dword [edi + 0x88]
add esp, 0x34
test eax, eax
jle 0x58747f
lea ecx, [eax + eax*4]
mov edx, 0x53
mov eax, dword [edi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x58747f
test ecx, 0x200
je 0x588037
movzx edx, word [eax + 0x18]
mov dword [ebp - 0x6c], edx
movzx edx, word [eax + 0x1a]
mov dword [ebp - 0x70], edx
movzx edx, dx
mov dword [ebp - 0x84], edx
movzx edx, word [eax + 0x1c]
mov dword [ebp - 0x88], edx
movzx edx, dx
mov dword [ebp - 0xa0], edx
xor edx, edx
mov dword [ebp - 0xcc], edx
mov byte [ebp - 0x7d], dl
mov byte [ebp - 0x95], dl
mov edx, dword [eax + 0x20]
mov dword [ebp - 0xb4], edx
mov edx, dword [esi + 8]
mov dword [ebp - 0xa8], edx
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0x90], 0
test byte [edx + 0x2c], 1
je 0x58784b
cmp byte [edx + 0x2f], 0
mov edx, dword [ebp - 0x6c]
jle 0x58784e
mov ebx, dword [ebp - 0xb4]
cmp word [ebx + 0x32], dx
mov ebx, dword [ebp - 0xd0]
jbe 0x58784e
mov byte [ebp - 0x7d], 1
mov dword [ebp - 0x90], 1
jmp 0x58784e
mov edx, dword [ebp - 0x6c]
movzx edx, dx
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x68], edx
test cl, 0x20
je 0x587899
mov eax, dword [eax + 0x30]
mov edi, edx
mov eax, dword [eax + edi*4]
inc edi
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x70]
movzx eax, ax
mov dword [ebp - 0x68], edi
mov edi, dword [ebp - 0x90]
cmp edi, eax
cmovle edi, eax
mov eax, edi
mov dword [ebp - 0x90], edi
mov edi, dword [ebp - 0xbc]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xac]
test cl, 0x10
je 0x58795c
mov eax, dword [eax + 0x30]
mov ecx, dword [ebp - 0x68]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x88]
movzx eax, ax
cmp ecx, eax
cmovle ecx, eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x90], ecx
mov ecx, 0x100
test word [eax + 0xa], cx
je 0x58791e
mov eax, dword [ebx + 0x2c]
inc eax
push eax
push 1
push 0x43
mov dword [ebx + 0x2c], eax
push edi
mov dword [esi + 0x24], eax
call fcn.0057a2f0
mov eax, dword [edi + 0x88]
xor ecx, ecx
shl dword [esi + 0x24], 1
add esp, 0x10
mov edx, dword [ebp - 0x74]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0xb4]
mov eax, dword [eax + 0x1c]
cmp byte [edx + eax], 1
sete cl
xor ecx, dword [ebp - 0x9c]
or dword [esi + 0x24], ecx
cmp dword [ebp - 0xc4], 0
jne 0x58795c
mov eax, dword [ebp - 0xb4]
mov eax, dword [eax + 4]
movsx ecx, word [eax + edx*2]
mov dword [ebp - 0x70], ecx
test ecx, ecx
js 0x587953
mov eax, dword [ebp - 0xb4]
add ecx, ecx
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xc], 0
je 0x587958
mov ecx, dword [ebp - 0x70]
cmp ecx, 0xfffffffe
jne 0x58795c
mov byte [ebp - 0x7d], 1
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x6c]
movzx eax, word [eax + 0x32]
mov dword [ebp - 0x70], eax
cmp cx, ax
jae 0x587c41
mov eax, dword [ebp - 0xb4]
xor ecx, ecx
mov eax, dword [eax + 0x1c]
cmp byte [edx + eax], cl
mov edx, dword [ebp - 0x9c]
sete cl
cmp edx, ecx
je 0x58799f
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x6c]
test edx, edx
je 0x5879e8
cmp ax, cx
jne 0x5879e8
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xc4]
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0xc4], eax
mov al, byte [ebp - 0x7d]
mov byte [ebp - 0x95], al
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xc0], ecx
movzx ecx, di
mov edi, dword [ebp - 0xbc]
movzx eax, al
mov byte [ebp - 0x7d], 0
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0xd8]
push eax
push dword [ebp - 0x90]
push edx
push esi
push ebx
call fcn.00537a00
mov ecx, dword [ebp - 0xd8]
add esp, 0x14
mov dword [ebp - 0x7c], eax
test ecx, ecx
je 0x587a31
cmp word [ebp - 0xa0], 0
je 0x587a31
mov eax, dword [ebp - 0x74]
add eax, ecx
push eax
push dword [ebp - 0xc8]
call fcn.0055c0c0
add esp, 8
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x587a54
test byte [eax + 0xc], 0x28
mov dword [ebp - 0xb8], 0
je 0x587a5e
mov dword [ebp - 0xb8], 1
mov ecx, dword [ebp - 0xc0]
test ecx, ecx
je 0x587a75
test byte [ecx + 0xc], 0x28
mov dword [ebp - 0x68], 0
je 0x587a7c
mov dword [ebp - 0x68], 1
test eax, eax
jne 0x587c4c
mov edx, dword [ebp - 0x6c]
test dx, dx
jne 0x587c4c
mov ecx, dword [ebp - 0x74]
mov edx, ecx
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x90], edx
mov al, byte [ebp - 0x7d]
test al, al
je 0x587adf
mov eax, dword [ebp - 0x7c]
add eax, ecx
push eax
push 0
push 0x46
push edi
call fcn.0057a2f0
mov edx, dword [ebp - 0x90]
add esp, 0x10
mov al, byte [ebp - 0x7d]
inc edx
mov dword [ebp - 0x90], edx
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0x88], 1
push dword [ebp - 0xd8]
movzx eax, al
mov ecx, edx
sub ecx, eax
push ecx
push dword [ebp - 0x7c]
push ebx
call fcn.00537de0
mov eax, dword [ebp - 0xac]
add esp, 0x10
mov ecx, dword [ebp - 0x90]
movzx eax, word [eax + 0x2a]
test ax, ax
je 0x587b12
cmp ecx, eax
je 0x587b49
mov eax, dword [ebp - 0xb8]
push ecx
mov ecx, dword [ebp - 0x88]
push dword [ebp - 0x7c]
push dword [ebp - 0x94]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x9c]
push dword [ebp - 0xa8]
movzx eax, byte [ecx + eax*2 + 0x7bb01c]
push eax
push edi
call fcn.0057a450
add esp, 0x18
mov eax, dword [ebp - 0xc0]
test eax, eax
je 0x587d42
mov eax, dword [eax]
push 1
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x74]
add eax, dword [ebp - 0x7c]
push eax
push ebx
mov dword [ebp - 0x88], eax
call fcn.0055e460
mov eax, dword [ebp - 0xa0]
movzx eax, ax
push eax
push dword [ebp - 0x88]
push dword [ebp - 0xb8]
push ebx
call fcn.00538880
push dword [ebp - 0xc0]
push esi
push edi
call fcn.00593720
mov edx, dword [ebp - 0xb8]
push edx
call fcn.0055e610
add esp, 0x2c
test eax, eax
je 0x587bd0
push dword [ebp - 0x94]
push dword [ebp - 0x88]
push 0x32
push edi
call fcn.0057a2f0
mov edx, dword [ebp - 0xb8]
add esp, 0x10
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x587c0b
mov ecx, dword [ebp - 0xa0]
push eax
movzx eax, cx
push eax
push edx
call fcn.0058c0b0
mov edx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xa0]
push edx
movzx eax, cx
push eax
push dword [ebp - 0x88]
push ebx
call fcn.00537de0
add esp, 0x1c
mov ecx, dword [ebp - 0xa0]
push dword [ebp - 0xb8]
movzx eax, cx
add dword [ebp - 0x74], eax
call fcn.005619d0
add esp, 4
test eax, eax
jne 0x587d39
push dword [ebp - 0xc0]
push esi
call fcn.0053c4b0
add esp, 8
jmp 0x587d78
mov edx, dword [ebp - 0x9c]
jmp 0x587996
mov ecx, dword [ebp - 0x74]
mov edx, ecx
mov dword [ebp - 0x88], 1
mov dword [ebp - 0x90], edx
test eax, eax
je 0x587aa1
mov edx, dword [ebp - 0x84]
mov eax, dword [eax]
add ecx, dword [ebp - 0x7c]
movzx edx, dx
push edx
mov eax, dword [eax + 0x10]
push ecx
push eax
push ebx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x70], ecx
call fcn.00538880
push dword [ebp - 0xc4]
mov edi, dword [ebp - 0xbc]
push esi
push edi
call fcn.00593720
mov edx, dword [ebp - 0x6c]
push edx
call fcn.0055e610
add esp, 0x20
test eax, eax
je 0x587cc3
push dword [ebp - 0x94]
push dword [ebp - 0x70]
push 0x32
push edi
call fcn.0057a2f0
mov edx, dword [ebp - 0x6c]
add esp, 0x10
mov ecx, dword [ebp - 0xd8]
test ecx, ecx
je 0x587ce6
mov eax, dword [ebp - 0x74]
add eax, ecx
mov ecx, dword [ebp - 0x84]
push eax
movzx eax, cx
push eax
push edx
call fcn.0058c0b0
add esp, 0xc
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x90]
push dword [ebp - 0x6c]
movzx eax, cx
add edx, eax
mov dword [ebp - 0x90], edx
call fcn.005619d0
add esp, 4
test eax, eax
jne 0x587d28
push dword [ebp - 0xc4]
push esi
call fcn.0053c4b0
mov edx, dword [ebp - 0x90]
add esp, 8
xor al, al
jmp 0x587adf
mov dword [ebp - 0xb8], 1
xor al, al
jmp 0x587adf
mov dword [ebp - 0x68], 1
jmp 0x587d78
cmp byte [ebp - 0x95], 0
je 0x587d78
mov esi, dword [ebp - 0x74]
add esi, dword [ebp - 0x7c]
push esi
push 0
push 0x46
push edi
call fcn.0057a2f0
push 1
push esi
push ebx
call fcn.0055e460
mov esi, dword [ebp - 0xa4]
add esp, 0x1c
inc dword [ebp - 0x74]
mov dword [ebp - 0x68], 0
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xc8]
test ecx, ecx
je 0x587dd0
test edx, edx
je 0x587dc1
cmp dword [edx + 0x1c8], 0
je 0x587da1
push ecx
push edx
call fcn.00547160
add esp, 8
jmp 0x587dca
cmp ecx, dword [edx + 0x128]
jb 0x587dc1
cmp ecx, dword [edx + 0x12c]
jae 0x587dc1
mov eax, dword [edx + 0x124]
mov dword [ecx], eax
mov dword [edx + 0x124], ecx
jmp 0x587dd0
push ecx
call fcn.0052c640
add esp, 4
mov edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xcc]
test ecx, ecx
je 0x587e1c
test edx, edx
je 0x587e13
cmp dword [edx + 0x1c8], 0
je 0x587df3
push ecx
push edx
call fcn.00547160
add esp, 8
jmp 0x587e1c
cmp ecx, dword [edx + 0x128]
jb 0x587e13
cmp ecx, dword [edx + 0x12c]
jae 0x587e13
mov eax, dword [edx + 0x124]
mov dword [ecx], eax
mov dword [edx + 0x124], ecx
jmp 0x587e1c
push ecx
call fcn.0052c640
add esp, 4
mov eax, dword [edi + 0x88]
mov dword [esi + 0x34], eax
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x587e57
mov ecx, dword [ebp - 0x68]
push eax
push dword [ebp - 0x7c]
mov eax, dword [ebp - 0x9c]
push dword [ebp - 0x94]
push dword [ebp - 0xa8]
movzx eax, byte [ecx + eax*2 + str.__SQLite_format_3]
push eax
push edi
call fcn.0057a450
add esp, 0x18
cmp dword [ebp - 0x78], 0
jne 0x587fb9
mov edx, dword [ebp - 0xb4]
mov eax, dword [edx + 0xc]
test byte [eax + 0x24], 0x20
jne 0x587eef
mov ecx, dword [ebp - 0xb0]
movzx eax, word [ecx + 0x2c]
test eax, 0x400
jne 0x587ea9
test eax, 0x1000
je 0x587e8e
cmp byte [ecx + 0x31], 1
je 0x587ea9
push dword [ebp - 0xa8]
push dword [ebp - 0x8c]
push edx
push ecx
call fcn.005380d0
add esp, 0x10
jmp 0x587fb9
inc dword [ebx + 0x2c]
mov esi, dword [ebx + 0x2c]
push esi
push dword [ebp - 0xa8]
push 0x83
push edi
call fcn.0057a2f0
push esi
push 0xffffffffffffffff
push dword [ebp - 0x8c]
push ebx
call fcn.0055e4f0
push esi
push 0
push dword [ebp - 0x8c]
push 0x20
push edi
call fcn.0057a360
mov esi, dword [ebp - 0xa4]
add esp, 0x34
jmp 0x587fb9
mov ecx, dword [ebp - 0x8c]
cmp ecx, dword [ebp - 0xa8]
je 0x587fb9
push eax
call fcn.005705f0
mov dword [ebp - 0x68], eax
movzx eax, word [eax + 0x32]
push eax
push ebx
call fcn.00566560
mov dword [ebp - 0x88], eax
xor ecx, ecx
mov eax, dword [ebp - 0x68]
add esp, 0xc
cmp cx, word [eax + 0x32]
jae 0x587f97
xor esi, esi
jmp 0x587f30
mov edx, dword [ebp - 0xb4]
xor ecx, ecx
movzx edx, word [edx + 0x34]
test edx, edx
jle 0x587f61
mov eax, dword [eax + 4]
movzx ebx, word [eax + esi*2]
mov eax, dword [ebp - 0xb4]
mov eax, dword [eax + 4]
cmp bx, word [eax]
je 0x587fee
inc ecx
add eax, 2
cmp ecx, edx
jl 0x587f50
or ecx, 0xffffffff
mov eax, dword [ebp - 0x88]
add eax, esi
push eax
movsx eax, cx
push eax
push dword [ebp - 0xa8]
push 0x62
push edi
call fcn.0057a360
mov eax, dword [ebp - 0x68]
inc esi
add esp, 0x14
movzx eax, word [eax + 0x32]
cmp esi, eax
mov eax, dword [ebp - 0x68]
jl 0x587f30
mov esi, dword [ebp - 0xa4]
movzx eax, word [eax + 0x32]
push eax
push dword [ebp - 0x88]
push dword [ebp - 0xe4]
push dword [ebp - 0x8c]
push 0x1d
push edi
call fcn.0057a450
add esp, 0x18
push dword [ebp - 0xb0]
push dword [ebp - 0xa8]
push dword [ebp - 0x8c]
push dword [ebp - 0xb4]
call fcn.005931f0
mov ecx, dword [ebp - 0xac]
add esp, 0x10
test dword [ecx + 0x24], 0x1000
je 0x587ff6
mov byte [esi + 0x2d], 0xa8
jmp 0x588005
movzx ecx, cx
jmp 0x587f64
cmp dword [ebp - 0x9c], 0
sete al
add al, 6
mov byte [esi + 0x2d], al
mov eax, dword [ebp - 0xa8]
mov dword [esi + 0x30], eax
mov al, byte [ecx + 0x26]
and al, 1
mov byte [esi + 0x2e], al
test byte [ecx + 0x24], 0xf
jne 0x588020
mov byte [esi + 0x2f], 1
cmp dword [ebp - 0x78], 0
je 0x588a09
xor eax, eax
mov dword [ebp - 0xb4], eax
jmp 0x587481
test ecx, 0x2000
je 0x5889c2
mov eax, dword [ebx + 0x28]
inc dword [ebx + 0x2c]
mov dword [ebp - 0x70], eax
inc eax
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x2c]
push edi
mov dword [ebp - 0x90], 0
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x6c], 0
call fcn.00581710
mov edx, dword [ebp - 0xb0]
add esp, 4
mov dword [ebp - 0x88], eax
xor eax, eax
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x9c], 0
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xc4], ecx
mov eax, dword [eax + 0x30]
mov eax, dword [eax]
mov dword [ebp - 0xac], eax
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xcc]
mov byte [esi + 0x2d], 0x3f
mov dword [esi + 0x30], eax
mov al, byte [edx + 0x2e]
cmp al, 1
jbe 0x588220
mov ecx, dword [ebp - 0xc8]
movzx eax, al
sub eax, dword [ebp - 0x94]
dec eax
mov dword [ebp - 0x78], eax
push 0
lea eax, [eax + eax*4]
shl eax, 4
add eax, 0x58
push eax
test ecx, ecx
je 0x588112
push ecx
call fcn.0055bdf0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xc0], ecx
jmp 0x588122
call fcn.0056a840
add esp, 8
mov dword [ebp - 0xc0], eax
mov ecx, eax
test ecx, ecx
jne 0x58813d
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00722035
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x78]
lea eax, [edx + 1]
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [ebp - 0x84]
movdqu xmm0, xmmword [eax]
movdqu xmmword [ecx + 8], xmm0
movdqu xmm0, xmmword [eax + 0x10]
movdqu xmmword [ecx + 0x18], xmm0
movdqu xmm0, xmmword [eax + 0x20]
movdqu xmmword [ecx + 0x28], xmm0
movdqu xmm0, xmmword [eax + 0x30]
movdqu xmmword [ecx + 0x38], xmm0
movdqu xmm0, xmmword [eax + 0x40]
mov eax, dword [ebp - 0xb0]
movdqu xmmword [ecx + 0x48], xmm0
mov eax, dword [eax + 4]
add eax, 8
mov dword [ebp - 0x78], eax
cmp edx, 1
jl 0x5881ec
add ecx, 0x58
lea edi, [esi + 0x7c]
lea esp, [esp]
movzx eax, byte [edi]
lea edi, [edi + 0x50]
lea ecx, [ecx + 0x50]
lea eax, [eax + eax*4]
shl eax, 4
add eax, dword [ebp - 0x78]
movdqu xmm0, xmmword [eax]
movdqu xmmword [ecx - 0x50], xmm0
movdqu xmm0, xmmword [eax + 0x10]
movdqu xmmword [ecx - 0x40], xmm0
movdqu xmm0, xmmword [eax + 0x20]
movdqu xmmword [ecx - 0x30], xmm0
movdqu xmm0, xmmword [eax + 0x30]
movdqu xmmword [ecx - 0x20], xmm0
movdqu xmm0, xmmword [eax + 0x40]
movdqu xmmword [ecx - 0x10], xmm0
dec edx
jne 0x5881a0
mov edi, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xb0]
test byte [eax + 0x2c], 0x10
jne 0x588269
test byte [ecx + 0x24], 0x20
jne 0x58822b
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
push eax
push 0
push 0x46
push edi
mov dword [ebp - 0xa0], eax
call fcn.0057a2f0
add esp, 0x10
jmp 0x588260
mov eax, dword [edx + 4]
mov dword [ebp - 0xc0], eax
jmp 0x5881f2
push ecx
call fcn.005705f0
mov esi, eax
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0xa0], eax
lea ecx, [eax + 1]
mov dword [ebx + 0x28], ecx
movzx ecx, word [esi + 0x32]
push ecx
push eax
push 0x6d
push edi
call fcn.0057a2f0
push esi
push ebx
call fcn.005833a0
mov esi, dword [ebp - 0xa4]
add esp, 0x1c
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x6c], eax
push dword [ebp - 0xcc]
push 0
push 0x43
push edi
call fcn.0057a2f0
mov dword [ebp - 0xdc], eax
add esp, 0x10
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax + 0xc]
cmp ecx, 1
jle 0x5883b9
test ecx, ecx
jle 0x5883b9
mov esi, dword [ebp - 0xc8]
xor ecx, ecx
xor edi, edi
mov dword [ebp - 0x78], ecx
xor ebx, ebx
jmp 0x5882b0
mov eax, dword [eax + 0x14]
add eax, ecx
mov edx, dword [eax]
cmp eax, dword [ebp - 0xac]
je 0x5882fd
test byte [edx + 4], 1
jne 0x5882fd
test byte [eax + 0xa], 6
jne 0x5882fd
mov ebx, 0x1fff
test word [eax + 0xc], bx
mov ebx, dword [ebp - 0xa8]
je 0x5882fd
push 0
push 0
push edx
push esi
call fcn.0053ec60
push eax
push ebx
push esi
call fcn.0055e0f0
mov ecx, dword [ebp - 0x78]
mov ebx, eax
add esp, 0x1c
mov dword [ebp - 0xa8], ebx
mov eax, dword [ebp - 0xd4]
inc edi
add ecx, 0x30
mov dword [ebp - 0x78], ecx
cmp edi, dword [eax + 0xc]
jl 0x5882b0
mov edi, dword [ebp - 0xbc]
test ebx, ebx
mov ebx, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xa4]
je 0x5883bd
push 0
push 0x30
push dword [ebx]
call fcn.0055bdf0
add esp, 0xc
mov dword [ebp - 0x68], eax
test eax, eax
je 0x58839b
push 0x30
push 0
push eax
call fcn.00723180
mov ecx, dword [ebp - 0x68]
or eax, 0xffffffff
push ecx
mov word [ecx + 0x22], ax
mov eax, dword [ebp - 0xa8]
mov dword [ecx + 0x10], eax
mov byte [ecx], 0x2c
mov eax, dword [eax + 4]
and eax, 0x200104
or dword [ecx + 4], eax
call fcn.0053f840
mov eax, dword [ebx]
add esp, 0x10
mov ecx, dword [eax + 0x70]
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x18], ecx
jle 0x5883af
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.0055dbe0
mov eax, dword [ebp - 0x68]
add esp, 0xc
mov edx, eax
mov dword [ebp - 0xa8], edx
jmp 0x5883c3
mov eax, dword [ebp - 0xa8]
push eax
push dword [ebx]
call fcn.00560f70
mov eax, dword [ebp - 0x68]
add esp, 8
mov edx, eax
mov dword [ebp - 0xa8], edx
jmp 0x5883c3
xor edx, edx
jmp 0x5883c3
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xb0]
mov ecx, 0x400
mov ax, word [eax + 0x2c]
and ax, cx
mov ecx, dword [ebp - 0xd8]
or ax, 0x20
movzx eax, ax
mov dword [ebp - 0x100], eax
xor eax, eax
mov dword [ebp - 0xb8], eax
cmp dword [ecx + 0xc], eax
jle 0x58886b
mov dword [ebp - 0xf8], 0x10
mov dword [ebp - 0xe8], 1
lea ecx, [ecx]
mov edi, dword [ebp - 0x8c]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [ecx + 0x14]
cmp dword [eax + 0x14], edi
mov edi, dword [ebp - 0xbc]
je 0x58843f
mov esi, 0x400
test word [eax + 0xc], si
mov esi, dword [ebp - 0xa4]
je 0x58884f
mov eax, dword [eax]
xor ecx, ecx
mov dword [ebp - 0x78], ecx
test edx, edx
je 0x588455
test byte [eax + 4], 1
jne 0x588455
mov dword [edx + 0xc], eax
mov eax, edx
push dword [ebp - 0x70]
push dword [ebp - 0x100]
push 0
push 0
push eax
push dword [ebp - 0xc0]
push ebx
call fcn.00586120
add esp, 0x1c
mov dword [ebp - 0xec], eax
test eax, eax
je 0x588849
movzx ecx, byte [esi + 0x2c]
push 0
push ecx
push dword [ebp - 0x94]
lea ecx, [eax + 0x2f0]
push ecx
push dword [ebp - 0xc0]
push ebx
call fcn.00589690
mov eax, dword [ebp - 0xb0]
add esp, 0x18
test byte [eax + 0x2c], 0x10
jne 0x588743
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xb8]
mov eax, dword [eax + 0xc]
dec eax
cmp ecx, eax
mov eax, 0xffffffff
cmove ecx, eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x68], ecx
test byte [eax + 0x24], 0x20
jne 0x58850f
push 0
push dword [ebp - 0x6c]
push dword [ebp - 0x8c]
push 0xffffffffffffffff
push eax
push ebx
call fcn.0055eb20
push dword [ebp - 0x68]
push eax
push 0
push dword [ebp - 0xa0]
push 0x2d
push edi
call fcn.0057a450
add esp, 0x30
mov dword [ebp - 0x78], eax
jmp 0x588743
push eax
call fcn.005705f0
mov dword [ebp - 0xfc], eax
movzx eax, word [eax + 0x32]
push eax
push ebx
mov dword [ebp - 0x7c], eax
call fcn.00566560
mov ecx, eax
mov dword [ebp - 0x84], 0
mov eax, dword [ebp - 0x7c]
add esp, 0xc
mov dword [ebp - 0x74], ecx
test eax, eax
jle 0x58860a
mov edi, dword [ebp - 0x84]
mov esi, ecx
mov edi, edi
mov eax, dword [ebp - 0xfc]
push 0
push esi
push dword [ebp - 0x8c]
mov eax, dword [eax + 4]
movsx eax, word [eax + edi*2]
push eax
push dword [ebp - 0xc4]
push ebx
call fcn.0055eb20
add esp, 0x18
mov dword [ebp - 0xf4], eax
cmp eax, esi
je 0x5885ee
mov edx, dword [ebx + 8]
mov ecx, dword [edx + 0x88]
mov dword [ebp - 0x84], ecx
mov ecx, dword [edx + 0xc]
mov ebx, dword [ebp - 0x84]
cmp dword [ecx + 0x30], ebx
mov ebx, dword [ebp - 0xd0]
jg 0x5885b4
push 0
push esi
push eax
push 0x4c
push edx
call fcn.00544a50
add esp, 0x14
jmp 0x5885ee
mov ecx, dword [ebp - 0x84]
lea eax, [ecx + 1]
mov dword [edx + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x58]
mov edx, dword [ebp - 0xf4]
mov dword [eax + ecx*4], 0x4c
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 [ebp - 0x7c]
inc edi
inc esi
cmp edi, eax
jl 0x588550
mov edi, dword [ebp - 0xbc]
mov esi, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x74]
cmp dword [ebp - 0x68], 0
je 0x588632
push eax
push ecx
push 0
push dword [ebp - 0xa0]
push 0x1e
push edi
call fcn.0057a450
add esp, 0x18
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x68], 0
jl 0x5886c8
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x588657
push dword [ebp - 0x6c]
mov edx, dword [ebp - 0x7c]
push edx
push dword [ebp - 0x74]
push 0x64
push edi
call fcn.00544a50
add esp, 0x14
jmp 0x58868a
mov edx, dword [ebp - 0x74]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp - 0x6c]
mov dword [eax + ecx*4], 0x64
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push dword [ebp - 0x7c]
push dword [ebp - 0x74]
push dword [ebp - 0x6c]
push dword [ebp - 0xa0]
push 0x80
push edi
call fcn.0057a450
add esp, 0x18
cmp dword [ebp - 0x68], 0
je 0x5886c8
mov eax, dword [edi + 0x88]
test eax, eax
jle 0x5886c8
mov edx, dword [ebp - 0xf8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [ebp - 0x7c]
cmp eax, 1
jne 0x588725
cmp dword [ebp - 0x74], 0
je 0x588743
mov al, byte [ebx + 0x13]
mov byte [ebp - 0x95], al
cmp al, 8
jae 0x588743
movzx edx, byte [ebx + 0x19]
lea eax, [ebx + 0x94]
xor ecx, ecx
test edx, edx
jle 0x588709
mov esi, dword [ebp - 0x74]
cmp dword [eax + 0xc], esi
mov esi, dword [ebp - 0xa4]
je 0x58871f
inc ecx
add eax, 0x14
cmp ecx, edx
jl 0x5886f3
movzx eax, byte [ebp - 0x95]
mov ecx, dword [ebp - 0x74]
mov dword [ebx + eax*4 + 0x15c], ecx
inc byte [ebx + 0x13]
jmp 0x588743
mov byte [eax + 6], 1
jmp 0x588743
push eax
push dword [ebp - 0x74]
push ebx
call fcn.0055e460
mov eax, dword [ebp - 0x7c]
add esp, 0xc
cmp eax, dword [ebx + 0x1c]
jle 0x588743
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x74]
mov dword [ebx + 0x20], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x58876c
push 0
push dword [ebp - 0x88]
push dword [ebp - 0xcc]
push 0xe
push edi
call fcn.00544a50
add esp, 0x14
jmp 0x5887a6
mov edx, dword [ebp - 0xcc]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x88]
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp - 0x78]
test ecx, ecx
je 0x5887d3
mov edx, dword [edi + 0x88]
jns 0x5887b8
lea ecx, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x5887c7
mov eax, 0x89e9dc
jmp 0x5887d0
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0x9c]
cmp byte [edx + 0x32], 0
mov ecx, dword [edx + 0x330]
cmovne eax, dword [ebp - 0xe8]
mov dword [ebp - 0x9c], eax
test dword [ecx + 0x24], 0x200
je 0x588836
cmp dword [ebp - 0xb8], 0
je 0x588813
mov eax, dword [ebp - 0x90]
cmp dword [ecx + 0x20], eax
jne 0x588836
mov eax, dword [ebp - 0xc4]
test byte [eax + 0x24], 0x20
je 0x58882b
mov eax, dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x588836
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x90], eax
jmp 0x588840
mov dword [ebp - 0x90], 0
push edx
call fcn.00588e50
add esp, 4
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xa8]
inc eax
mov dword [ebp - 0xb8], eax
cmp eax, dword [ecx + 0xc]
jl 0x588410
mov eax, dword [ebp - 0x90]
mov dword [esi + 0x38], eax
test eax, eax
je 0x58887e
mov eax, dword [ebp - 0x70]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0xa8]
mov ebx, dword [ebp - 0xc8]
test eax, eax
je 0x58889f
push eax
push ebx
mov dword [eax + 0xc], 0
call fcn.00560f70
add esp, 8
mov ecx, dword [ebp - 0xdc]
mov edx, dword [edi + 0x88]
test ecx, ecx
jns 0x5888b2
lea ecx, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x5888c1
mov eax, 0x89e9dc
jmp 0x5888ca
mov eax, dword [edi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 4], edx
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
mov edx, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x5888f0
push 0
push edx
push 0
push 0xd
push edi
call fcn.00544a50
add esp, 0x14
jmp 0x588928
mov esi, dword [ebp - 0xa4]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0xd
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 eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x588949
mov eax, dword [ebp - 0x88]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [edi + 0x88]
mov dword [ecx], eax
mov eax, dword [ebp - 0xb0]
cmp byte [eax + 0x2e], 1
jbe 0x5889a1
mov ecx, dword [ebp - 0xc0]
test ecx, ecx
je 0x5889a1
test ebx, ebx
je 0x588998
cmp dword [ebx + 0x1c8], 0
je 0x588978
push ecx
push ebx
call fcn.00547160
add esp, 8
jmp 0x5889a1
cmp ecx, dword [ebx + 0x128]
jb 0x588998
cmp ecx, dword [ebx + 0x12c]
jae 0x588998
mov eax, dword [ebx + 0x124]
mov dword [ecx], eax
mov dword [ebx + 0x124], ecx
jmp 0x5889a1
push ecx
call fcn.0052c640
add esp, 4
cmp dword [ebp - 0x9c], 0
jne 0x58747f
push dword [ebp - 0xac]
push esi
call fcn.0053c4b0
add esp, 8
jmp 0x58747f
test byte [ebp - 0xdc], 0x20
jne 0x58747b
mov ecx, dword [ebp - 0x9c]
push dword [ebp - 0x70]
mov al, byte [ecx + 0x7bb58c]
mov byte [esi + 0x2d], al
mov eax, dword [ebp - 0x8c]
push eax
mov dword [esi + 0x30], eax
movzx eax, byte [ecx + 0x7bb83c]
push eax
push edi
call fcn.0057a2f0
add esp, 0x10
mov byte [esi + 0x2f], 1
inc eax
mov dword [esi + 0x34], eax
jmp 0x58747f
mov eax, dword [ebp - 0xb4]
jmp 0x587481
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebx]
mov dword [ebp - 0xe8], ecx
cmp dword [eax], esi
je 0x588a30
test byte [ecx + 4], 1
je 0x588ba3
cmp dword [ebp - 0x78], 1
jne 0x588aa4
mov eax, dword [eax + 4]
xorps xmm0, xmm0
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xf0], eax
lea eax, [ebp - 0xf0]
mov dword [ebp - 0x104], esi
movq qword [ebp - 0x10c], xmm0
mov dword [ebp - 0x104], eax
movdqu xmmword [ebp - 0x11c], xmm0
mov dword [ebp - 0x118], 0x53f040
test ecx, ecx
je 0x588a8e
push ecx
lea eax, [ebp - 0x11c]
push eax
call fcn.00592ec0
add esp, 8
cmp byte [ebp - 0x108], 0
je 0x588aee
mov eax, 2
mov dword [ebp - 0x6c], eax
jmp 0x588ba6
cmp dword [ebp - 0x78], 3
jl 0x588af4
test edx, 0x200
je 0x588b58
mov eax, dword [eax + 0x24]
mov edx, esi
mov esi, dword [edi + 0x88]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, dword [edi + 0xc]
setne dl
mov dword [ebp - 0xdc], ecx
add edx, 0x15
cmp dword [eax + 0x30], esi
jg 0x588b18
push 0
push 0
push ecx
push edx
push edi
call fcn.00544a50
add esp, 0x14
mov esi, eax
jmp 0x588b58
mov eax, dword [ebp - 0xa4]
movzx edx, word [ebx + 0xa]
test edx, 0x1000
je 0x588aaa
mov eax, dword [ebp - 0x6c]
test eax, eax
jne 0x588ba6
mov eax, 3
mov dword [ebp - 0x6c], eax
jmp 0x588ba6
lea eax, [esi + 1]
mov dword [edi + 0x88], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x58]
mov byte [eax + ecx*4], dl
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [ebp - 0xdc]
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
push 0x10
push dword [ebp - 0xe4]
push dword [ebp - 0xe8]
push dword [ebp - 0xd0]
call fcn.005611e0
add esp, 0x10
test esi, esi
je 0x588b9e
mov edx, dword [edi + 0x88]
jns 0x588b83
lea esi, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
je 0x588b92
mov eax, 0x89e9dc
jmp 0x588b9b
mov eax, dword [edi + 0x58]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
or word [ebx + 0xa], 4
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x70]
add ebx, 0x30
dec edx
mov dword [ebp - 0x70], edx
test edx, edx
jg 0x5874b0
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0x78], eax
test eax, eax
jg 0x587493
mov ecx, dword [edx + 0x14]
mov edx, dword [edx + 0xc]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x68], edx
test edx, edx
jle 0x588d29
mov edi, dword [ebp - 0xd0]
test byte [ecx + 0xa], 6
jne 0x588d0e
movzx eax, word [ecx + 0xc]
test al, 0x82
je 0x588d0e
test eax, 0x800
je 0x588d0e
mov ebx, dword [ebp - 0x8c]
cmp dword [ecx + 0x14], ebx
jne 0x588d0e
mov eax, dword [ebp - 0xa4]
cmp dword [eax], 0
jne 0x588d0e
mov eax, dword [ecx]
xor esi, esi
mov dword [ebp - 0xdc], eax
mov eax, dword [ecx + 0x1c]
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x58], esi
mov byte [ebp - 0x54], 0
mov dword [ebp - 0x5c], esi
cmp eax, 0xfffffffe
je 0x588caa
mov word [ebp - 0x1c], ax
lea eax, [ebp - 0x64]
push eax
mov dword [ebp - 0x50], 0x83
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x48], ebx
mov word [ebp - 0x53], 0x101
call fcn.00597000
mov edx, eax
add esp, 4
test edx, edx
je 0x588caa
mov ebx, dword [edx + 0x20]
mov ecx, ebx
mov eax, dword [edx + 0x24]
and ecx, dword [ebp + 0x10]
and eax, dword [ebp + 0x14]
or ecx, eax
jne 0x588c98
or ebx, dword [edx + 0x24]
jne 0x588c93
test byte [edx + 0xc], 0x82
jne 0x588cac
test esi, esi
cmove esi, edx
lea eax, [ebp - 0x64]
push eax
call fcn.00597000
mov edx, eax
add esp, 4
test edx, edx
jne 0x588c76
mov edx, esi
test edx, edx
je 0x588d05
test byte [edx + 0xa], 4
jne 0x588d05
mov eax, dword [edx]
push 0x10
push dword [ebp - 0xe4]
movdqu xmm0, xmmword [eax]
movdqu xmmword [ebp - 0x130], xmm0
movdqu xmm0, xmmword [eax + 0x10]
movdqu xmmword [ebp - 0x120], xmm0
movdqu xmm0, xmmword [eax + 0x20]
mov eax, dword [ebp - 0xdc]
movdqu xmmword [ebp - 0x110], xmm0
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x124], eax
lea eax, [ebp - 0x130]
push eax
push edi
call fcn.005611e0
add esp, 0x10
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x68]
dec edx
add ecx, 0x30
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x94], ecx
test edx, edx
jg 0x588be6
mov edi, dword [ebp - 0xbc]
mov ebx, dword [ebp - 0xa4]
mov edx, dword [ebx]
test edx, edx
je 0x588e33
mov eax, dword [edi + 0x88]
mov dword [ebx + 0x1c], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x588d62
push 0
push edx
push 1
push 0x43
push edi
call fcn.00544a50
add esp, 0x14
jmp 0x588d94
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0x43
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 [ebp - 0xd0]
xor edi, edi
cmp byte [edx + 0x19], 0
jbe 0x588dd0
lea esi, [edx + 0xa0]
cmp byte [esi - 6], 0
je 0x588dc4
mov al, byte [edx + 0x13]
cmp al, 8
jae 0x588dc4
movzx ecx, al
mov eax, dword [esi]
mov dword [edx + ecx*4 + 0x15c], eax
inc byte [edx + 0x13]
movzx eax, byte [edx + 0x19]
inc edi
add esi, 0x14
cmp edi, eax
jl 0x588da8
mov eax, dword [ebp - 0xd4]
xor edi, edi
mov esi, dword [ebp - 0xd4]
mov byte [edx + 0x19], 0
mov esi, dword [esi + 0x14]
cmp dword [eax + 0xc], edi
jle 0x588e33
lea ebx, [ebx]
test byte [esi + 0xa], 6
jne 0x588e2a
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [ebx + 0x48]
and eax, dword [ebx + 0x4c]
or ecx, eax
jne 0x588e24
push 0x10
push dword [ebp - 0xe4]
push dword [esi]
push edx
call fcn.005611e0
mov edx, dword [ebp - 0xd0]
add esp, 0x10
or word [esi + 0xa], 4
mov eax, dword [ebp - 0xd4]
inc edi
add esi, 0x30
cmp edi, dword [eax + 0xc]
jl 0x588df0
mov ecx, dword [ebp - 4]
mov eax, dword [ebx + 0x48]
xor ecx, ebp
mov edx, dword [ebx + 0x4c]
pop edi
pop esi
pop ebx
call fcn.00722035
mov esp, ebp
pop ebp
ret