Function at 0x53da90
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
mov eax, dword [0x5ab3e8]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 0x18]
mov ebx, dword [ebp + 0xc]
lea eax, [edx + 0x50]
mov dword [ebp - 0xdc], eax
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x94], edx
mov dword [ebp - 0xc8], edi
mov dword [ebp - 0xd0], ebx
mov eax, dword [edi]
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x88], eax
movzx eax, byte [esi + 0x34]
mov dword [ebp - 0x68], esi
mov dword [ebp - 0xd4], 0
lea ecx, [eax + eax*8]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x1ec]
lea eax, [eax + ecx*8]
add eax, 8
mov dword [ebp - 0xd8], eax
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x98], eax
xor eax, eax
test edx, edx
jle 0x53db3e
mov ecx, dword [ebp - 0x94]
add ecx, 0x1f0
mov ebx, dword [ebp - 0x98]
cmp dword [ecx], ebx
mov ebx, dword [ebp - 0xd0]
je 0x53dc29
inc eax
add ecx, 4
cmp eax, edx
jl 0x53db22
xor ecx, ecx
xor edx, edx
not ecx
not edx
and ecx, dword [ebp + 0x1c]
and edx, dword [ebp + 0x20]
mov dword [esi + 0x50], ecx
mov ecx, dword [ebp - 0x94]
mov dword [esi + 0x54], edx
mov esi, dword [ebp + 0x14]
mov eax, dword [ecx + 0x48]
mov edx, dword [ecx + 0x4c]
mov ecx, esi
call fcn.0048beb0
mov ecx, dword [ebp - 0x68]
and eax, 1
mov edx, dword [ebp - 0xd8]
mov dword [ebp - 0xa0], eax
mov eax, dword [edi + 0x38]
dec eax
mov dword [edi + 0x38], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], eax
mov dword [ebp - 0x7c], eax
mov eax, dword [edi + 0x38]
dec eax
mov dword [edi + 0x38], eax
cmp byte [ecx + 0x34], 0
mov dword [ebp - 0xe4], eax
mov dword [ecx + 0x18], eax
jbe 0x53dbc3
test byte [edx + 0x24], 8
je 0x53dbc3
mov eax, dword [edi + 0x2c]
inc eax
push eax
push 0
push 0x45
mov dword [edi + 0x2c], eax
push ebx
mov dword [ecx], eax
call fcn.0052dc80
mov edx, dword [ebp - 0xd8]
add esp, 0x10
mov ecx, esi
test esi, esi
jle 0x53dbed
imul eax, esi, 0x58
mov esi, dword [ebp - 0x94]
add esi, 0x2f0
add eax, esi
lea ebx, [ebx]
cmp dword [eax], 0
jne 0x53dbed
dec ecx
sub eax, 0x58
test ecx, ecx
jg 0x53dbe0
imul eax, ecx, 0x58
test byte [edx + 0x28], 0x10
mov ecx, dword [ebp - 0x94]
mov esi, dword [eax + ecx + 0x2fc]
mov dword [ebp - 0x80], esi
je 0x53dcd5
mov ecx, dword [ebx + 0x6c]
mov esi, dword [edx + 0x1c]
mov edx, dword [edx + 0x18]
cmp dword [ebx + 0x70], ecx
jg 0x53dc43
push edx
push 0
push esi
push 0xd
push ebx
call fcn.004ef800
add esp, 0x14
jmp 0x53dc6e
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 0x53db42
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], edx
jg 0x53dc98
push 0
push dword [ebp - 0x7c]
push esi
push 0xe
push ebx
call fcn.004ef800
mov edx, eax
add esp, 0x14
mov eax, dword [ebp - 0x68]
mov dword [eax + 0x3c], edx
mov byte [eax + 0x35], 0xb
jmp 0x53f9b9
lea eax, [edx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [ebp - 0x7c]
mov dword [eax + ecx*4], 0xe
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 - 0x68]
mov dword [eax + 0x3c], edx
mov byte [eax + 0x35], 0xb
jmp 0x53f9b9
mov eax, dword [ebp - 0x88]
mov edx, dword [eax + 0x24]
test edx, 0x400
je 0x53e1eb
movzx esi, word [eax + 0x28]
mov dword [ebp - 0x74], esi
lea ecx, [esi + 2]
cmp ecx, 1
jne 0x53dd27
mov al, byte [edi + 0x13]
test al, al
jne 0x53dd10
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov edx, eax
mov dword [ebp - 0x8c], eax
jmp 0x53dd5a
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov edx, dword [edi + eax*4 + 0x94]
mov dword [ebp - 0x8c], edx
jmp 0x53dd5a
mov edx, dword [edi + 0x1c]
mov esi, dword [edi + 0x20]
mov dword [ebp - 0x8c], esi
cmp ecx, edx
jg 0x53dd46
sub edx, ecx
lea eax, [esi + ecx]
mov dword [edi + 0x1c], edx
mov edx, esi
mov dword [edi + 0x20], eax
jmp 0x53dd57
mov eax, dword [edi + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov dword [ebp - 0x8c], edx
mov dword [edi + 0x2c], eax
mov esi, dword [ebp - 0x74]
mov edi, dword [ebp - 0x68]
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x80], eax
test esi, esi
je 0x53dea1
mov ebx, dword [ebp - 0xc8]
lea esi, [edx + 2]
xor ecx, ecx
mov eax, 0xfffffffe
sub eax, edx
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0xac], eax
lea esp, [esp]
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0x30]
mov ecx, dword [ecx + eax]
test ecx, ecx
je 0x53de7e
test byte [ecx + 0xc], 1
je 0x53ddd3
mov eax, dword [ebp - 0xac]
push esi
push dword [ebp - 0xa0]
add eax, esi
push eax
push edi
push ecx
push ebx
call fcn.004e1830
mov edi, dword [edi + 0x10]
add esp, 0x18
mov dword [ebp - 0x80], edi
mov edi, dword [ebp - 0x68]
jmp 0x53de7b
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x53de70
mov cl, byte [eax]
cmp cl, 0xad
jne 0x53ddea
mov cl, byte [eax + 2]
cmp cl, 0xae
jne 0x53ddf6
mov ecx, dword [eax + 0x14]
mov edx, ecx
jmp 0x53de01
cmp cl, 0x88
jne 0x53de70
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx + 0x1c]
cmp dword [edx], 1
jle 0x53de70
test dword [eax + 4], 0x800
je 0x53de6a
mov edi, dword [ebx + 8]
push eax
push ebx
call fcn.00509590
mov ecx, dword [edi + 0x6c]
add esp, 8
mov edx, eax
cmp dword [edi + 0x70], ecx
jg 0x53de3a
push 0
push esi
push edx
push 0x4d
push edi
call fcn.004ef800
mov edi, dword [ebp - 0x68]
add esp, 0x14
jmp 0x53de7b
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [ebp - 0x68]
mov dword [eax + ecx*4], 0x4d
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
jmp 0x53de7b
push esi
push dword [ecx + 4]
jmp 0x53de72
push esi
push eax
push ebx
call fcn.0050e790
add esp, 0xc
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x6c]
inc esi
mov eax, dword [ebp - 0xac]
add ecx, 4
add eax, esi
mov dword [ebp - 0x6c], ecx
cmp eax, edx
jl 0x53dd90
mov ebx, dword [ebp - 0xd0]
mov esi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebx + 0x6c]
mov edi, dword [ebp - 0x8c]
mov edx, dword [eax + 0x18]
cmp dword [ebx + 0x70], ecx
jg 0x53dec9
push 0
push edi
push edx
push 0x45
push ebx
call fcn.004ef800
add esp, 0x14
jmp 0x53def4
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
lea edx, [edi + 1]
cmp dword [ebx + 0x70], ecx
jg 0x53df10
push 0
push edx
push esi
push 0x45
push ebx
call fcn.004ef800
add esp, 0x14
jmp 0x53df41
mov edi, dword [ebp - 0x8c]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebp - 0x88]
or eax, 0xffffffff
mov ecx, 0xfffffff9
cmp byte [esi + 0x1c], 0
cmovne eax, ecx
push eax
push dword [esi + 0x20]
push edi
push dword [ebp - 0x80]
push dword [ebp - 0x98]
push 9
push ebx
call fcn.0052dd30
mov edx, dword [ebp - 0x68]
add esp, 0x1c
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x98]
mov byte [esi + 0x1c], 0
mov esi, 0xad
mov dword [edx + 0x38], eax
mov eax, 0x3d
cmp byte [ecx + 0x2e], 0
mov ecx, dword [ebp - 0x74]
cmovne eax, esi
mov esi, dword [edx + 0x40]
mov byte [edx + 0x35], al
sub ecx, 1
mov eax, dword [ebx + 0x6c]
mov dword [edx + 0x3c], eax
mov dword [ebp - 0x84], ecx
js 0x53f9b9
lea eax, [ecx + 2]
add eax, edi
mov dword [ebp - 0xac], eax
nop
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0x30]
mov edi, dword [eax + ecx*4]
lea eax, [esi - 1]
mov dx, word [edi + 0xc]
and dx, 1
cmove eax, esi
mov esi, eax
mov dword [ebp - 0x80], esi
cmp ecx, 0x10
jae 0x53e00c
mov eax, dword [ebp - 0x88]
mov ax, word [eax + 0x1e]
shr ax, cl
test al, 1
je 0x53e006
push edi
push dword [ebp - 0x68]
call fcn.004e5ee0
add esp, 8
jmp 0x53e1cb
mov ecx, dword [ebp - 0x84]
test dx, dx
je 0x53e1d1
mov eax, dword [edi]
mov ecx, dword [eax + 0xc]
mov al, byte [ecx]
cmp al, 0xad
jne 0x53e023
mov al, byte [ecx + 2]
cmp al, 0xae
jne 0x53e02c
mov eax, dword [ecx + 0x14]
jmp 0x53e036
cmp al, 0x88
jne 0x53e03f
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jne 0x53e1cb
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 0x51], 0
jne 0x53e0ea
mov eax, dword [ebp - 0x68]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4 + 4]
test ecx, ecx
jns 0x53e064
mov ecx, dword [ebx + 0x6c]
dec ecx
mov eax, dword [ebx]
cmp byte [eax + 0x51], 0
je 0x53e073
mov eax, 0x5b6fa4
jmp 0x53e07c
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0xc]
mov esi, dword [eax + 8]
mov al, byte [eax]
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebx + 0x6c]
mov byte [ebp - 0xa1], al
cmp dword [ebx + 0x70], ecx
jg 0x53e0ac
push edx
push esi
push dword [ebp - 0x6c]
movzx eax, al
push eax
push ebx
call fcn.004ef800
add esp, 0x14
jmp 0x53e0ea
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov bl, byte [ebp - 0xa1]
mov byte [eax + ecx*4], bl
xor ebx, ebx
mov word [eax + ecx*4 + 2], bx
mov ebx, dword [ebp - 0x6c]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [ebp - 0xd0]
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov eax, dword [ebp - 0xc8]
push 0
push 0x34
push dword [eax]
call fcn.0050bfe0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x53e1c8
push 0x34
push 0
push esi
call fcn.0048deb0
or eax, 0xffffffff
mov byte [esi], 0x35
push esi
mov word [esi + 0x22], ax
call fcn.004e9a00
mov ecx, dword [ebp - 0xc8]
add esp, 0x10
mov eax, dword [ecx]
mov eax, dword [eax + 0x78]
cmp dword [esi + 0x18], eax
jle 0x53e144
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ecx
call fcn.0050dd30
add esp, 0xc
mov eax, dword [edi]
push 0
push 0x35
push dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
call fcn.0050bfe0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x53e18b
push 0x34
push 0
push edi
call fcn.0048deb0
add esp, 0xc
mov byte [edi], 0xad
or eax, 0xffffffff
mov word [edi + 0x22], ax
lea eax, [edi + 0x34]
mov dword [edi + 8], eax
mov byte [eax], 0
mov dword [edi + 0x18], 1
mov dword [esi + 0x10], edi
test edi, edi
je 0x53e1b2
mov eax, dword [ebp - 0xac]
mov dword [edi + 0x1c], eax
mov eax, dword [ebp - 0x68]
push 0x10
push dword [eax + 0x18]
push esi
push dword [ebp - 0xc8]
call fcn.005114f0
add esp, 0x10
push esi
push dword [ebp - 0xcc]
mov dword [esi + 0xc], 0
call fcn.00511210
add esp, 8
mov esi, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x84]
dec dword [ebp - 0xac]
dec ecx
mov dword [ebp - 0x84], ecx
test ecx, ecx
jns 0x53dfc0
jmp 0x53f9b9
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x53e2c6
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0x30]
mov esi, dword [eax]
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
push eax
push dword [ebp - 0xa0]
mov dword [ebp - 0x6c], eax
push 0
push dword [ebp - 0x68]
push esi
push edi
call fcn.004e1830
mov ecx, dword [ebp - 0x6c]
mov edx, eax
add esp, 0x18
cmp edx, ecx
je 0x53e24b
test ecx, ecx
je 0x53e24b
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x53e24b
movzx eax, al
mov dword [edi + eax*4 + 0x94], ecx
inc byte [edi + 0x13]
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebx + 0x6c]
mov edi, dword [eax + 0x10]
cmp dword [ebx + 0x70], ecx
jg 0x53e26e
push edx
push edi
push dword [ebp - 0x98]
push 0x1f
push ebx
call fcn.004ef800
add esp, 0x14
jmp 0x53e2a1
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov ebx, dword [ebp - 0x98]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [ebp - 0xd0]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebp - 0x68]
mov byte [edx + 0x35], 0xad
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edx + 0x50]
and eax, dword [edx + 0x54]
or ecx, eax
jne 0x53f9b9
or word [esi + 0xa], 4
jmp 0x53f9b9
mov eax, edx
and eax, 0x102
cmp eax, 0x102
jne 0x53e52f
xor esi, esi
mov dword [ebp - 0xb8], 0xad
xor ecx, ecx
mov dword [ebp - 0xac], 0
test dl, 0x20
je 0x53e309
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x6c], 4
mov eax, dword [eax + 0x30]
mov ecx, dword [eax]
jmp 0x53e30c
mov dword [ebp - 0x6c], ecx
test dl, 0x10
je 0x53e320
mov eax, dword [ebp - 0x88]
mov esi, dword [ebp - 0x6c]
mov eax, dword [eax + 0x30]
mov esi, dword [esi + eax]
mov edx, dword [ebp - 0xa0]
mov eax, ecx
test edx, edx
cmove eax, esi
cmove esi, ecx
mov dword [ebp - 0x84], eax
test esi, esi
je 0x53e405
mov edx, dword [esi]
mov dword [ebp - 0x78], 0x18161719
mov dword [ebp - 0x6c], edx
mov eax, dword [edx + 0x10]
push eax
mov dword [ebp - 0x80], eax
call fcn.00511e80
add esp, 4
test eax, eax
je 0x53e39f
mov al, byte [edi + 0x13]
test al, al
jne 0x53e36c
inc dword [edi + 0x2c]
mov esi, dword [edi + 0x2c]
jmp 0x53e37b
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov esi, dword [edi + eax*4 + 0x94]
push 1
push esi
push dword [edx + 0x10]
push edi
call fcn.004e1e10
mov eax, dword [ebp - 0x6c]
add esp, 0x10
mov ecx, esi
movzx eax, byte [eax]
inc eax
and eax, 2
or eax, 1
mov al, byte [ebp + eax - 0x78]
jmp 0x53e3d4
lea eax, [ebp - 0xbc]
push eax
push dword [ebp - 0x80]
push edi
call fcn.00510c20
push esi
push dword [ebp - 0x68]
mov dword [ebp - 0x80], eax
call fcn.004e5ee0
mov eax, dword [ebp - 0x6c]
add esp, 0x14
mov esi, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x80]
movzx eax, byte [eax]
mov al, byte [ebp + eax - 0xae]
push ecx
push dword [ebp - 0x7c]
movzx eax, al
push dword [ebp - 0x98]
push eax
push ebx
call fcn.0052dce0
add esp, 0x14
test esi, esi
je 0x53e424
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x53e424
movzx eax, al
mov dword [edi + eax*4 + 0x94], esi
inc byte [edi + 0x13]
jmp 0x53e424
push dword [ebp - 0x80]
mov eax, edx
push dword [ebp - 0x98]
xor eax, 1
lea eax, [eax*4 + 0x21]
push eax
push ebx
call fcn.0052dc80
add esp, 0x10
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x53e4b5
mov eax, dword [esi]
inc dword [edi + 0x2c]
mov ecx, dword [edi + 0x2c]
push 1
push ecx
push dword [eax + 0x10]
mov dword [ebp - 0x6c], eax
push edi
mov dword [ebp - 0xac], ecx
call fcn.004e1e10
mov edx, dword [ebp - 0x6c]
mov eax, dword [edx + 0x10]
push eax
mov dword [ebp - 0x6c], eax
call fcn.00511e80
add esp, 0x14
test eax, eax
jne 0x53e487
mov al, byte [edx]
cmp al, 0x38
je 0x53e46f
cmp al, 0x36
jne 0x53e487
mov eax, dword [ebp - 0xa0]
xor eax, 1
lea edx, [eax*2 + 0x37]
mov dword [ebp - 0xb8], edx
jmp 0x53e49a
mov eax, dword [ebp - 0xa0]
lea eax, [eax*2 + 0x36]
mov dword [ebp - 0xb8], eax
push dword [ebp - 0x6c]
call fcn.00511e80
add esp, 4
test eax, eax
jne 0x53e4b5
push esi
push dword [ebp - 0x68]
call fcn.004e5ee0
add esp, 8
cmp dword [ebp - 0xa0], 0
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebx + 0x6c]
sete al
add al, 4
cmp dword [ebp - 0xb8], 0xad
mov byte [edx + 0x35], al
mov eax, dword [ebp - 0x98]
mov dword [edx + 0x38], eax
mov dword [edx + 0x3c], ecx
je 0x53f9b9
inc dword [edi + 0x2c]
mov esi, dword [edi + 0x2c]
push esi
push eax
push 0x7f
push ebx
call fcn.0052dc80
push esi
push dword [ebp - 0x7c]
push dword [ebp - 0xac]
push dword [ebp - 0xb8]
push ebx
call fcn.0052dce0
mov eax, dword [ebx + 0x6c]
add esp, 0x24
test eax, eax
jle 0x53f9b9
lea ecx, [eax + eax*4]
mov edx, 0x53
mov eax, dword [ebx + 0x68]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x53f9b9
test edx, 0x200
je 0x53f020
mov ecx, dword [ebp - 0x88]
xor esi, esi
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0x90], 0
movzx eax, word [ecx + 0x18]
mov dword [ebp - 0x80], eax
movzx eax, word [ecx + 0x1a]
mov dword [ebp - 0xbc], eax
movzx eax, word [ecx + 0x1c]
xor ecx, ecx
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x78], ecx
mov byte [ebp - 0x6d], cl
mov byte [ebp - 0xa1], cl
mov eax, dword [eax + 0x20]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x8c], ecx
mov ecx, dword [ebp - 0x80]
mov eax, dword [eax + 8]
mov dword [ebp - 0xa8], eax
movzx eax, cx
mov dword [ebp - 0x9c], eax
mov ecx, eax
test dl, 0x20
je 0x53e5cb
mov esi, dword [ebp - 0x88]
mov eax, dword [esi + 0x30]
movzx esi, word [esi + 0x1a]
mov eax, dword [eax + ecx*4]
inc ecx
mov dword [ebp - 0xc0], eax
test dl, 0x10
je 0x53e6c9
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x7c], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x90], eax
movzx eax, word [ecx + 0x1c]
mov ecx, edx
mov edx, dword [ebp - 0x90]
cmp esi, eax
cmova eax, esi
mov esi, 0x100
mov dword [ebp - 0xac], eax
test word [edx + 0xa], si
je 0x53e668
mov eax, dword [edi + 0x2c]
mov esi, dword [ebp - 0x68]
inc eax
push eax
push 1
push 0x45
mov dword [edi + 0x2c], eax
push ebx
mov dword [esi + 0x2c], eax
call fcn.0052dc80
mov eax, dword [ebx + 0x6c]
xor ecx, ecx
shl dword [esi + 0x2c], 1
add esp, 0x10
mov edx, dword [ebp - 0x9c]
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 0xb4]
mov eax, dword [eax + 0x1c]
cmp byte [edx + eax], 1
mov eax, dword [ebp - 0x88]
sete cl
xor ecx, dword [ebp - 0xa0]
or dword [esi + 0x2c], ecx
mov ecx, dword [eax + 0x24]
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x7c], ecx
cmp dword [ebp - 0xc0], 0
mov edx, ecx
mov esi, eax
jne 0x53e6c9
mov edx, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x9c]
mov eax, dword [edx + 4]
movsx ecx, word [eax + ecx*2]
mov dword [ebp - 0xd4], ecx
test ecx, ecx
js 0x53e6a8
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
mov eax, dword [eax + 4]
cmp byte [eax + ecx*4 + 0xc], 0
je 0x53e6ba
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xac]
mov esi, eax
mov edx, dword [ebp - 0x7c]
cmp ecx, 0xfffffffe
jne 0x53e6c9
jmp 0x53e6c0
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0x7c]
mov esi, eax
mov byte [ebp - 0x6d], 1
test dl, 0x30
jne 0x53e710
test edx, 0x80000
je 0x53e710
mov eax, dword [ebp - 0x68]
mov esi, 1
inc dword [edi + 0x2c]
mov ecx, dword [edi + 0x2c]
mov byte [ebp - 0x6d], 1
cmp dword [eax], 0
mov dword [ebp - 0x8c], ecx
mov dword [eax + 0x24], ecx
je 0x53e704
push ecx
push 0
push 0x45
push ebx
call fcn.0052dc80
add esp, 0x10
mov ecx, dword [ebp - 0x68]
dec dword [edi + 0x38]
mov eax, dword [edi + 0x38]
mov dword [ecx + 0x28], eax
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x80]
movzx edx, word [ecx + 0x32]
cmp ax, dx
jae 0x53e744
mov eax, dword [ecx + 0x1c]
xor ecx, ecx
mov ebx, dword [ebp - 0x9c]
cmp byte [ebx + eax], cl
mov ebx, dword [ebp - 0xd0]
sete cl
cmp dword [ebp - 0xa0], ecx
je 0x53e752
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0xa0], 0
je 0x53e795
cmp dx, ax
jne 0x53e795
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0xc0], eax
mov al, byte [ebp - 0x6d]
mov byte [ebp - 0xa1], al
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x90], ecx
movzx ecx, dx
movzx eax, al
mov byte [ebp - 0x6d], 0
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0x7c]
push eax
push esi
push dword [ebp - 0xa0]
mov esi, dword [ebp - 0x68]
push esi
push edi
call fcn.004e0eb0
mov edx, dword [ebp - 0x9c]
add esp, 0x14
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x53e82e
cmp word [ebp - 0xc4], 0
je 0x53e82e
add eax, edx
jne 0x53e7d2
xor ecx, ecx
mov dword [ebp - 0x78], ecx
jmp 0x53e82e
mov ecx, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x53e7d7
mov eax, dword [ebp - 0xcc]
sub ecx, edx
push 0
lea esi, [ecx + 1]
push esi
test eax, eax
je 0x53e800
push eax
call fcn.0050bfe0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x78], ecx
jmp 0x53e80d
call fcn.0051c500
add esp, 8
mov dword [ebp - 0x78], eax
mov ecx, eax
test ecx, ecx
je 0x53e825
mov eax, dword [ebp - 0x9c]
add eax, dword [ebp - 0x7c]
push esi
push eax
push ecx
call fcn.0048d3b0
add esp, 0xc
mov edx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x68]
cmp dword [ebp - 0x8c], 0
je 0x53e842
mov ecx, dword [esi + 0x28]
mov dword [ebp - 0x84], ecx
jmp 0x53e84b
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0xc0]
test eax, eax
je 0x53e865
test byte [eax + 0xc], 0x28
mov dword [ebp - 0xb8], 0
je 0x53e86f
mov dword [ebp - 0xb8], 1
mov ecx, dword [ebp - 0x90]
test ecx, ecx
je 0x53e889
test byte [ecx + 0xc], 0x28
mov dword [ebp - 0xac], 0
je 0x53e893
mov dword [ebp - 0xac], 1
test eax, eax
jne 0x53e8bb
cmp word [ebp - 0x80], ax
jne 0x53e8bb
mov dword [ebp - 0x80], eax
cmp byte [ebp - 0x6d], 0
mov esi, edx
je 0x53e985
mov dword [ebp - 0xb8], 0
jmp 0x53e98e
mov dword [ebp - 0x80], 1
mov dword [ebp - 0x6c], edx
test eax, eax
je 0x53e8a0
mov eax, dword [eax]
mov ecx, dword [ebp - 0x74]
add ecx, edx
mov esi, dword [eax + 0x10]
mov eax, dword [ebp - 0xbc]
movzx eax, ax
push eax
push ecx
push esi
push edi
call fcn.004e1e10
push dword [ebp - 0xc0]
push dword [ebp - 0x68]
push ebx
call fcn.0054e060
push esi
call fcn.0050e620
add esp, 0x20
test eax, eax
je 0x53e91c
push dword [ebp - 0x84]
mov eax, dword [ebp - 0x9c]
add eax, dword [ebp - 0x74]
push eax
push 0x32
push ebx
call fcn.0052dc80
add esp, 0x10
mov ecx, dword [ebp - 0x7c]
test ecx, ecx
je 0x53e93f
mov eax, dword [ebp - 0x9c]
add eax, ecx
mov ecx, dword [ebp - 0xbc]
push eax
movzx eax, cx
push eax
push esi
call fcn.005465e0
add esp, 0xc
mov ecx, dword [ebp - 0xbc]
movzx eax, cx
add dword [ebp - 0x6c], eax
push esi
call fcn.00511e80
add esp, 4
test eax, eax
jne 0x53e972
push dword [ebp - 0xc0]
push dword [ebp - 0x68]
call fcn.004e5ee0
mov esi, dword [ebp - 0x6c]
add esp, 8
mov byte [ebp - 0x6d], 0
jmp 0x53e9a9
mov esi, dword [ebp - 0x6c]
mov dword [ebp - 0xb8], 1
mov byte [ebp - 0x6d], 0
jmp 0x53e9a9
cmp dword [ebp - 0x8c], 0
je 0x53e9a9
mov eax, dword [ebp - 0x74]
add eax, edx
push eax
push 0
push 0x48
push ebx
call fcn.0052dc80
add esp, 0x10
mov dword [ebp - 0x80], 1
inc esi
movzx edx, byte [ebp - 0x6d]
mov eax, esi
mov ecx, dword [ebp - 0x7c]
sub eax, edx
mov dword [ebp - 0xd4], edx
mov edx, dword [ebp - 0x74]
test ecx, ecx
je 0x53e9fa
test eax, eax
jle 0x53e9d1
cmp byte [ecx], 0x41
jg 0x53e9d1
dec eax
inc edx
inc ecx
test eax, eax
jg 0x53e9c5
cmp eax, 1
jle 0x53e9e3
cmp byte [eax + ecx - 1], 0x41
jg 0x53e9e3
dec eax
cmp eax, 1
jg 0x53e9d6
test eax, eax
jle 0x53e9fa
push eax
push ecx
push 0
push eax
push edx
push 0x5a
push dword [edi + 8]
call fcn.0052dd30
add esp, 0x1c
mov ecx, dword [ebp - 0x88]
movzx eax, word [ecx + 0x2a]
test ax, ax
je 0x53ea11
cmp esi, eax
je 0x53eace
test dword [ecx + 0x24], 0x40000
je 0x53ea2b
push dword [ebp - 0xa8]
push 0x76
push ebx
call fcn.0052dc20
add esp, 0xc
mov eax, dword [ebp - 0x8c]
test eax, eax
je 0x53ea43
push eax
push 1
push 0x45
push ebx
call fcn.0052dc80
add esp, 0x10
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x80]
push esi
push dword [ebp - 0x74]
push dword [ebp - 0x84]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0xa0]
push dword [ebp - 0xa8]
movzx eax, byte [ecx + eax*2 + 0x58cca4]
push eax
push ebx
call fcn.0052de20
mov eax, dword [ebp - 0x8c]
add esp, 0x18
test eax, eax
je 0x53ead4
mov eax, dword [ebx + 0x6c]
add eax, 2
push eax
push 0
push 0xb
push ebx
call fcn.0052dc80
mov ecx, dword [ebp - 0xa0]
mov eax, esi
sub eax, dword [ebp - 0xb8]
push eax
push dword [ebp - 0x74]
mov eax, 1
push dword [ebp - 0x84]
cmp eax, esi
push dword [ebp - 0xa8]
sbb eax, eax
and eax, 4
movzx eax, byte [eax + ecx + 0x58cca6]
push eax
push ebx
call fcn.0052de20
add esp, 0x28
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x90]
test ecx, ecx
je 0x53ebd6
mov eax, dword [ecx]
mov esi, dword [ebp - 0x74]
add esi, dword [ebp - 0x9c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xc4]
movzx eax, ax
push eax
push esi
push ecx
push edi
mov dword [ebp - 0x6c], ecx
call fcn.004e1e10
push dword [ebp - 0x90]
push dword [ebp - 0x68]
push ebx
call fcn.0054e060
push dword [ebp - 0x6c]
call fcn.0050e620
add esp, 0x20
test eax, eax
je 0x53eb35
push dword [ebp - 0x84]
push esi
push 0x32
push ebx
call fcn.0052dc80
add esp, 0x10
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x53eb99
mov edx, dword [ebp - 0xc4]
push eax
movzx eax, dx
push eax
push dword [ebp - 0x6c]
call fcn.005465e0
mov eax, dword [ebp - 0xc4]
add esp, 0xc
mov ecx, dword [ebp - 0x78]
movzx edx, ax
mov eax, edx
test edx, edx
je 0x53eb70
cmp byte [ecx], 0x41
jg 0x53eb70
dec eax
inc esi
inc ecx
test eax, eax
jg 0x53eb64
cmp eax, 1
jle 0x53eb82
cmp byte [eax + ecx - 1], 0x41
jg 0x53eb82
dec eax
cmp eax, 1
jg 0x53eb75
test eax, eax
jle 0x53eb99
push eax
push ecx
push 0
push eax
push esi
push 0x5a
push dword [edi + 8]
call fcn.0052dd30
add esp, 0x1c
mov edx, dword [ebp - 0xc4]
push dword [ebp - 0x6c]
movzx eax, dx
add dword [ebp - 0x9c], eax
call fcn.00511e80
add esp, 4
test eax, eax
jne 0x53ebca
push dword [ebp - 0x90]
push dword [ebp - 0x68]
call fcn.004e5ee0
add esp, 8
jmp 0x53ec0a
mov dword [ebp - 0xac], 1
jmp 0x53ec0a
cmp byte [ebp - 0xa1], 0
je 0x53ec0a
test eax, eax
jne 0x53ec04
mov eax, dword [ebp - 0x9c]
add eax, dword [ebp - 0x74]
push eax
push 0
push 0x48
push ebx
call fcn.0052dc80
add esp, 0x10
mov dword [ebp - 0xac], 0
inc dword [ebp - 0x9c]
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x53ec20
push eax
push dword [ebp - 0xcc]
call fcn.0050bed0
add esp, 8
mov esi, dword [ebp - 0x78]
test esi, esi
je 0x53ecda
mov ecx, dword [ebp - 0xcc]
test ecx, ecx
je 0x53ec85
cmp dword [ecx + 0x1f8], 0
je 0x53ec4d
push esi
push ecx
call fcn.004f2a90
add esp, 8
jmp 0x53ecda
cmp esi, dword [ecx + 0x14c]
jae 0x53ec85
cmp esi, dword [ecx + 0x144]
jb 0x53ec6d
mov eax, dword [ecx + 0x140]
mov dword [esi], eax
mov dword [ecx + 0x140], esi
jmp 0x53ecda
cmp esi, dword [ecx + 0x148]
jb 0x53ec85
mov eax, dword [ecx + 0x138]
mov dword [esi], eax
mov dword [ecx + 0x138], esi
jmp 0x53ecda
cmp dword [0x5ac1c8], 0
je 0x53ecd0
mov eax, dword [0x5b6e80]
test eax, eax
je 0x53eca1
push eax
call dword [0x5ac218]
add esp, 4
push esi
call dword [0x5ac1f4]
sub dword [0x5b6e20], eax
dec dword [0x5b6e44]
push esi
call dword [0x5ac1ec]
mov eax, dword [0x5b6e80]
add esp, 8
test eax, eax
je 0x53ecda
push eax
call dword [0x5ac220]
jmp 0x53ecd7
push esi
call dword [0x5ac1ec]
add esp, 4
mov ecx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x9c]
mov eax, dword [ebx + 0x6c]
mov dword [ecx + 0x3c], eax
test esi, esi
je 0x53ed38
mov ecx, dword [ebp - 0x8c]
test ecx, ecx
je 0x53ed0a
mov eax, dword [ebx + 0x6c]
add eax, 3
push eax
push ecx
push 0x14
push ebx
call fcn.0052dc80
add esp, 0x10
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xac]
push esi
push dword [ebp - 0x74]
push dword [ebp - 0x84]
movzx eax, byte [eax + ecx*2 + 0x58ccac]
push dword [ebp - 0xa8]
push eax
push ebx
call fcn.0052de20
add esp, 0x18
mov ecx, dword [ebp - 0x8c]
test ecx, ecx
je 0x53ed86
mov eax, dword [ebx + 0x6c]
add eax, 2
push eax
push ecx
push 0x12
push ebx
call fcn.0052dc80
mov ecx, dword [ebp - 0xd4]
lea eax, [ecx + esi]
mov esi, dword [ebp - 0xa8]
push eax
push dword [ebp - 0x74]
mov eax, dword [ebp - 0xa0]
push dword [ebp - 0x84]
push esi
movzx eax, byte [ecx + eax*2 + 0x58ccac]
push eax
push ebx
call fcn.0052de20
add esp, 0x28
jmp 0x53ed8c
mov esi, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 0x24]
test eax, 0x40000
je 0x53edb3
push 1
push esi
push 0x76
push ebx
call fcn.0052dc80
mov ecx, dword [ebp - 0x88]
add esp, 0x10
mov eax, dword [ecx + 0x24]
test al, 0x40
je 0x53edd9
mov eax, dword [ebp - 0x94]
test byte [eax + 0x28], 0x20
jne 0x53edd9
mov ecx, dword [ebp - 0xa8]
mov esi, 1
mov edx, dword [ebp - 0xb4]
jmp 0x53ef88
mov edx, dword [ebp - 0xb4]
xor esi, esi
mov eax, dword [edx + 0xc]
test byte [eax + 0x24], 0x80
jne 0x53ee60
mov eax, dword [ebp - 0x94]
movzx eax, word [eax + 0x28]
test eax, 0x400
jne 0x53ee2f
test eax, 0x1000
mov eax, dword [ebp - 0x94]
je 0x53ee14
cmp byte [eax + 0x2e], 1
je 0x53ee2f
cmp word [ecx + 0x28], si
je 0x53ee2f
push dword [ebp - 0xa8]
push dword [ebp - 0x98]
push edx
push eax
call fcn.004e15e0
add esp, 0x10
jmp 0x53ef76
inc dword [edi + 0x2c]
mov esi, dword [edi + 0x2c]
push esi
push dword [ebp - 0xa8]
push 0x86
push ebx
call fcn.0052dc80
push esi
push 0
push dword [ebp - 0x98]
push 0x20
push ebx
call fcn.0052dce0
add esp, 0x24
jmp 0x53ef74
mov ecx, dword [ebp - 0xa8]
cmp dword [ebp - 0x98], ecx
je 0x53ef82
push eax
call fcn.005233e0
mov dword [ebp - 0x6c], eax
movzx eax, word [eax + 0x32]
push eax
push edi
call fcn.00517b90
mov edx, eax
xor esi, esi
mov eax, dword [ebp - 0x6c]
xor edi, edi
add esp, 0xc
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xac], esi
movzx eax, word [eax + 0x32]
mov ecx, eax
cmp di, ax
jae 0x53ef58
mov edi, edx
nop
mov eax, dword [ebp - 0xb4]
xor ecx, ecx
movzx edx, word [eax + 0x34]
test edx, edx
je 0x53eee0
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 4]
movzx esi, word [eax + esi*2]
mov eax, dword [ebp - 0xb4]
mov eax, dword [eax + 4]
cmp si, word [eax]
je 0x53ef03
inc ecx
add eax, 2
cmp ecx, edx
jl 0x53eed3
or eax, 0xffffffff
mov ecx, dword [ebx + 0x6c]
movsx edx, ax
cmp dword [ebx + 0x70], ecx
jg 0x53ef08
push edi
push edx
push dword [ebp - 0xa8]
push 0x59
push ebx
call fcn.004ef800
add esp, 0x14
jmp 0x53ef35
movzx eax, cx
jmp 0x53eee3
mov esi, dword [ebp - 0xa8]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp - 0x6c]
inc edi
mov esi, dword [ebp - 0xac]
inc esi
mov dword [ebp - 0xac], esi
movzx ecx, word [eax + 0x32]
cmp esi, ecx
jl 0x53eeb0
mov edx, dword [ebp - 0xd4]
movzx eax, cx
push eax
push edx
push dword [ebp - 0xe4]
push dword [ebp - 0x98]
push 0x1d
push ebx
call fcn.0052de20
add esp, 0x18
xor esi, esi
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x94]
mov edi, dword [ebp - 0x68]
cmp dword [edi], 0
jne 0x53efc9
test byte [eax + 0x28], 0x20
jne 0x53efa7
push eax
push ecx
push dword [ebp - 0x98]
push edx
call fcn.0054da80
add esp, 0x10
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x53efcf
push dword [ebp - 0xdc]
push dword [ebp - 0x98]
push eax
call fcn.0054d640
add esp, 0xc
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x88]
test dword [edx + 0x24], 0x1000
je 0x53efe4
mov byte [edi + 0x35], 0xad
jmp 0x53eff3
cmp dword [ebp - 0xa0], 0
sete al
add al, 4
mov byte [edi + 0x35], al
mov eax, dword [ebp - 0xa8]
mov dword [edi + 0x38], eax
mov al, byte [edx + 0x26]
and al, 1
mov byte [edi + 0x36], al
test byte [edx + 0x24], 0xf
jne 0x53f00e
mov byte [edi + 0x37], 1
xor eax, eax
test esi, esi
cmove eax, ecx
mov dword [ebp - 0xd4], eax
jmp 0x53f9bb
test edx, 0x2000
je 0x53f96e
mov eax, dword [edi + 0x28]
dec dword [edi + 0x38]
inc dword [edi + 0x2c]
mov dword [ebp - 0x9c], eax
inc eax
mov dword [edi + 0x28], eax
mov eax, dword [edi + 0x38]
mov esi, dword [ebp - 0xd8]
mov edx, dword [edi + 0x2c]
mov dword [ebp - 0x6c], eax
xor eax, eax
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x88]
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x80], edx
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0xb4], 0
mov eax, dword [eax]
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0xb8], ecx
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x68]
mov byte [eax + 0x35], 0x41
mov dword [eax + 0x38], edx
mov eax, dword [ebp - 0x94]
mov al, byte [eax + 0x2c]
cmp al, 1
jbe 0x53f1cd
mov ecx, dword [ebp - 0xcc]
movzx eax, al
sub eax, dword [ebp + 0x14]
dec eax
mov dword [ebp - 0xac], eax
push 0
lea eax, [eax + eax*8]
lea eax, [eax*8 + 0x50]
push eax
test ecx, ecx
je 0x53f0ed
push ecx
call fcn.0050bfe0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x90], ecx
jmp 0x53f0fd
call fcn.0051c500
add esp, 8
mov dword [ebp - 0x90], eax
mov ecx, eax
test ecx, ecx
jne 0x53f118
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0048b6e9
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0xac]
lea edi, [ecx + 8]
lea eax, [edx + 1]
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x94]
mov ecx, dword [esi + 4]
add ecx, 8
mov dword [ebp - 0xbc], ecx
cmp edx, 1
jl 0x53f196
mov ebx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x68]
add ebx, 0x50
add eax, 0x8c
mov dword [ebp - 0xac], eax
movzx eax, byte [eax]
mov edi, ebx
add ebx, 0x48
lea eax, [eax + eax*8]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xac]
mov ecx, 0x12
add eax, 0x58
mov dword [ebp - 0xac], eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xbc]
sub edx, 1
jne 0x53f161
mov ebx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xb8]
mov edi, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x94]
test byte [edx + 0x28], 0x10
jne 0x53f213
test byte [ecx + 0x24], 0x80
jne 0x53f1de
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
push eax
push 0
push 0x48
push ebx
mov dword [ebp - 0x7c], eax
call fcn.0052dc80
add esp, 0x10
jmp 0x53f20a
mov eax, dword [ebp - 0x94]
mov eax, dword [eax + 4]
mov dword [ebp - 0x90], eax
jmp 0x53f1a2
push ecx
call fcn.005233e0
mov esi, eax
mov eax, dword [edi + 0x28]
mov dword [ebp - 0x7c], eax
lea ecx, [eax + 1]
mov dword [edi + 0x28], ecx
movzx ecx, word [esi + 0x32]
push ecx
push eax
push 0x64
push ebx
call fcn.0052dc80
push esi
push edi
call fcn.0053a290
add esp, 0x1c
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [ebp - 0x78], eax
mov esi, dword [ebx + 0x6c]
mov dword [ebp - 0x88], esi
cmp dword [ebx + 0x70], esi
jg 0x53f23b
push 0
push dword [ebp - 0x80]
push 0
push 0x45
push ebx
call fcn.004ef800
add esp, 0x14
mov dword [ebp - 0x88], eax
jmp 0x53f26d
mov edx, dword [ebp - 0x80]
lea eax, [esi + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x45
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 [ebp - 0xdc]
cmp dword [eax + 0xc], 1
jle 0x53f356
mov edx, dword [ebp - 0xa0]
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0xac], ecx
xor ebx, ebx
nop
mov eax, dword [eax + 0x14]
add eax, esi
cmp eax, edx
je 0x53f2e6
test byte [eax + 0xa], 6
jne 0x53f2e6
mov edi, 0x1fff
test word [eax + 0xc], di
mov edi, dword [ebp - 0xc8]
je 0x53f2e6
mov eax, dword [eax]
test eax, eax
je 0x53f2cb
push 0
push 0
push eax
push dword [ebp - 0xcc]
call fcn.004e8b10
add esp, 0x10
jmp 0x53f2cd
xor eax, eax
push eax
push ebx
push edi
call fcn.0050e260
mov ecx, dword [ebp - 0xac]
add esp, 0xc
mov edx, dword [ebp - 0xa0]
mov ebx, eax
mov eax, dword [ebp - 0xdc]
inc ecx
add esi, 0x30
mov dword [ebp - 0xac], ecx
cmp ecx, dword [eax + 0xc]
jl 0x53f290
mov dword [ebp - 0xc0], ebx
test ebx, ebx
mov ebx, dword [ebp - 0xd0]
je 0x53f356
mov ecx, dword [edi]
mov eax, 0x34
cmp ax, word [ecx + 0x11c]
jbe 0x53f497
cmp dword [ecx + 0x118], 0
jne 0x53f333
inc dword [ecx + 0x12c]
jmp 0x53f505
cmp byte [ecx + 0x51], 0
je 0x53f505
xor esi, esi
mov eax, dword [ebp - 0xc0]
push eax
push dword [edi]
call fcn.00511210
add esp, 8
mov dword [ebp - 0xc0], esi
mov eax, dword [ebp - 0x94]
mov esi, 0x400
push str.MULTI_INDEX_OR
push 1
push edi
mov ax, word [eax + 0x28]
and ax, si
or ax, 0x20
movzx eax, ax
mov dword [ebp - 0xe8], eax
call fcn.00536cd0
mov ecx, dword [ebp - 0x8c]
xor eax, eax
add esp, 0xc
mov dword [ebp - 0xbc], eax
cmp dword [ecx + 0xc], eax
jle 0x53f81f
mov edx, dword [ebp - 0x98]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [ecx + 0x14]
cmp dword [eax + 0x14], edx
je 0x53f3ba
test word [eax + 0xc], si
je 0x53f809
mov esi, dword [eax]
xor eax, eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0xc0]
test eax, eax
je 0x53f3d3
mov dword [eax + 0xc], esi
mov esi, eax
mov eax, dword [ebp - 0xbc]
inc eax
push eax
push str.INDEX__d
push 1
push edi
call fcn.00536cd0
push dword [ebp - 0x9c]
push dword [ebp - 0xe8]
push 0
push 0
push esi
mov esi, dword [ebp - 0x90]
push esi
push edi
call fcn.0053cf00
add esp, 0x2c
mov dword [ebp - 0xe0], eax
test eax, eax
je 0x53f7f8
push 0
lea ecx, [eax + 0x2f0]
push ecx
push esi
push edi
call fcn.00540960
mov eax, dword [ebp - 0x94]
add esp, 0x10
test byte [eax + 0x28], 0x10
jne 0x53f6d2
mov eax, dword [ebp - 0x8c]
mov esi, dword [ebp - 0xbc]
mov eax, dword [eax + 0xc]
dec eax
cmp esi, eax
mov eax, 0xffffffff
cmove esi, eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xa8], esi
test byte [eax + 0x24], 0x80
jne 0x53f56f
mov edx, dword [ebp - 0x78]
push edx
push dword [ebp - 0x98]
push 0x7f
push ebx
call fcn.0052dc80
push esi
push dword [ebp - 0x78]
push 0
push dword [ebp - 0x7c]
push 0x2d
push ebx
call fcn.0052de20
add esp, 0x28
mov esi, eax
jmp 0x53f6d8
mov esi, dword [ecx + 0x140]
test esi, esi
je 0x53f4b1
mov eax, dword [esi]
mov dword [ecx + 0x140], eax
inc dword [ecx + 0x128]
jmp 0x53f514
mov esi, dword [ecx + 0x13c]
test esi, esi
je 0x53f4cb
mov eax, dword [esi]
mov dword [ecx + 0x13c], eax
inc dword [ecx + 0x128]
jmp 0x53f514
mov esi, dword [ecx + 0x138]
test esi, esi
je 0x53f4e5
mov eax, dword [esi]
mov dword [ecx + 0x138], eax
inc dword [ecx + 0x128]
jmp 0x53f514
mov esi, dword [ecx + 0x134]
test esi, esi
je 0x53f4ff
mov eax, dword [esi]
inc dword [ecx + 0x128]
mov dword [ecx + 0x134], eax
jmp 0x53f514
inc dword [ecx + 0x130]
push 0
push 0x34
push ecx
call fcn.004e5080
mov esi, eax
add esp, 0xc
test esi, esi
je 0x53f33f
push 0x34
push 0
push esi
call fcn.0048deb0
or eax, 0xffffffff
mov byte [esi], 0x2c
mov word [esi + 0x22], ax
mov eax, dword [ebp - 0xc0]
mov dword [esi + 0x10], eax
push esi
mov eax, dword [eax + 4]
and eax, 0x200104
or dword [esi + 4], eax
call fcn.004e9a00
mov eax, dword [edi]
add esp, 0x10
mov eax, dword [eax + 0x78]
cmp dword [esi + 0x18], eax
jle 0x53f350
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.0050dd30
add esp, 0xc
jmp 0x53f350
mov esi, dword [eax + 8]
test esi, esi
je 0x53f586
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x53f586
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x53f576
movzx eax, word [esi + 0x32]
push eax
push edi
mov dword [ebp - 0xac], eax
call fcn.00517b90
xor edi, edi
mov dword [ebp - 0xc4], eax
add esp, 8
cmp dword [ebp - 0xac], edi
jbe 0x53f5e0
lea ebx, [ebx]
lea ecx, [edi + eax]
mov eax, dword [esi + 4]
push ecx
movsx eax, word [eax + edi*2]
push eax
push dword [ebp - 0x98]
push dword [ebp - 0xb8]
push ebx
call fcn.0050eb00
mov eax, dword [ebp - 0xc4]
inc edi
add esp, 0x14
cmp edi, dword [ebp - 0xac]
jl 0x53f5b0
mov edi, dword [ebp - 0xa8]
mov esi, dword [ebp - 0xac]
test edi, edi
je 0x53f60a
push esi
push eax
push 0
push dword [ebp - 0x7c]
push 0x1e
push ebx
call fcn.0052de20
add esp, 0x18
mov dword [ebp - 0x84], eax
test edi, edi
js 0x53f690
mov ecx, dword [ebx + 0x6c]
mov edi, dword [ebp - 0xc4]
cmp dword [ebx + 0x70], ecx
jg 0x53f630
push dword [ebp - 0x78]
push esi
push edi
push 0x5b
push ebx
call fcn.004ef800
add esp, 0x14
jmp 0x53f65a
mov edx, dword [ebp - 0x78]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push esi
push edi
push dword [ebp - 0x78]
push dword [ebp - 0x7c]
push 0x82
push ebx
call fcn.0052de20
add esp, 0x18
cmp dword [ebp - 0xa8], 0
je 0x53f690
mov eax, dword [ebx + 0x6c]
test eax, eax
jle 0x53f690
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [ebx + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov edi, dword [ebp - 0xc8]
cmp esi, 1
jne 0x53f6c1
mov ecx, dword [ebp - 0xc4]
test ecx, ecx
je 0x53f6d2
mov al, byte [edi + 0x13]
mov esi, dword [ebp - 0x84]
cmp al, 8
jae 0x53f6d8
movzx eax, al
mov dword [edi + eax*4 + 0x94], ecx
inc byte [edi + 0x13]
jmp 0x53f6d8
cmp esi, dword [edi + 0x1c]
jle 0x53f6d2
mov eax, dword [ebp - 0xc4]
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], eax
mov esi, dword [ebp - 0x84]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x53f6f5
push 0
push dword [ebp - 0x6c]
push dword [ebp - 0x80]
push 0xc
push ebx
call fcn.004ef800
add esp, 0x14
jmp 0x53f726
mov edx, dword [ebp - 0x80]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x6c]
mov dword [eax + ecx*4], 0xc
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test esi, esi
je 0x53f750
mov eax, dword [ebx]
mov edx, dword [ebx + 0x6c]
cmp byte [eax + 0x51], 0
je 0x53f73c
mov eax, 0x5b6fa4
jmp 0x53f74d
test esi, esi
lea eax, [edx - 1]
cmovns eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0xe0]
mov ecx, 1
mov eax, dword [ebp - 0xb4]
test byte [edx + 0x30], 2
cmovne eax, ecx
mov ecx, dword [edx + 0x338]
mov dword [ebp - 0xb4], eax
test dword [ecx + 0x24], 0x200
je 0x53f7ae
cmp dword [ebp - 0xbc], 0
je 0x53f78e
mov eax, dword [ebp - 0x74]
cmp dword [ecx + 0x20], eax
jne 0x53f7ae
mov eax, dword [ebp - 0xb8]
test byte [eax + 0x24], 0x80
je 0x53f7a6
mov eax, dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x53f7ae
mov esi, dword [ecx + 0x20]
mov dword [ebp - 0x74], esi
jmp 0x53f7b5
mov dword [ebp - 0x74], 0
push edx
call fcn.0053fe20
mov ecx, dword [edi + 0xd4]
add esp, 4
test ecx, ecx
jne 0x53f7cc
xor eax, eax
jmp 0x53f7f2
mov edx, dword [edi + 8]
test ecx, ecx
jns 0x53f7d7
mov ecx, dword [edx + 0x6c]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x51], 0
je 0x53f7e6
mov eax, 0x5b6fa4
jmp 0x53f7ef
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [edi + 0xd4], eax
mov edx, dword [ebp - 0x98]
mov esi, 0x400
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0xbc]
inc eax
mov dword [ebp - 0xbc], eax
cmp eax, dword [ecx + 0xc]
jl 0x53f3a2
mov ecx, dword [edi + 0xd4]
test ecx, ecx
jne 0x53f82d
xor eax, eax
jmp 0x53f853
mov edx, dword [edi + 8]
test ecx, ecx
jns 0x53f838
mov ecx, dword [edx + 0x6c]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x51], 0
je 0x53f847
mov eax, 0x5b6fa4
jmp 0x53f850
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [edi + 0xd4], eax
mov edi, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
mov dword [edi + 0x40], eax
test eax, eax
je 0x53f86f
mov eax, dword [ebp - 0x9c]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xcc]
test eax, eax
je 0x53f890
push eax
push esi
mov dword [eax + 0xc], 0
call fcn.00511210
add esp, 8
mov eax, dword [ebx]
mov edx, dword [ebx + 0x6c]
cmp byte [eax + 0x51], 0
je 0x53f8a2
mov eax, 0x5b6fa4
jmp 0x53f8b9
mov ecx, dword [ebp - 0x88]
lea eax, [edx - 1]
test ecx, ecx
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 4], edx
mov ecx, dword [ebx + 0x6c]
mov edx, dword [edi + 0xc]
cmp dword [ebx + 0x70], ecx
jg 0x53f8d9
push 0
push edx
push 0
push 0xb
push ebx
call fcn.004ef800
add esp, 0x14
jmp 0x53f90e
mov esi, dword [ebp - 0xcc]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 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 [ebx + 0xc]
mov edx, dword [ebp - 0x6c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x53f92b
push edx
push ebx
push ecx
call fcn.004fd400
add esp, 0xc
jmp 0x53f934
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebx + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 0x94]
cmp byte [eax + 0x2c], 1
jbe 0x53f954
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x53f954
push eax
push esi
call fcn.0050bed0
add esp, 8
cmp dword [ebp - 0xb4], 0
jne 0x53f9b9
push dword [ebp - 0xa0]
push edi
call fcn.004e5ee0
add esp, 8
jmp 0x53f9b9
mov eax, dword [ebp - 0xd8]
test byte [eax + 0x28], 0x20
je 0x53f983
mov eax, dword [ebp - 0x68]
mov byte [eax + 0x35], 0xad
jmp 0x53f9b9
mov ecx, dword [ebp - 0xa0]
mov edi, dword [ebp - 0x68]
push esi
mov al, byte [ecx + 0x58ccb0]
mov byte [edi + 0x35], al
mov eax, dword [ebp - 0x98]
push eax
mov dword [edi + 0x38], eax
movzx eax, byte [ecx + 0x58ccb4]
push eax
push ebx
call fcn.0052dc80
add esp, 0x10
mov byte [edi + 0x37], 1
inc eax
mov dword [edi + 0x3c], eax
xor eax, eax
mov edi, dword [ebp - 0xdc]
mov ecx, eax
neg ecx
sbb ecx, ecx
add ecx, 2
mov dword [ebp - 0x6c], ecx
lea ecx, [ecx]
mov edx, dword [edi + 0xc]
xor eax, eax
mov esi, dword [edi + 0x14]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x90], edx
test edx, edx
jle 0x53fbe2
lea esp, [esp]
movzx edx, word [esi + 0xa]
xor edi, edi
test dl, 6
jne 0x53fbb8
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x68]
mov ecx, dword [esi + 0x28]
and ecx, dword [eax + 0x50]
mov eax, dword [esi + 0x2c]
and eax, dword [ebx + 0x54]
or ecx, eax
mov ebx, dword [ebp - 0xd0]
je 0x53fa2a
mov eax, dword [ebp - 0x94]
or dword [eax + 0x30], 2
jmp 0x53fbb5
mov eax, dword [ebp - 0xd8]
mov ecx, dword [esi]
mov dword [ebp - 0xe8], ecx
test byte [eax + 0x24], 8
je 0x53fa48
test byte [ecx + 4], 1
je 0x53fbb5
mov eax, dword [ebp - 0x6c]
cmp eax, 1
jne 0x53faca
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dword [ebp - 0x104], edi
mov dword [ebp - 0xfc], edi
mov dword [ebp - 0xf8], edi
mov eax, dword [eax + 4]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0xb0]
mov dword [ebp - 0xf4], edi
mov dword [ebp - 0xf0], edx
mov dword [ebp - 0x100], 0x4e8f00
mov dword [ebp - 0xec], eax
test ecx, ecx
je 0x53fab8
push ecx
lea eax, [ebp - 0x104]
push eax
call fcn.0054d4b0
mov edx, dword [ebp - 0xf0]
add esp, 8
test dx, dx
je 0x53facf
mov eax, 2
mov dword [ebp - 0x78], eax
jmp 0x53fbb8
cmp eax, 3
jge 0x53faf3
movzx edx, word [esi + 0xa]
test edx, 0x1000
je 0x53faf3
mov eax, dword [ebp - 0x78]
test eax, eax
jne 0x53fbb8
mov eax, 3
mov dword [ebp - 0x78], eax
jmp 0x53fbb8
test edx, 0x200
je 0x53fb6a
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x53fb6a
mov edi, dword [ebx + 0x6c]
mov edx, eax
and eax, 1
shr edx, 1
lea eax, [eax*2 + 0x12]
mov dword [ebp - 0xe0], eax
cmp dword [ebx + 0x70], edi
jg 0x53fb34
push 0
push 0
push edx
push eax
push ebx
call fcn.004ef800
add esp, 0x14
mov edi, eax
jmp 0x53fb6a
lea eax, [edi + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [ebx + 0x68]
mov ebx, dword [ebp - 0xe0]
mov byte [eax + ecx*4], bl
xor ebx, ebx
mov word [eax + ecx*4 + 2], bx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], ebx
mov byte [eax + ecx*4 + 1], bl
mov ebx, dword [ebp - 0xd0]
mov dword [eax + ecx*4 + 4], edx
push 0x10
push dword [ebp - 0xe4]
push dword [ebp - 0xe8]
push dword [ebp - 0xc8]
call fcn.005114f0
add esp, 0x10
test edi, edi
je 0x53fbb0
mov eax, dword [ebx]
mov edx, dword [ebx + 0x6c]
cmp byte [eax + 0x51], 0
je 0x53fb9c
mov eax, 0x5b6fa4
jmp 0x53fbad
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
or word [esi + 0xa], 4
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x90]
add esi, 0x30
dec edx
mov dword [ebp - 0x90], edx
test edx, edx
jg 0x53f9f0
mov edi, dword [ebp - 0xdc]
mov edx, dword [edi + 0xc]
mov esi, dword [edi + 0x14]
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x6c], eax
test eax, eax
jg 0x53f9d0
test edx, edx
jle 0x53fd53
mov ebx, dword [ebp - 0xc8]
add esi, 0xc
mov dword [ebp - 0x7c], esi
mov edi, 0xb
test byte [esi - 2], 6
jne 0x53fd38
movzx eax, word [esi]
test al, 0x82
setne cl
bt ax, di
setb al
test al, cl
je 0x53fd38
mov ecx, dword [ebp - 0x98]
cmp dword [esi + 8], ecx
jne 0x53fd38
mov eax, dword [ebp - 0xd8]
test byte [eax + 0x24], 8
jne 0x53fd38
mov eax, dword [esi - 0xc]
xor edi, edi
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0xe0], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x58], edi
mov word [ebp - 0x54], 0x100
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x50], 0x83
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], ecx
mov byte [ebp - 0x52], 1
cmp eax, 0xfffffffe
je 0x53fccc
mov word [ebp - 0x1c], ax
lea eax, [ebp - 0x64]
push eax
call fcn.00551db0
mov esi, eax
add esp, 4
test esi, esi
je 0x53fccc
mov edx, dword [esi + 0x20]
mov ecx, edx
mov eax, dword [esi + 0x24]
and ecx, dword [ebp + 0x1c]
and eax, dword [ebp + 0x20]
or ecx, eax
jne 0x53fcba
or edx, dword [esi + 0x24]
jne 0x53fcb5
test byte [esi + 0xc], 0x82
jne 0x53fcce
test edi, edi
cmove edi, esi
lea eax, [ebp - 0x64]
push eax
call fcn.00551db0
mov esi, eax
add esp, 4
test esi, esi
jne 0x53fc98
mov esi, edi
test esi, esi
je 0x53fd2a
test byte [esi + 0xa], 4
jne 0x53fd2a
test byte [esi + 0xc], 1
je 0x53fcf4
mov eax, dword [esi]
test dword [eax + 4], 0x800
je 0x53fcf4
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jg 0x53fd2a
mov esi, dword [esi]
lea edi, [ebp - 0x11c]
mov eax, dword [ebp - 0xe0]
mov ecx, 0xd
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0xc]
push 0x10
push dword [ebp - 0xe4]
mov dword [ebp - 0x110], eax
lea eax, [ebp - 0x11c]
push eax
push ebx
call fcn.005114f0
add esp, 0x10
mov esi, dword [ebp - 0x7c]
mov edi, 0xb
mov edx, dword [ebp - 0x90]
dec edx
add esi, 0x30
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x7c], esi
test edx, edx
jg 0x53fc06
mov ebx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x68]
mov edx, dword [ecx]
test edx, edx
je 0x53fe02
mov eax, dword [ebx + 0x6c]
mov dword [ecx + 0x1c], eax
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x53fd80
push 0
push edx
push 1
push 0x45
push ebx
call fcn.004ef800
add esp, 0x14
jmp 0x53fdaf
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x45
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 ebx, dword [ebp - 0xdc]
xor edi, edi
mov esi, dword [ebx + 0x14]
cmp dword [ebx + 0xc], edi
jle 0x53fdff
nop
test byte [esi + 0xa], 6
jne 0x53fdf6
mov edx, dword [ebp - 0x68]
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edx + 0x50]
and eax, dword [edx + 0x54]
or ecx, eax
jne 0x53fdf6
push 0x10
push dword [ebp - 0xe4]
push dword [esi]
push dword [ebp - 0xc8]
call fcn.005114f0
add esp, 0x10
or word [esi + 0xa], 4
inc edi
add esi, 0x30
cmp edi, dword [ebx + 0xc]
jl 0x53fdc0
mov ecx, dword [ebp - 0x68]
mov eax, dword [ecx + 0x50]
mov edx, dword [ecx + 0x54]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0048b6e9
mov esp, ebp
pop ebp
ret