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

Disassembly:
sub esp, 0x14c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x160]
push edi
mov eax, dword [esi]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 8]
push eax
call dword [eax + 0x20]
mov edx, dword [esi]
mov dword [esp + 0x6c], eax
xor ebx, ebx
add esp, 4
mov eax, dword [edx + 4]
mov dword [esp + 0x28], ebx
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x20], ebx
jle 0x51ef8a
push 0x2b
push eax
call dword [eax + 0x74]
add esp, 8
test al, al
je 0x51ef8a
mov eax, dword [esp + 0x160]
xor ecx, ecx
mov edx, eax
pop edi
pop esi
pop ebp
mov dword [edx], ecx
mov ecx, dword [esp + 8]
pop ebx
mov dword [edx + 4], ecx
mov ecx, dword [esp + 8]
mov dword [edx + 8], ecx
add esp, 0x14c
ret
mov edx, dword [esi]
push 1
mov eax, dword [edx + 8]
push eax
call dword [eax + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esi]
xor ebp, ebp
push 1
mov ecx, dword [eax + 8]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x6c], ebx
mov eax, dword [ecx + 8]
mov dword [esp + 0x44], ebp
push eax
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x28], ebx
call dword [eax + 0x18]
add esp, 0x10
sub eax, 0x24
je 0x51f053
dec eax
je 0x51f04c
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x20], ebx
jle 0x51effa
mov byte [ecx + 0x18], 1
jmp 0x51f9a6
push eax
call dword [eax + 0x88]
mov edx, dword [esi]
add esp, 4
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
mov dword [edx], 3
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 4]
mov dword [eax + 8], 0x641dc4
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 4]
mov dword [ecx + 0x34], 0x4a
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
mov dword [edx + 0x38], ebx
jmp 0x520584
mov eax, 3
jmp 0x51f08b
mov eax, dword [esi]
push 2
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 8]
push eax
call dword [eax + 0x18]
push esi
call fcn.0052dc70
add esp, 0xc
test al, al
je 0x51f075
mov eax, 1
jmp 0x51f08b
push esi
call fcn.0052e760
add esp, 4
test al, al
je 0x52051d
mov eax, 2
dec eax
je 0x51ffea
dec eax
je 0x51fce8
dec eax
jne 0x520584
mov edx, dword [esi]
push 0x6391e8
push 0x25
mov eax, dword [edx + 4]
push eax
call dword [eax + 0x10]
mov edi, eax
mov eax, dword [esi]
add esp, 0xc
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f0f7
mov edx, dword [esi + 0x1a8]
push str.token_STATEMENT_IFCOLOR
push ecx
push edx
call fcn.0054beb0
push 0
push edi
push eax
mov dword [esp + 0x5c], eax
call dword [eax + 0x24]
add esp, 0x18
mov eax, dword [esi]
push 0
push 0x639200
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0x14]
lea eax, [esp + 0x150]
push esi
push eax
call fcn.00529090
mov ecx, dword [eax]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esi]
mov edx, dword [eax + 4]
mov dword [esp + 0x90], edx
mov edx, dword [ecx + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x94], eax
mov eax, dword [edx + 8]
mov eax, dword [eax + 0xc]
push eax
call dword [eax + 0xc]
mov ecx, dword [esi]
add esp, 0x18
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f195
mov edx, dword [esi + 0x1a8]
push str.rule_expression
push ecx
push edx
call fcn.0054c120
mov ebx, eax
mov eax, dword [esp + 0x8c]
push 0
push eax
push ebx
mov dword [esp + 0x4c], ebx
call dword [ebx + 0x24]
add esp, 0x18
mov ecx, dword [esi]
push 0x639220
push 0x64
mov eax, dword [ecx + 4]
push eax
call dword [eax + 0x10]
mov edx, dword [esi]
mov edi, eax
add esp, 0xc
mov ecx, dword [edx + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f1ee
mov edx, dword [esi + 0x1a8]
push str.token_AUX_SYMBOL_COMMA
push ecx
push edx
call fcn.0054beb0
mov ebp, eax
push 0
push edi
push ebp
mov dword [esp + 0x50], ebp
call dword [ebp + 0x24]
add esp, 0x18
mov eax, dword [esi]
push 0
push 0x639238
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0x14]
lea eax, [esp + 0x108]
push esi
push eax
call fcn.00529090
mov ecx, dword [eax]
mov dword [esp + 0x80], ecx
mov ecx, dword [esi]
mov edx, dword [eax + 4]
mov dword [esp + 0x84], edx
mov edx, dword [ecx + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x88], eax
mov eax, dword [edx + 8]
mov eax, dword [eax + 0xc]
push eax
call dword [eax + 0xc]
mov ecx, dword [esi]
add esp, 0x18
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f290
test ebx, ebx
jne 0x51f282
mov edx, dword [esi + 0x1a8]
push str.rule_expression
push ecx
push edx
call fcn.0054c120
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x74]
push 0
push eax
push ebx
call dword [ebx + 0x24]
add esp, 0xc
mov ecx, dword [esi]
push 0x639258
push 0x64
mov eax, dword [ecx + 4]
push eax
call dword [eax + 0x10]
mov edx, dword [esi]
mov edi, eax
add esp, 0xc
mov ecx, dword [edx + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f2f0
test ebp, ebp
jne 0x51f2e6
mov edx, dword [esi + 0x1a8]
push str.token_AUX_SYMBOL_COMMA
push ecx
push edx
call fcn.0054beb0
mov ebp, eax
add esp, 0xc
mov dword [esp + 0x38], ebp
push 0
push edi
push ebp
call dword [ebp + 0x24]
add esp, 0xc
mov eax, dword [esi]
push 0
push 0x639270
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0x14]
lea eax, [esp + 0xc0]
push esi
push eax
call fcn.00529090
mov ecx, dword [eax]
mov dword [esp + 0x98], ecx
mov ecx, dword [esi]
mov edx, dword [eax + 4]
mov dword [esp + 0x9c], edx
mov edx, dword [ecx + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0xa0], eax
mov eax, dword [edx + 8]
mov eax, dword [eax + 0xc]
push eax
call dword [eax + 0xc]
mov ecx, dword [esi]
add esp, 0x18
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f395
test ebx, ebx
jne 0x51f384
mov edx, dword [esi + 0x1a8]
push str.rule_expression
push ecx
push edx
call fcn.0054c120
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x8c]
push 0
push eax
push ebx
call dword [ebx + 0x24]
add esp, 0xc
mov ecx, dword [esi]
push 0x639290
push 0x64
mov eax, dword [ecx + 4]
push eax
call dword [eax + 0x10]
mov edx, dword [esi]
mov edi, eax
add esp, 0xc
mov ecx, dword [edx + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f3f5
test ebp, ebp
jne 0x51f3eb
mov edx, dword [esi + 0x1a8]
push str.token_AUX_SYMBOL_COMMA
push ecx
push edx
call fcn.0054beb0
mov ebp, eax
add esp, 0xc
mov dword [esp + 0x38], ebp
push 0
push edi
push ebp
call dword [ebp + 0x24]
add esp, 0xc
mov eax, dword [esi]
push 0
push 0x6392b0
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0x14]
lea eax, [esp + 0x138]
push esi
push eax
call fcn.00529090
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov ebp, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f486
test ebx, ebx
jne 0x51f47c
mov edx, dword [esi + 0x1a8]
push str.rule_expression
push ecx
push edx
call fcn.0054c120
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x34], ebx
push 0
push ebp
push ebx
call dword [ebx + 0x24]
add esp, 0xc
mov eax, dword [esi]
push 1
mov edi, 2
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 0x26
jne 0x51f4a6
mov edi, 1
dec edi
jne 0x51f500
mov edx, dword [esi]
push 0x6392d0
push 0x26
mov eax, dword [edx + 4]
push eax
call dword [eax + 0x10]
mov edi, eax
mov eax, dword [esi]
add esp, 0xc
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f500
mov edx, dword [esi + 0x1a8]
push str.token_STATEMENT_THEN
push ecx
push edx
call fcn.0054beb0
push 0
push edi
push eax
mov dword [esp + 0x68], eax
call dword [eax + 0x24]
add esp, 0x18
mov eax, dword [esi]
push 0
push 0x6392f0
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0x14]
lea eax, [esp + 0xd8]
push esi
push eax
call fcn.00514910
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f588
mov edx, dword [esi + 0x1a8]
push str.rule_statementSeparator
push ecx
push edx
call fcn.0054c120
push 0
push edi
push eax
mov dword [esp + 0x6c], eax
call dword [eax + 0x24]
add esp, 0x18
mov eax, dword [esi]
push 1
mov edi, 2
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 8
jl 0x51f5ac
cmp eax, 0xb
jle 0x51f668
cmp eax, 0x1e
je 0x51f668
cmp eax, 0x30
je 0x51f668
cmp eax, 0x78
je 0x51f668
cmp eax, 0x8f
jl 0x51f5d9
cmp eax, 0x90
jle 0x51f668
cmp eax, 0x65
jne 0x51f5ed
mov eax, dword [0x6bf4f8]
test eax, eax
jle 0x51f66d
jmp 0x51f668
cmp eax, 4
jl 0x51f5f7
cmp eax, 7
jle 0x51f668
cmp eax, 0xc
je 0x51f668
cmp eax, 0xe
je 0x51f668
cmp eax, 0x10
jl 0x51f60b
cmp eax, 0x11
jle 0x51f668
cmp eax, 0x16
jl 0x51f615
cmp eax, 0x19
jle 0x51f668
cmp eax, 0x1b
je 0x51f668
cmp eax, 0x24
jl 0x51f624
cmp eax, 0x25
jle 0x51f668
cmp eax, 0x2a
je 0x51f668
cmp eax, 0x2c
je 0x51f668
cmp eax, 0x2f
je 0x51f668
cmp eax, 0x32
je 0x51f668
cmp eax, 0x34
je 0x51f668
cmp eax, 0x43
jl 0x51f647
cmp eax, 0x44
jle 0x51f668
cmp eax, 0x8b
jl 0x51f655
cmp eax, 0x8c
jle 0x51f668
cmp eax, 0x69
je 0x51f65f
cmp eax, 0x77
jne 0x51f66d
mov eax, dword [0x6bf4f0]
test eax, eax
jne 0x51f66d
mov edi, 1
mov eax, edi
dec eax
jne 0x51f712
mov edx, dword [esi]
push 0
push 0x639310
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
push eax
call dword [eax + 0x14]
lea edx, [esp + 0x120]
push esi
push edx
call fcn.00512c90
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f588
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x51f703
push str.rule_statement
push ecx
mov ecx, dword [esi + 0x1a8]
push ecx
call fcn.0054c120
add esp, 0xc
mov dword [esp + 0x30], eax
push 0
push edi
push eax
call dword [eax + 0x24]
add esp, 0xc
jmp 0x51f588
mov edx, dword [esi]
push 1
mov edi, 2
mov eax, dword [edx + 8]
mov eax, dword [eax + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 0x27
jne 0x51f732
mov edi, 1
dec edi
jne 0x51f7d5
mov ecx, dword [esi]
push 0
push 0x639328
mov edx, dword [ecx + 4]
mov eax, dword [edx + 8]
mov eax, dword [eax + 0xc]
push eax
call dword [eax + 0x14]
lea ecx, [esp + 0xf0]
push esi
push ecx
call fcn.00521460
mov edx, dword [eax]
mov dword [esp + 0x30], edx
mov edx, dword [esi]
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
mov edi, dword [eax + 8]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
push eax
call dword [eax + 0xc]
mov edx, dword [esi]
add esp, 0x18
mov ecx, dword [edx + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f712
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x51f7c6
mov eax, dword [esi + 0x1a8]
push str.rule_elseIf
push ecx
push eax
call fcn.0054c120
add esp, 0xc
mov dword [esp + 0x2c], eax
push 0
push edi
push eax
call dword [eax + 0x24]
add esp, 0xc
jmp 0x51f712
mov ecx, dword [esi]
push 1
mov edi, 2
mov edx, dword [ecx + 8]
mov eax, dword [edx + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 0x28
jne 0x51f7f5
mov edi, 1
dec edi
jne 0x51f884
mov eax, dword [esi]
push 0
push 0x639340
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0x14]
lea eax, [esp + 0x9c]
push esi
push eax
call fcn.00521b90
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f884
mov edx, dword [esi + 0x1a8]
push str.rule_elseRule
push ecx
push edx
call fcn.0054c120
push 0
push edi
push eax
mov dword [esp + 0x54], eax
call dword [eax + 0x24]
add esp, 0x18
mov eax, dword [esi]
push 1
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 0x29
je 0x51f914
cmp eax, 0x41
je 0x51f90d
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x20]
test edx, edx
jle 0x51f8b7
mov byte [ecx + 0x18], 1
jmp 0x51f9a6
push eax
call dword [eax + 0x88]
mov edx, dword [esi]
add esp, 4
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
mov dword [edx], 3
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 4]
mov dword [eax + 8], 0x641dc4
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 4]
mov dword [ecx + 0x34], 0x49
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
mov dword [edx + 0x38], 0
jmp 0x520584
mov eax, 2
jmp 0x51f919
mov eax, 1
dec eax
je 0x51f9e9
dec eax
jne 0x51fa3c
mov eax, dword [esi]
push 0x639360
push 0x41
mov eax, dword [eax + 4]
push eax
call dword [eax + 0x10]
mov ecx, dword [esi]
mov edi, eax
add esp, 0xc
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51f97a
mov edx, dword [esi + 0x1a8]
push str.token_CLAUSE_END
push ecx
push edx
call fcn.0054beb0
push 0
push edi
push eax
mov dword [esp + 0x78], eax
call dword [eax + 0x24]
add esp, 0x18
mov eax, dword [esi]
push 0x639370
push 0x24
mov eax, dword [eax + 4]
push eax
call dword [eax + 0x10]
mov ecx, dword [esi]
mov edi, eax
add esp, 0xc
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
jne 0x51f9ca
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x10]
mov edx, eax
pop edi
pop esi
pop ebp
mov dword [edx], ecx
pop ebx
mov dword [edx + 4], ecx
mov ecx, dword [esp + 8]
mov dword [edx + 8], ecx
add esp, 0x14c
ret
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51fa3c
mov edx, dword [esi + 0x1a8]
push str.token_STATEMENT_IF
push ecx
push edx
call fcn.0054beb0
mov dword [esp + 0x68], eax
jmp 0x51fa32
mov eax, dword [esi]
push 0x639350
push 0x29
mov eax, dword [eax + 4]
push eax
call dword [eax + 0x10]
mov ecx, dword [esi]
mov edi, eax
add esp, 0xc
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x51fa3c
mov edx, dword [esi + 0x1a8]
push str.token_STATEMENT_ENDIF
push ecx
push edx
call fcn.0054beb0
mov dword [esp + 0x64], eax
push 0
push edi
push eax
call dword [eax + 0x24]
add esp, 0x18
mov eax, dword [esi]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x20]
test edx, edx
jne 0x520584
mov edx, dword [esi + 0x1a8]
push 0
push str.token_retval
push eax
push edx
call fcn.0054c210
mov edx, dword [esi + 0x1a8]
mov dword [esp + 0x74], eax
mov eax, dword [esi]
push ebp
push str.token_exp4
mov ecx, dword [eax + 4]
push ecx
push edx
call fcn.0054c210
mov ecx, dword [esi]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xac]
mov edx, dword [ecx + 4]
push eax
mov eax, dword [esi + 0x1a8]
push str.token_exp3
push edx
push eax
call fcn.0054c210
mov edx, dword [esi]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x7c], eax
push ecx
mov eax, dword [edx + 4]
mov ecx, dword [esi + 0x1a8]
push str.token_exp2
push eax
push ecx
call fcn.0054c210
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x88], eax
mov eax, dword [esi]
add esp, 0x40
mov ecx, dword [eax + 4]
push edx
mov edx, dword [esi + 0x1a8]
push str.token_exp1
push ecx
push edx
call fcn.0054c210
mov ebx, eax
mov eax, dword [esi + 0x1a8]
push eax
call dword [eax + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x1a8]
push eax
call dword [eax + 0x10]
mov edi, eax
mov eax, dword [esp + 0x5c]
add esp, 0x18
test eax, eax
je 0x51fb1c
push eax
call dword [eax + 0x44]
add esp, 4
mov ecx, dword [esi + 0x1a8]
push edi
push eax
push ecx
call dword [ecx + 0x34]
mov ebp, eax
mov eax, dword [esi + 0x1a8]
push eax
call dword [eax + 0x10]
mov edi, dword [esi + 0x1a8]
add esp, 0x10
push eax
push str.AUX_SYMBOL_LPARENTHESIS
push 0x66
push edi
call dword [edi + 0x4c]
add esp, 0xc
push eax
mov eax, dword [esi + 0x1a8]
push eax
call dword [edi + 0x34]
add esp, 0xc
mov edi, eax
test ebx, ebx
jne 0x51fb64
xor eax, eax
jmp 0x51fb6b
push ebx
call dword [ebx + 0x2c]
add esp, 4
mov ecx, dword [esi + 0x1a8]
push eax
push edi
push ecx
call dword [ecx + 0x1c]
mov eax, dword [esp + 0x54]
add esp, 0xc
test eax, eax
jne 0x51fb86
xor eax, eax
jmp 0x51fb91
mov eax, dword [esp + 0x48]
push eax
call dword [eax + 0x2c]
add esp, 4
mov ecx, dword [esi + 0x1a8]
push eax
push edi
push ecx
call dword [ecx + 0x1c]
mov eax, dword [esp + 0x58]
add esp, 0xc
test eax, eax
jne 0x51fbac
xor eax, eax
jmp 0x51fbb7
mov eax, dword [esp + 0x4c]
push eax
call dword [eax + 0x2c]
add esp, 4
mov ecx, dword [esi + 0x1a8]
push eax
push edi
push ecx
call dword [ecx + 0x1c]
mov eax, dword [esp + 0x4c]
add esp, 0xc
test eax, eax
jne 0x51fbd2
xor eax, eax
jmp 0x51fbdd
mov eax, dword [esp + 0x40]
push eax
call dword [eax + 0x2c]
add esp, 4
mov ecx, dword [esi + 0x1a8]
push eax
push edi
push ecx
call dword [ecx + 0x1c]
mov eax, dword [esi + 0x1a8]
push edi
push ebp
push eax
call dword [eax + 0x1c]
mov eax, dword [esp + 0x48]
add esp, 0x18
test eax, eax
je 0x51fc2f
mov edi, dword [esp + 0x30]
push edi
call dword [edi + 0x40]
add esp, 4
test al, al
je 0x51fc28
mov eax, dword [esp + 0x30]
mov edi, dword [esi + 0x1a8]
push eax
call dword [eax + 0x2c]
push eax
push ebp
push edi
call dword [edi + 0x1c]
add esp, 0x10
jmp 0x51fc00
push edi
call dword [edi + 0x20]
add esp, 4
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x51fc66
push edi
call dword [edi + 0x40]
add esp, 4
test al, al
je 0x51fc5f
mov eax, dword [esp + 0x2c]
mov edi, dword [esi + 0x1a8]
push eax
call dword [eax + 0x2c]
push eax
push ebp
push edi
call dword [edi + 0x1c]
mov edi, dword [esp + 0x3c]
add esp, 0x10
jmp 0x51fc37
push edi
call dword [edi + 0x20]
add esp, 4
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x51fc75
push eax
call dword [eax + 0x2c]
add esp, 4
mov ecx, dword [esi + 0x1a8]
push eax
push ebp
push ecx
call dword [ecx + 0x1c]
mov edi, dword [esp + 0x34]
mov eax, dword [esi + 0x1a8]
push ebp
push edi
push eax
call dword [eax + 0x1c]
mov eax, dword [esp + 0x7c]
add esp, 0x18
test eax, eax
mov dword [esp + 0x18], edi
je 0x51fca7
push eax
call dword [eax + 0x50]
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
je 0x51fcb6
push eax
call dword [eax + 0x50]
add esp, 4
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x51fcc5
push eax
call dword [eax + 0x50]
add esp, 4
mov eax, dword [esp + 0x48]
test eax, eax
je 0x51fcd4
push eax
call dword [eax + 0x50]
add esp, 4
test ebx, ebx
je 0x520584
push ebx
call dword [ebx + 0x50]
add esp, 4
jmp 0x520584
mov eax, dword [esi + 0x1a8]
push eax
call dword [eax + 0x10]
mov edx, dword [esi]
mov ebx, eax
push 0x639168
push 0x24
mov eax, dword [edx + 4]
mov dword [esp + 0x34], ebx
push eax
call dword [eax + 0x10]
mov ecx, dword [esi]
add esp, 0x10
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 8]
cmp byte [ecx], 1
je 0x520584
cmp byte [ecx + 0x18], 1
je 0x51f9a6
mov edx, dword [ecx + 0x20]
test edx, edx
jne 0x51fd4d
mov ecx, dword [esi + 0x1a8]
push eax
push ecx
call dword [ecx + 0x40]
mov ecx, dword [esi + 0x1a8]
push ebx
push eax
push ecx
call dword [ecx + 0x34]
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x28], ebx
mov edx, dword [esi]
push 0
push 0x639178
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
push eax
call dword [eax + 0x14]
lea edx, [esp + 0xa8]
push esi
push edx
call fcn.00529200
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x51fdc4
mov eax, dword [esi + 0x1a8]
push edi
push ebx
push eax
call dword [eax + 0x1c]
add esp, 0xc
mov edx, dword [esi]
push 0x639198
push 0x26
mov eax, dword [edx + 4]
push eax
call dword [eax + 0x10]
mov eax, dword [esi]
add esp, 0xc
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x51fe03
mov dword [0x6bf4f0], 1
mov edx, dword [esi]
push 0
push 0x6391a8
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
push eax
call dword [eax + 0x14]
lea edx, [esp + 0xb4]
push esi
push edx
call fcn.005220f0
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x51fe7a
mov eax, dword [esi + 0x1a8]
push edi
push ebx
push eax
call dword [eax + 0x1c]
add esp, 0xc
mov edx, dword [esi]
push 1
mov edi, 2
mov eax, dword [edx + 8]
mov eax, dword [eax + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 0x27
jne 0x51feaa
mov ecx, dword [esi]
push edi
mov edx, dword [ecx + 8]
mov eax, dword [edx + 8]
push eax
call dword [eax + 0x18]
add esp, 8
mov edi, 1
dec edi
jne 0x51ff1e
mov eax, dword [esi]
push 0
push 0x6391b8
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0x14]
lea eax, [esp + 0xcc]
push esi
push eax
call fcn.00521460
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x51fe7a
jmp 0x51fe6b
mov edx, dword [esi]
push 1
mov edi, 2
mov eax, dword [edx + 8]
mov eax, dword [eax + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 0x28
jne 0x51ff4e
mov ecx, dword [esi]
push edi
mov edx, dword [ecx + 8]
mov eax, dword [edx + 8]
push eax
call dword [eax + 0x18]
add esp, 8
mov edi, 1
dec edi
jne 0x51ffc8
mov eax, dword [esi]
push 0
push 0x6391c8
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0x14]
lea eax, [esp + 0xe4]
push esi
push eax
call fcn.00521b90
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x51ffc8
mov eax, dword [esi + 0x1a8]
push edi
push ebx
push eax
call dword [eax + 0x1c]
add esp, 0xc
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x520584
mov dword [0x6bf4f0], 0
jmp 0x520584
mov eax, dword [esi + 0x1a8]
push eax
call dword [eax + 0x10]
mov edx, dword [esi]
mov ebx, eax
push 0x639068
push 0x24
mov eax, dword [edx + 4]
mov dword [esp + 0x34], ebx
push eax
call dword [eax + 0x10]
mov ecx, dword [esi]
add esp, 0x10
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 8]
cmp byte [ecx], 1
je 0x520584
cmp byte [ecx + 0x18], 1
je 0x51f9a6
mov edx, dword [ecx + 0x20]
test edx, edx
jne 0x52004f
mov ecx, dword [esi + 0x1a8]
push eax
push ecx
call dword [ecx + 0x40]
mov ecx, dword [esi + 0x1a8]
push ebx
push eax
push ecx
call dword [ecx + 0x34]
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x28], ebx
mov edx, dword [esi]
push 0
push 0x639088
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
push eax
call dword [eax + 0x14]
lea edx, [esp + 0xfc]
push esi
push edx
call fcn.00529200
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x5200c6
mov eax, dword [esi + 0x1a8]
push edi
push ebx
push eax
call dword [eax + 0x1c]
add esp, 0xc
mov edx, dword [esi]
push 1
mov edi, 2
mov eax, dword [edx + 8]
mov eax, dword [eax + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 0x26
jne 0x5200e6
mov edi, 1
dec edi
jne 0x520117
mov ecx, dword [esi]
push 0x6390a8
push 0x26
mov eax, dword [ecx + 4]
push eax
call dword [eax + 0x10]
mov edx, dword [esi]
add esp, 0xc
mov eax, dword [edx + 4]
mov eax, dword [eax + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [esi]
push 0
push 0x6390c8
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
push eax
call dword [eax + 0x14]
lea edx, [esp + 0x114]
push esi
push edx
call fcn.00514910
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov edx, dword [esi]
push 1
mov edi, 2
mov eax, dword [edx + 8]
mov eax, dword [eax + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 8
jl 0x52018c
cmp eax, 0xb
jle 0x520248
cmp eax, 0x1e
je 0x520248
cmp eax, 0x30
je 0x520248
cmp eax, 0x78
je 0x520248
cmp eax, 0x8f
jl 0x5201b9
cmp eax, 0x90
jle 0x520248
cmp eax, 0x65
jne 0x5201cd
mov eax, dword [0x6bf4f8]
test eax, eax
jle 0x52024d
jmp 0x520248
cmp eax, 4
jl 0x5201d7
cmp eax, 7
jle 0x520248
cmp eax, 0xc
je 0x520248
cmp eax, 0xe
je 0x520248
cmp eax, 0x10
jl 0x5201eb
cmp eax, 0x11
jle 0x520248
cmp eax, 0x16
jl 0x5201f5
cmp eax, 0x19
jle 0x520248
cmp eax, 0x1b
je 0x520248
cmp eax, 0x24
jl 0x520204
cmp eax, 0x25
jle 0x520248
cmp eax, 0x2a
je 0x520248
cmp eax, 0x2c
je 0x520248
cmp eax, 0x2f
je 0x520248
cmp eax, 0x32
je 0x520248
cmp eax, 0x34
je 0x520248
cmp eax, 0x43
jl 0x520227
cmp eax, 0x44
jle 0x520248
cmp eax, 0x8b
jl 0x520235
cmp eax, 0x8c
jle 0x520248
cmp eax, 0x69
je 0x52023f
cmp eax, 0x77
jne 0x52024d
mov eax, dword [0x6bf4f0]
test eax, eax
jne 0x52024d
mov edi, 1
mov eax, edi
dec eax
jne 0x5202d6
mov ecx, dword [esi]
push 0
push 0x6390e8
mov edx, dword [ecx + 4]
mov eax, dword [edx + 8]
mov eax, dword [eax + 0xc]
push eax
call dword [eax + 0x14]
lea ecx, [esp + 0x12c]
push esi
push ecx
call fcn.00512c90
mov edx, dword [eax]
mov dword [esp + 0x30], edx
mov edx, dword [esi]
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
mov edi, dword [eax + 8]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
push eax
call dword [eax + 0xc]
mov edx, dword [esi]
add esp, 0x18
mov eax, dword [edx + 4]
mov eax, dword [eax + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x520168
mov eax, dword [esi + 0x1a8]
push edi
push ebx
push eax
call dword [eax + 0x1c]
add esp, 0xc
jmp 0x520168
mov ecx, dword [esi]
push 1
mov edi, 2
mov edx, dword [ecx + 8]
mov eax, dword [edx + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 0x27
jne 0x5202f6
mov edi, 1
dec edi
jne 0x52037d
mov eax, dword [esi]
push 0
push 0x639100
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0x14]
lea eax, [esp + 0x144]
push esi
push eax
call fcn.00521460
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x5202d6
mov eax, dword [esi + 0x1a8]
push edi
push ebx
push eax
call dword [eax + 0x1c]
add esp, 0xc
jmp 0x5202d6
mov edx, dword [esi]
push 1
mov edi, 2
mov eax, dword [edx + 8]
mov eax, dword [eax + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 0x28
jne 0x52039d
mov edi, 1
dec edi
jne 0x520417
mov ecx, dword [esi]
push 0
push 0x639118
mov edx, dword [ecx + 4]
mov eax, dword [edx + 8]
mov eax, dword [eax + 0xc]
push eax
call dword [eax + 0x14]
lea ecx, [esp + 0x15c]
push esi
push ecx
call fcn.00521b90
mov edx, dword [eax]
mov dword [esp + 0x30], edx
mov edx, dword [esi]
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
mov edi, dword [eax + 8]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
push eax
call dword [eax + 0xc]
mov edx, dword [esi]
add esp, 0x18
mov eax, dword [edx + 4]
mov eax, dword [eax + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
je 0x51f9a6
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x520417
mov eax, dword [esi + 0x1a8]
push edi
push ebx
push eax
call dword [eax + 0x1c]
add esp, 0xc
mov edx, dword [esi]
push 1
mov eax, dword [edx + 8]
mov eax, dword [eax + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 0x29
je 0x520495
cmp eax, 0x41
je 0x52048e
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x20]
test edx, edx
jle 0x52044a
mov byte [ecx + 0x18], 1
jmp 0x51f9a6
push eax
call dword [eax + 0x88]
mov edx, dword [esi]
add esp, 4
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
mov dword [edx], 3
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 4]
mov dword [eax + 8], 0x641dc4
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 4]
mov dword [ecx + 0x34], 0x42
jmp 0x51f8f6
mov eax, 2
jmp 0x52049a
mov eax, 1
dec eax
je 0x520500
dec eax
jne 0x520584
mov eax, dword [esi]
push 0x639138
push 0x41
mov eax, dword [eax + 4]
push eax
call dword [eax + 0x10]
mov ecx, dword [esi]
add esp, 0xc
mov eax, dword [ecx + 4]
mov ecx, dword [eax + 8]
cmp byte [ecx], 1
je 0x520584
cmp byte [ecx + 0x18], 1
je 0x51f9a6
push 0x639148
push 0x24
push eax
call dword [eax + 0x10]
mov edx, dword [esi]
add esp, 0xc
mov eax, dword [edx + 4]
mov eax, dword [eax + 8]
cmp byte [eax], 1
je 0x520584
cmp byte [eax + 0x18], 1
jne 0x520584
jmp 0x51f9a6
mov edx, dword [esi]
push 0x639128
push 0x29
mov eax, dword [edx + 4]
push eax
call dword [eax + 0x10]
mov eax, dword [esi]
add esp, 0xc
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
jmp 0x5204e8
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x20], ebx
jle 0x520533
mov byte [ecx + 0x18], 1
jmp 0x51f9a6
push eax
call dword [eax + 0x88]
mov edx, dword [esi]
add esp, 4
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
mov dword [edx], 3
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 4]
mov dword [eax + 8], 0x641dc4
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 4]
mov dword [ecx + 0x34], 0x4a
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
mov dword [edx + 0x38], 1
mov eax, dword [esi]
push 0xffffffffffffffff
mov eax, dword [eax + 8]
push eax
call dword [eax + 0x14]
mov edi, eax
mov eax, dword [esi]
add esp, 8
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [edx + 0x20]
test ecx, ecx
jne 0x520681
mov eax, dword [eax + 8]
push 0xffffffffffffffff
push eax
call dword [eax + 0x14]
mov ecx, dword [esp + 0x30]
mov edi, eax
mov eax, dword [esi + 0x1a8]
push ecx
push eax
call dword [eax + 0x38]
mov ebx, dword [esp + 0x20]
mov ebp, eax
mov eax, dword [esi + 0x1a8]
push edi
push ebx
push ebp
push eax
call dword [eax + 0x90]
mov eax, dword [esp + 0x78]
add esp, 0x20
test eax, eax
je 0x5205e9
push eax
call dword [eax + 0x50]
add esp, 4
mov eax, dword [esp + 0x44]
test eax, eax
je 0x5205f8
push eax
call dword [eax + 0x50]
add esp, 4
mov eax, dword [esp + 0x60]
test eax, eax
je 0x520607
push eax
call dword [eax + 0x50]
add esp, 4
mov eax, dword [esp + 0x38]
test eax, eax
je 0x520616
push eax
call dword [eax + 0x50]
add esp, 4
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x520625
push eax
call dword [eax + 0x50]
add esp, 4
mov eax, dword [esp + 0x50]
test eax, eax
je 0x520634
push eax
call dword [eax + 0x50]
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x520643
push eax
call dword [eax + 0x50]
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
je 0x520652
push eax
call dword [eax + 0x50]
add esp, 4
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x520661
push eax
call dword [eax + 0x50]
add esp, 4
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x520670
push eax
call dword [eax + 0x50]
add esp, 4
mov eax, dword [esp + 0x54]
test eax, eax
je 0x520689
push eax
call dword [eax + 0x50]
add esp, 4
jmp 0x520689
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
cmp byte [ecx], 1
jne 0x5206db
push eax
call dword [eax + 0x24]
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call dword [eax + 0x30]
mov eax, dword [esi]
mov ebp, dword [esi + 0x1a8]
add esp, 8
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [edx + 4]
push eax
push 0xffffffffffffffff
push ecx
call dword [ecx + 0x14]
mov ecx, dword [esi]
add esp, 8
mov edx, dword [ecx + 8]
push eax
mov eax, dword [esi + 0x1a8]
push ebx
push edx
push eax
call dword [ebp + 0x2c]
add esp, 0x14
mov ebp, eax
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x20]
test ecx, ecx
jle 0x5206f8
mov ecx, dword [esp + 0x68]
push ecx
push 0x2b
push eax
call dword [eax + 0x78]
add esp, 0xc
mov eax, dword [esp + 0x160]
mov edx, eax
mov dword [edx], ebx
mov dword [edx + 4], edi
pop edi
pop esi
mov dword [edx + 8], ebp
pop ebp
pop ebx
add esp, 0x14c
ret