Function at 0x54ec30
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x3f
push 0
push 0
dec ecx
jne 0x54ec38
push ebx
mov dword [ebp - 0x68], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x550988
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x567c40]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, dword [0x567c44]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, dword [0x567c38]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x54ed49
mov eax, dword [0x567c38]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x54ed49
inc eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 8], 0
mov eax, dword [0x5650b0]
mov eax, dword [eax]
call fcn.0047aba8
cmp byte [0x567c8c], 0
je 0x550930
lea ecx, [ebp - 0x90]
mov edx, dword [ebp - 8]
mov eax, dword [0x567c38]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x90]
call fcn.00409db4
test al, al
je 0x54ecf8
lea ecx, [ebp - 0x94]
mov edx, dword [ebp - 8]
mov eax, dword [0x567c38]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x94]
mov eax, dword [0x567c40]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x54ed3d
lea ecx, [ebp - 0x98]
mov edx, dword [ebp - 8]
mov eax, dword [0x567c38]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x98]
call fcn.004f35ac
test al, al
je 0x54ed3d
lea ecx, [ebp - 0x9c]
mov edx, dword [ebp - 8]
mov eax, dword [0x567c38]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x9c]
mov eax, dword [0x567c40]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc dword [ebp - 8]
dec dword [ebp - 0x64]
jne 0x54ec98
mov eax, dword [0x567c3c]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x54eed7
mov eax, dword [0x567c3c]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x54eed7
inc eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 8], 0
mov eax, dword [0x5650b0]
mov eax, dword [eax]
call fcn.0047aba8
cmp byte [0x567c8c], 0
je 0x550930
lea ecx, [ebp - 0x10]
mov edx, dword [ebp - 8]
mov eax, dword [0x567c3c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x10]
mov eax, 0x55099c
call fcn.004049a0
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0xc]
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.004048bc
lea eax, [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov edx, 1
call fcn.004048fc
mov edx, dword [ebp - 0x10]
mov eax, 0x55099c
call fcn.004049a0
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0xc]
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.004048bc
lea eax, [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov edx, 1
call fcn.004048fc
lea eax, [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
call fcn.00404424
mov dword [ebp - 0x20], 0x80000000
mov eax, dword [ebp - 0x14]
mov edx, 0x5509a8
call fcn.004047a8
jne 0x54ee34
mov dword [ebp - 0x20], 0x80000002
mov eax, dword [ebp - 0x14]
mov edx, 0x5509c4
call fcn.004047a8
jne 0x54ee4a
mov dword [ebp - 0x20], 0x80000001
mov eax, dword [ebp - 0x1c]
call fcn.0040465c
test eax, eax
jle 0x54ee93
mov al, byte [0x567e0a]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
call fcn.005271ac
test al, al
je 0x54eecb
lea ecx, [ebp - 0xa0]
mov edx, dword [ebp - 8]
mov eax, dword [0x567c3c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0xa0]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x54eecb
mov cl, byte [0x567e0a]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
call fcn.00527098
test al, al
je 0x54eecb
lea ecx, [ebp - 0xa4]
mov edx, dword [ebp - 8]
mov eax, dword [0x567c3c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0xa4]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc dword [ebp - 8]
dec dword [ebp - 0x64]
jne 0x54ed79
mov eax, dword [0x5650b0]
mov eax, dword [eax]
call fcn.0047aba8
cmp byte [0x567c8c], 0
je 0x550930
mov dl, 1
mov eax, dword [0x4315b8]
call fcn.0043175c
mov dword [ebp - 0x24], eax
mov dl, 1
mov eax, dword [0x41b600]
call fcn.0040350c
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov byte [eax + 0x1d], 0
mov eax, dword [0x567b50]
call fcn.0040465c
test eax, eax
jle 0x54ef47
lea eax, [ebp - 0xa8]
mov ecx, dword [0x567b50]
mov edx, 0x5509e0
call fcn.004046a8
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x567b3c]
call fcn.0040465c
test eax, eax
jle 0x54ef84
mov al, byte [0x5509e8]
push eax
lea eax, [ebp - 0xac]
push eax
mov ecx, 0x5509f4
mov edx, 0x550a00
mov eax, dword [0x567b3c]
call fcn.00410510
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x567b48]
call fcn.0040465c
test eax, eax
jle 0x54efa0
mov edx, dword [0x567b48]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x54f232
push 3
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550a0c
mov eax, 0x80000001
call fcn.00526190
push 5
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550a20
mov eax, 0x80000001
call fcn.00526190
push 5
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550a20
mov eax, 0x80000002
call fcn.00526190
push 5
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550a3c
mov eax, 0x80000002
call fcn.00526190
push 5
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550a64
mov eax, 0x80000000
call fcn.00526190
push 4
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550a9c
mov eax, 0x80000002
call fcn.00526190
push 4
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550ad8
mov eax, 0x80000002
call fcn.00526190
push 4
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550b14
mov eax, 0x80000002
call fcn.00526190
push 4
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550b5c
mov eax, 0x80000002
call fcn.00526190
push 4
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550ba4
mov eax, 0x80000002
call fcn.00526190
push 0
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550bec
mov eax, 0x80000002
call fcn.00526190
push 0
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550c24
mov eax, 0x80000002
call fcn.00526190
push 5
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
xor edx, edx
mov eax, 0x80000000
call fcn.00526190
push 0
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550c68
mov eax, 0x80000002
call fcn.00526190
push 0
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x4c]
mov edx, 0x550cc8
mov eax, 0x80000001
call fcn.00526190
mov eax, dword [ebp - 0x4c]
call fcn.0040353c
mov eax, dword [0x5650b0]
mov eax, dword [eax]
call fcn.0047aba8
cmp byte [0x567c8c], 0
je 0x550930
mov dl, 1
mov eax, dword [0x41b600]
call fcn.0040350c
mov dword [ebp - 0x50], eax
mov edx, 0x550d2c
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550d3c
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550d4c
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550d64
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550d78
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550d8c
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550d9c
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550db0
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550dc4
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550a0c
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550dd8
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550dec
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550dfc
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550e14
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550e24
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550e3c
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550e4c
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550e60
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550e74
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550e88
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550e9c
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550e14
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550e88
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550ecc
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550dc4
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550ee0
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550ef4
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550f0c
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550f24
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550f30
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550f3c
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550f4c
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x550f6c
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov dl, 1
mov eax, dword [0x41b600]
call fcn.0040350c
mov dword [ebp - 0x5c], eax
mov dl, 1
mov eax, dword [0x41b600]
call fcn.0040350c
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0x24]
cmp dword [eax + 8], 0
jle 0x55045f
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x55045f
inc eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 8], 0
mov eax, dword [0x5650b0]
mov eax, dword [eax]
call fcn.0047aba8
cmp byte [0x567c8c], 0
je 0x550930
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
call fcn.004317f0
mov edx, dword [0x5252f4]
call fcn.004036ec
mov dword [ebp - 0x28], eax
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
call fcn.00525a88
mov eax, dword [ebp - 0x2c]
call fcn.0040465c
test eax, eax
je 0x550453
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
call fcn.00408f24
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
call fcn.005259c0
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x30]
call fcn.00408f24
mov eax, dword [ebp - 0x30]
call fcn.0040465c
test eax, eax
jle 0x54f4fd
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x30]
call fcn.00408f24
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x54]
inc eax
je 0x54f501
xor eax, eax
jmp 0x54f503
mov al, 1
mov byte [ebp - 0x55], al
cmp byte [ebp - 0x55], 0
je 0x54f52f
lea edx, [ebp - 0xb4]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
call fcn.00408f24
mov eax, dword [ebp - 0xb4]
mov edx, 0x550f80
call fcn.004047a8
jne 0x54f533
xor eax, eax
jmp 0x54f535
mov al, 1
mov byte [ebp - 0x55], al
cmp byte [ebp - 0x55], 0
jne 0x54f58f
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
call fcn.0040465c
test eax, eax
jle 0x550453
push dword [ebp - 0x2c]
push 0x55099c
mov eax, dword [ebp - 0x28]
push dword [eax + 8]
push 0x55099c
mov eax, dword [ebp - 0x28]
push dword [eax + 0xc]
lea eax, [ebp - 0xb8]
mov edx, 5
call fcn.0040471c
mov edx, dword [ebp - 0xb8]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x550453
lea eax, [ebp - 0x3c]
call fcn.0040438c
lea eax, [ebp - 0x44]
call fcn.0040438c
mov byte [ebp - 0x45], 0
mov eax, dword [ebp - 0x34]
mov edx, 0x550f98
call fcn.004047a8
jne 0x54f5c7
lea ecx, [ebp - 0x3c]
xor edx, edx
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
call fcn.005257e0
jmp 0x54f651
mov eax, dword [ebp - 0x34]
mov edx, 0x550fac
call fcn.004047a8
jne 0x54f60d
mov edx, dword [ebp - 0x40]
mov eax, 0x550fbc
call fcn.004049a0
test eax, eax
jle 0x54f60d
lea eax, [ebp - 0x3c]
push eax
mov edx, dword [ebp - 0x40]
mov eax, 0x550fbc
call fcn.004049a0
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
call fcn.004048bc
jmp 0x54f651
mov eax, dword [ebp - 0x34]
mov edx, 0x550fac
call fcn.004047a8
jne 0x54f62e
lea ecx, [ebp - 0x3c]
xor edx, edx
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
call fcn.005257e0
jmp 0x54f651
mov eax, dword [ebp - 0x34]
mov edx, 0x550fd8
call fcn.004047a8
jne 0x54f651
lea ecx, [ebp - 0x3c]
xor edx, edx
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
call fcn.005257e0
mov byte [ebp - 0x45], 1
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
call fcn.005259c0
mov eax, dword [ebp - 0x3c]
call fcn.0040465c
test eax, eax
jle 0x54f687
lea edx, [ebp - 0xbc]
mov eax, dword [ebp - 0x38]
call fcn.00408f24
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x54]
inc eax
je 0x54f68b
xor eax, eax
jmp 0x54f68d
mov al, 1
mov byte [ebp - 0x46], al
lea eax, [ebp - 0x60]
call fcn.0040438c
mov eax, dword [ebp - 0x3c]
call fcn.0040465c
test eax, eax
setg al
and al, byte [ebp - 0x46]
je 0x54f7f9
cmp byte [ebp - 0x45], 0
je 0x54f6be
mov eax, dword [ebp - 0x38]
call fcn.00525374
test al, al
lea ecx, [ebp - 0xc8]
xor edx, edx
mov eax, dword [ebp - 0x3c]
call fcn.005257e0
mov eax, dword [ebp - 0xc8]
lea edx, [ebp - 0xc4]
call fcn.005259c0
mov eax, dword [ebp - 0xc4]
lea edx, [ebp - 0xc0]
call fcn.00408f24
mov eax, dword [ebp - 0xc0]
mov edx, 0x550dc4
call fcn.004047a8
jne 0x54f70d
lea eax, [ebp - 0x60]
mov edx, dword [ebp - 0x38]
call fcn.00404424
mov eax, dword [ebp - 0x3c]
call fcn.0040465c
mov edx, dword [ebp - 0x3c]
cmp byte [edx + eax - 1], 0x5c
jne 0x54f736
mov eax, dword [ebp - 0x3c]
call fcn.0040465c
mov edx, eax
lea eax, [ebp - 0x3c]
mov ecx, 1
call fcn.004048fc
mov eax, dword [ebp - 0x3c]
cmp byte [eax], 0x5c
jne 0x54f750
lea eax, [ebp - 0x3c]
mov ecx, 1
mov edx, 1
call fcn.004048fc
mov eax, dword [ebp - 0x3c]
call fcn.0040465c
test eax, eax
setg al
and al, byte [ebp - 0x46]
je 0x54f8e8
push dword [ebp - 0x2c]
push 0x55099c
push dword [ebp - 0x3c]
push 0x55099c
lea eax, [ebp - 0xcc]
mov edx, 4
call fcn.0040471c
mov edx, dword [ebp - 0xcc]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x550453
push dword [ebp - 0x2c]
push 0x55099c
push dword [ebp - 0x3c]
push 0x55099c
lea eax, [ebp - 0xd0]
mov edx, 4
call fcn.0040471c
mov edx, dword [ebp - 0xd0]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov cl, byte [0x567e0a]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
call fcn.00525b34
jmp 0x54f8e8
cmp byte [ebp - 0x55], 0
je 0x54f8e8
lea ecx, [ebp - 0xdc]
xor edx, edx
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
call fcn.005257e0
mov eax, dword [ebp - 0xdc]
lea edx, [ebp - 0xd8]
call fcn.005259c0
mov eax, dword [ebp - 0xd8]
lea edx, [ebp - 0xd4]
call fcn.00408f24
mov eax, dword [ebp - 0xd4]
mov edx, 0x550dc4
call fcn.004047a8
jne 0x54f855
lea eax, [ebp - 0x60]
mov edx, dword [ebp - 0x30]
call fcn.00404424
push dword [ebp - 0x2c]
push 0x55099c
mov eax, dword [ebp - 0x28]
push dword [eax + 8]
push 0x55099c
lea eax, [ebp - 0xe0]
mov edx, 4
call fcn.0040471c
mov edx, dword [ebp - 0xe0]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x54f8e8
push dword [ebp - 0x2c]
push 0x55099c
mov eax, dword [ebp - 0x28]
push dword [eax + 8]
push 0x55099c
lea eax, [ebp - 0xe4]
mov edx, 4
call fcn.0040471c
mov edx, dword [ebp - 0xe4]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov cl, byte [0x567e0a]
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
call fcn.00525b34
mov eax, dword [ebp - 0x60]
call fcn.0040465c
test eax, eax
jle 0x54fdb4
push 0x550ff0
push dword [ebp - 0x60]
push 0x55099c
lea eax, [ebp - 0xe8]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0xe8]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x54f9c2
lea eax, [ebp - 0xec]
mov ecx, dword [ebp - 0x60]
mov edx, 0x551020
call fcn.004046a8
mov edx, dword [ebp - 0xec]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00527098
test al, al
je 0x54f9c2
push 0x550ff0
push dword [ebp - 0x60]
push 0x55099c
lea eax, [ebp - 0xf0]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0xf0]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0xf4]
mov ecx, dword [ebp - 0x60]
mov edx, 0x551020
call fcn.004046a8
mov edx, dword [ebp - 0xf4]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00525b34
push 0x55103c
push dword [ebp - 0x60]
push 0x55099c
lea eax, [ebp - 0xf8]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0xf8]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x54fa8c
lea eax, [ebp - 0xfc]
mov ecx, dword [ebp - 0x60]
mov edx, 0x551078
call fcn.004046a8
mov edx, dword [ebp - 0xfc]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00527098
test al, al
je 0x54fa8c
push 0x55103c
push dword [ebp - 0x60]
push 0x55099c
lea eax, [ebp - 0x100]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x100]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x104]
mov ecx, dword [ebp - 0x60]
mov edx, 0x551078
call fcn.004046a8
mov edx, dword [ebp - 0x104]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00525b34
push 0x5510a0
push dword [ebp - 0x60]
push 0x55099c
lea eax, [ebp - 0x108]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x108]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x54fb56
lea eax, [ebp - 0x10c]
mov ecx, dword [ebp - 0x60]
mov edx, 0x5510e0
call fcn.004046a8
mov edx, dword [ebp - 0x10c]
mov cl, byte [0x567e0a]
mov eax, 0x80000002
call fcn.00527098
test al, al
je 0x54fb56
push 0x5510a0
push dword [ebp - 0x60]
push 0x55099c
lea eax, [ebp - 0x110]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x110]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x114]
mov ecx, dword [ebp - 0x60]
mov edx, 0x5510e0
call fcn.004046a8
mov edx, dword [ebp - 0x114]
mov cl, byte [0x567e0a]
mov eax, 0x80000002
call fcn.00525b34
push 0x551110
push dword [ebp - 0x60]
push 0x55099c
lea eax, [ebp - 0x118]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x118]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x54fc20
lea eax, [ebp - 0x11c]
mov ecx, dword [ebp - 0x60]
mov edx, 0x55115c
call fcn.004046a8
mov edx, dword [ebp - 0x11c]
mov cl, byte [0x567e0a]
mov eax, 0x80000002
call fcn.00527098
test al, al
je 0x54fc20
push 0x5510a0
push dword [ebp - 0x60]
push 0x55099c
lea eax, [ebp - 0x120]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x120]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x124]
mov ecx, dword [ebp - 0x60]
mov edx, 0x5510e0
call fcn.004046a8
mov edx, dword [ebp - 0x124]
mov cl, byte [0x567e0a]
mov eax, 0x80000002
call fcn.00525b34
push 0x551198
push dword [ebp - 0x60]
push 0x55099c
lea eax, [ebp - 0x128]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x128]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x54fcea
lea eax, [ebp - 0x12c]
mov ecx, dword [ebp - 0x60]
mov edx, 0x5511c8
call fcn.004046a8
mov edx, dword [ebp - 0x12c]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00527098
test al, al
je 0x54fcea
push 0x551198
push dword [ebp - 0x60]
push 0x55099c
lea eax, [ebp - 0x130]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x130]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x134]
mov ecx, dword [ebp - 0x60]
mov edx, 0x5511c8
call fcn.004046a8
mov edx, dword [ebp - 0x134]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00525b34
push 0x5511e4
push dword [ebp - 0x60]
push 0x55099c
lea eax, [ebp - 0x138]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x138]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x54fdb4
lea eax, [ebp - 0x13c]
mov ecx, dword [ebp - 0x60]
mov edx, 0x551220
call fcn.004046a8
mov edx, dword [ebp - 0x13c]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00527098
test al, al
je 0x54fdb4
push 0x5511e4
push dword [ebp - 0x60]
push 0x55099c
lea eax, [ebp - 0x140]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x140]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x144]
mov ecx, dword [ebp - 0x60]
mov edx, 0x551220
call fcn.004046a8
mov edx, dword [ebp - 0x144]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00525b34
mov eax, dword [ebp - 0x44]
call fcn.0040465c
test eax, eax
jle 0x550453
lea edx, [ebp - 0x148]
mov eax, dword [ebp - 0x44]
call fcn.00408f24
mov edx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x550453
mov eax, dword [ebp - 0x44]
call fcn.00525374
test al, al
je 0x550453
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x14c]
mov ecx, dword [ebp - 0x44]
mov edx, 0x551248
call fcn.004046a8
mov edx, dword [ebp - 0x14c]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00527098
test al, al
je 0x54fecd
push 0x551258
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x150]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x150]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x54fecd
push 0x551258
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x154]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x154]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x158]
mov ecx, dword [ebp - 0x44]
mov edx, 0x551248
call fcn.004046a8
mov edx, dword [ebp - 0x158]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00525b34
lea eax, [ebp - 0x15c]
mov ecx, dword [ebp - 0x44]
mov edx, 0x55127c
call fcn.004046a8
mov edx, dword [ebp - 0x15c]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00527098
test al, al
je 0x54ff97
push 0x551298
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x160]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x160]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x54ff97
push 0x551298
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x164]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x164]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x168]
mov ecx, dword [ebp - 0x44]
mov edx, 0x55127c
call fcn.004046a8
mov edx, dword [ebp - 0x168]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00525b34
lea eax, [ebp - 0x16c]
mov ecx, dword [ebp - 0x44]
mov edx, 0x5512c8
call fcn.004046a8
mov edx, dword [ebp - 0x16c]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00527098
test al, al
je 0x550061
push 0x5512d8
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x170]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x170]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x550061
push 0x5512d8
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x174]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x174]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x178]
mov ecx, dword [ebp - 0x44]
mov edx, 0x5512c8
call fcn.004046a8
mov edx, dword [ebp - 0x178]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00525b34
lea eax, [ebp - 0x17c]
mov ecx, dword [ebp - 0x44]
mov edx, 0x5512fc
call fcn.004046a8
mov edx, dword [ebp - 0x17c]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00527098
test al, al
je 0x55012b
push 0x551318
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x180]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x180]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x55012b
push 0x551318
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x184]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x184]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x188]
mov ecx, dword [ebp - 0x44]
mov edx, 0x5512fc
call fcn.004046a8
mov edx, dword [ebp - 0x188]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00525b34
lea eax, [ebp - 0x18c]
mov ecx, dword [ebp - 0x44]
mov edx, 0x551348
call fcn.004046a8
mov edx, dword [ebp - 0x18c]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00527098
test al, al
je 0x5501f5
push 0x55135c
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x190]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x190]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x5501f5
push 0x55135c
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x194]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x194]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x198]
mov ecx, dword [ebp - 0x44]
mov edx, 0x551348
call fcn.004046a8
mov edx, dword [ebp - 0x198]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00525b34
lea eax, [ebp - 0x19c]
mov ecx, dword [ebp - 0x44]
mov edx, 0x551380
call fcn.004046a8
mov edx, dword [ebp - 0x19c]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00527098
test al, al
je 0x5502bf
push 0x5513a0
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x1a0]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x1a0]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x5502bf
push 0x5513a0
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x1a4]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x1a4]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x1a8]
mov ecx, dword [ebp - 0x44]
mov edx, 0x551380
call fcn.004046a8
mov edx, dword [ebp - 0x1a8]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00525b34
lea eax, [ebp - 0x1ac]
mov ecx, dword [ebp - 0x44]
mov edx, 0x5513d0
call fcn.004046a8
mov edx, dword [ebp - 0x1ac]
mov cl, byte [0x567e0a]
mov eax, 0x80000002
call fcn.00527098
test al, al
je 0x550389
push 0x5513f4
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x1b0]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x1b0]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x550389
push 0x5513f4
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x1b4]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x1b4]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x1b8]
mov ecx, dword [ebp - 0x44]
mov edx, 0x5513d0
call fcn.004046a8
mov edx, dword [ebp - 0x1b8]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00525b34
lea eax, [ebp - 0x1bc]
mov ecx, dword [ebp - 0x44]
mov edx, 0x55142c
call fcn.004046a8
mov edx, dword [ebp - 0x1bc]
mov cl, byte [0x567e0a]
mov eax, 0x80000002
call fcn.00527098
test al, al
je 0x550453
push 0x55145c
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x1c0]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x1c0]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x550453
push 0x55145c
push dword [ebp - 0x44]
push 0x55099c
lea eax, [ebp - 0x1c4]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x1c4]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x1c8]
mov ecx, dword [ebp - 0x44]
mov edx, 0x55142c
call fcn.004046a8
mov edx, dword [ebp - 0x1c8]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00525b34
inc dword [ebp - 8]
dec dword [ebp - 0x64]
jne 0x54f45b
mov eax, dword [ebp - 0x54]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x550930
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 8]
push 2
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x54]
mov edx, 0x550a20
mov eax, 0x80000002
call fcn.00526190
push 2
mov al, byte [0x567e0a]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov ecx, dword [ebp - 0x54]
mov edx, 0x550a3c
mov eax, 0x80000002
call fcn.00526190
mov eax, dword [ebp - 0x24]
cmp dword [eax + 8], 0
jle 0x550930
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x550930
inc eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 8], 0
mov eax, dword [0x5650b0]
mov eax, dword [eax]
call fcn.0047aba8
cmp byte [0x567c8c], 0
je 0x550930
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
call fcn.004317f0
mov edx, dword [0x5252f4]
call fcn.004036ec
mov dword [ebp - 0x28], eax
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
call fcn.00525a88
mov eax, dword [ebp - 0x2c]
call fcn.0040465c
test eax, eax
je 0x550924
mov byte [ebp - 0x46], 1
mov eax, dword [ebp - 0x3c]
call fcn.0040465c
test eax, eax
jne 0x550564
lea ecx, [ebp - 0x3c]
xor edx, edx
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
call fcn.005257e0
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
call fcn.005259c0
lea edx, [ebp - 0x1cc]
mov eax, dword [ebp - 0x38]
call fcn.00408f24
mov edx, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x54]
inc eax
jle 0x550596
lea eax, [ebp - 0x3c]
call fcn.0040438c
mov byte [ebp - 0x55], 1
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
call fcn.005259c0
lea edx, [ebp - 0x1d0]
mov eax, dword [ebp - 0x30]
call fcn.00408f24
mov edx, dword [ebp - 0x1d0]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x54]
inc eax
jle 0x5505e2
mov eax, dword [ebp - 0x30]
mov edx, 0x550d2c
call fcn.004047a8
je 0x5505e2
lea eax, [ebp - 0x3c]
call fcn.0040438c
mov byte [ebp - 0x55], 0
mov eax, dword [ebp - 0x3c]
call fcn.0040465c
test eax, eax
setg al
and al, byte [ebp - 0x46]
je 0x5506e4
mov eax, dword [ebp - 0x3c]
call fcn.0040465c
mov edx, dword [ebp - 0x3c]
cmp byte [edx + eax - 1], 0x5c
jne 0x550621
mov eax, dword [ebp - 0x3c]
call fcn.0040465c
mov edx, eax
lea eax, [ebp - 0x3c]
mov ecx, 1
call fcn.004048fc
mov eax, dword [ebp - 0x3c]
cmp byte [eax], 0x5c
jne 0x55063b
lea eax, [ebp - 0x3c]
mov ecx, 1
mov edx, 1
call fcn.004048fc
mov eax, dword [ebp - 0x3c]
call fcn.0040465c
test eax, eax
setg al
and al, byte [ebp - 0x46]
je 0x550781
push dword [ebp - 0x2c]
push 0x55099c
push dword [ebp - 0x3c]
push 0x55099c
lea eax, [ebp - 0x1d4]
mov edx, 4
call fcn.0040471c
mov edx, dword [ebp - 0x1d4]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x550924
push dword [ebp - 0x2c]
push 0x55099c
push dword [ebp - 0x3c]
push 0x55099c
lea eax, [ebp - 0x1d8]
mov edx, 4
call fcn.0040471c
mov edx, dword [ebp - 0x1d8]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov cl, byte [0x567e0a]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
call fcn.00525b34
jmp 0x550781
cmp byte [ebp - 0x55], 0
je 0x550781
push dword [ebp - 0x2c]
push 0x55099c
mov eax, dword [ebp - 0x28]
push dword [eax + 8]
push 0x55099c
lea eax, [ebp - 0x1dc]
mov edx, 4
call fcn.0040471c
mov edx, dword [ebp - 0x1dc]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x550781
push dword [ebp - 0x2c]
push 0x55099c
mov eax, dword [ebp - 0x28]
push dword [eax + 8]
push 0x55099c
lea eax, [ebp - 0x1e0]
mov edx, 4
call fcn.0040471c
mov edx, dword [ebp - 0x1e0]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov cl, byte [0x567e0a]
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
call fcn.00525b34
mov eax, dword [ebp - 0x3c]
call fcn.0040465c
test eax, eax
setg al
and al, byte [ebp - 0x46]
je 0x55079e
lea eax, [ebp - 0x30]
mov edx, dword [ebp - 0x38]
call fcn.00404424
cmp byte [ebp - 0x55], 0
jne 0x5507ac
lea eax, [ebp - 0x30]
call fcn.0040438c
mov eax, dword [ebp - 0x30]
call fcn.0040465c
test eax, eax
jle 0x550924
mov cl, byte [0x567e0a]
mov edx, dword [ebp - 0x30]
mov eax, 0x80000000
call fcn.00527098
test al, al
je 0x55085a
push 0x5514a0
push dword [ebp - 0x30]
push 0x55099c
lea eax, [ebp - 0x1e4]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x1e4]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x55085a
push 0x5514a0
push dword [ebp - 0x30]
push 0x55099c
lea eax, [ebp - 0x1e8]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x1e8]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
mov cl, byte [0x567e0a]
mov edx, dword [ebp - 0x30]
mov eax, 0x80000000
call fcn.00525b34
lea eax, [ebp - 0x1ec]
mov ecx, dword [ebp - 0x30]
mov edx, 0x5514bc
call fcn.004046a8
mov edx, dword [ebp - 0x1ec]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00527098
test al, al
je 0x550924
push 0x5514d4
push dword [ebp - 0x30]
push 0x55099c
lea eax, [ebp - 0x1f0]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x1f0]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jge 0x550924
push 0x5514d4
push dword [ebp - 0x30]
push 0x55099c
lea eax, [ebp - 0x1f4]
mov edx, 3
call fcn.0040471c
mov edx, dword [ebp - 0x1f4]
mov eax, dword [0x567c44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x567c44
mov eax, dword [0x5650b0]
mov eax, dword [eax]
push eax
push 0x567c8c
lea eax, [ebp - 0x1f8]
mov ecx, dword [ebp - 0x30]
mov edx, 0x5514bc
call fcn.004046a8
mov edx, dword [ebp - 0x1f8]
mov cl, byte [0x567e0a]
mov eax, 0x80000000
call fcn.00525b34
inc dword [ebp - 8]
dec dword [ebp - 0x64]
jne 0x5504f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55098f
lea eax, [ebp - 0x1f8]
mov edx, 0x5b
call fcn.004043b0
lea eax, [ebp - 0x3c]
mov edx, 5
call fcn.004043b0
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.004043b0
lea eax, [ebp - 0x88]
call fcn.0040438c
lea eax, [ebp - 0x60]
call fcn.0040438c
lea eax, [ebp - 0x44]
mov edx, 2
call fcn.004043b0
ret