Function at 0x55ef20
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58a2a5
mov eax, dword fs:[0]
push eax
sub esp, 0x3cc
mov eax, dword [0x5f2e00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x358]
mov esi, ecx
push eax
mov dword [ebp - 0x314], esi
call fcn.005752e0
lea ecx, [ebp - 0x3c4]
push ecx
mov dword [ebp - 4], 0
call dword [0x58e46c]
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
mov dword [ebp - 0x318], ecx
cmp ecx, eax
je 0x560840
mov edi, dword [ebp - 0x318]
lea edx, [ebp - 0x308]
add edi, 8
push edx
call fcn.0055bbc0
mov byte [ebp - 4], 1
cmp byte [ebp - 0x2e8], 0
jne 0x560812
mov esi, dword [ebp - 0x308]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x55efdb
cmp eax, dword [esi - 0x10]
jne 0x55efdb
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x55f013
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x560858
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call 0x692f67
add esp, 0x10
add edi, 0x10
mov dword [ebp - 0x324], edi
lea ecx, [ebp - 0x34c]
push ecx
mov byte [ebp - 4], 2
call dword [0x58e46c]
mov eax, dword [ebp - 0x34c]
sub eax, dword [ebp - 0x3c4]
mov ecx, dword [ebp - 0x348]
sbb ecx, dword [ebp - 0x3c0]
push 0
push 0x2710
push ecx
push eax
call 0x6a2350
push 0
push 0x3e8
push edx
push eax
call 0x6a2350
mov ecx, edx
mov edx, dword [ebp - 0x314]
mov esi, eax
mov eax, dword [edx + 0x10]
cdq
cmp ecx, edx
ja 0x56085d
jb 0x55f081
cmp esi, eax
ja 0x56085d
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x55f0ac
push 0x5ba6d8
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x55f0ac
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
jne 0x55f0e3
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x55f1eb
push 0x5ba6e8
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x55f1eb
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
je 0x55f1eb
push 0x5ba42c
push 0x5ba6f8
lea ecx, [ebp - 0x2fc]
call fcn.00541640
push 0x5ba42c
push 0x5ba478
lea ecx, [ebp - 0x2fc]
call fcn.00541640
push 0x5ba454
push 0x5ba484
lea ecx, [ebp - 0x2fc]
call fcn.00541640
push 0x5ba454
push 0x5ba704
lea ecx, [ebp - 0x2fc]
call fcn.00541640
push 0x5b6c40
lea ecx, [ebp - 0x360]
call fcn.0053e950
lea eax, [ebp - 0x360]
push eax
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 8
call fcn.0057d5f0
test al, al
je 0x55f1c5
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x55f193
push 0x5ba710
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x55f193
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
je 0x55f193
mov byte [ebp - 0x2e8], 1
mov eax, dword [ebp - 0x2f4]
cmp dword [eax - 0xc], 0
jl 0x55f1c5
push 0x5ba710
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x55f1c5
sub eax, dword [ebp - 0x2f4]
sar eax, 1
cmp eax, 0xffffffff
je 0x55f1c5
mov byte [ebp - 0x2e8], 1
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x360]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55f1eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x55f216
push 0x5ba720
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x55f216
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
jne 0x55f24d
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x55f8c1
push 0x5ba734
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x55f8c1
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
je 0x55f8c1
push 0x5b6c40
lea ecx, [ebp - 0x2e0]
call fcn.0053e950
lea ecx, [ebp - 0x2e0]
push ecx
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 9
call fcn.0057e430
test al, al
je 0x55f89b
mov esi, dword [ebp - 0x2f4]
mov ecx, 0x5ba748
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x55f2ae
test dx, dx
je 0x55f2aa
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x55f2ae
add eax, 4
add ecx, 4
test dx, dx
jne 0x55f288
xor eax, eax
jmp 0x55f2b3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x55f30f
mov ecx, dword [ebp - 0x2f0]
test ecx, ecx
setne al
test eax, eax
je 0x560a01
mov eax, dword [ebp - 0x2e0]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x55f2f6
test dx, dx
je 0x55f2f2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x55f2f6
add eax, 4
add ecx, 4
test dx, dx
jne 0x55f2d0
xor eax, eax
jmp 0x55f2fb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x55f89b
mov byte [ebp - 0x2e8], 1
jmp 0x55f89b
cmp dword [esi - 0xc], 0
jl 0x55f89b
push 0x5ba758
push esi
call 0x69341b
mov esi, dword [ebp - 0x2f4]
add esp, 8
test eax, eax
je 0x55f46d
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
je 0x55f46d
mov eax, dword [ebp - 0x2f0]
test eax, eax
je 0x55f388
mov ecx, dword [ebp - 0x2e0]
cmp dword [ecx - 0xc], 0
jl 0x55f388
push eax
push ecx
call 0x69341b
add esp, 8
test eax, eax
je 0x55f382
sub eax, dword [ebp - 0x2e0]
sar eax, 1
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x2f0]
je 0x55f388
mov byte [ebp - 0x2e8], 1
jmp 0x55f388
mov eax, dword [ebp - 0x2f0]
mov edx, dword [eax - 0xc]
lea ecx, [edx - 1]
test ecx, ecx
js 0x560a0b
cmp ecx, edx
jg 0x560a0b
cmp word [eax + ecx*2], 0x2a
jne 0x55f89b
add eax, 0xfffffff0
push eax
call fcn.00541ea0
add eax, 0x10
add esp, 4
mov dword [ebp - 0x2dc], eax
mov byte [ebp - 4], 0xa
mov eax, dword [eax - 0xc]
dec eax
push eax
lea edx, [ebp - 0x3a4]
push edx
lea ecx, [ebp - 0x2dc]
call fcn.005621b0
push eax
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 0xb
call fcn.00541c50
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x3a4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55f40f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x2dc]
test esi, esi
je 0x55f444
mov eax, dword [ebp - 0x2e0]
cmp dword [eax - 0xc], 0
jl 0x55f444
push esi
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x55f444
sub eax, dword [ebp - 0x2e0]
sar eax, 1
jne 0x55f444
mov byte [ebp - 0x2e8], 1
lea eax, [esi - 0x10]
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55f89b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x55f89b
cmp dword [esi - 0xc], 0
jl 0x55f89b
push 0x5ba76c
push esi
call 0x69341b
add esp, 8
test eax, eax
je 0x55f89b
sub eax, dword [ebp - 0x2f4]
sar eax, 1
cmp eax, 0xffffffff
je 0x55f89b
mov eax, dword [ebp - 0x2e0]
add eax, 0xfffffff0
push eax
call fcn.00541ea0
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x2dc], esi
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x2f0]
add eax, 0xfffffff0
push eax
call fcn.00541ea0
add eax, 0x10
add esp, 4
mov dword [ebp - 0x2e4], eax
mov byte [ebp - 4], 0xd
mov edi, dword [esi - 0xc]
dec edi
mov dword [ebp - 0x4c], 0x64636261
mov dword [ebp - 0x48], 0x68676665
mov dword [ebp - 0x44], 0x6c6b6a69
mov dword [ebp - 0x40], 0x706f6e6d
mov dword [ebp - 0x3c], 0x74737271
mov dword [ebp - 0x38], 0x78777675
mov dword [ebp - 0x34], 0x41417a79
mov dword [ebp - 0x30], 0x46454443
mov dword [ebp - 0x2c], 0x4a494847
mov dword [ebp - 0x28], 0x4e4d4c4b
mov dword [ebp - 0x24], 0x5251504f
mov dword [ebp - 0x20], 0x56555453
mov dword [ebp - 0x1c], 0x5a595857
mov dword [ebp - 0x18], 0x7b2d2928
mov dword [ebp - 0x14], 0x5c5d5b7d
js 0x55f67a
mov dword [ebp - 0x31c], 0
lea esp, [esp]
test edi, edi
js 0x560a0b
cmp edi, dword [esi - 0xc]
jg 0x560a0b
mov ecx, dword [ebp - 0x31c]
movzx eax, word [esi + edi*2]
movsx edx, byte [ebp + ecx - 0x4c]
cmp eax, edx
jne 0x55f65d
mov eax, dword [esi - 0xc]
sub eax, edi
inc eax
push eax
lea ecx, [edi + 1]
push ecx
lea edx, [ebp - 0x36c]
push edx
lea ecx, [ebp - 0x2dc]
call fcn.00541b70
mov esi, eax
push edi
push 0
lea eax, [ebp - 0x3b8]
push eax
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 0xe
call fcn.00541b70
push esi
push eax
lea ecx, [ebp - 0x38c]
mov bl, 0xf
push ecx
mov byte [ebp - 4], bl
call fcn.0055b330
add esp, 0xc
push eax
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 0x10
call fcn.00541c50
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x38c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x55f60b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x3b8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55f631
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x36c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55f657
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x2dc]
mov eax, dword [ebp - 0x31c]
inc eax
mov dword [ebp - 0x31c], eax
cmp eax, 0x3c
jb 0x55f560
dec edi
jns 0x55f54f
mov eax, dword [esi - 0xc]
xor edi, edi
mov dword [ebp - 0x31c], edi
cmp eax, edi
jle 0x55f79f
test edi, edi
js 0x560a0b
cmp edi, eax
jg 0x560a0b
cmp word [esi + edi*2], 0x2e
jne 0x55f793
mov eax, dword [ebp - 0x31c]
inc eax
mov dword [ebp - 0x31c], eax
cmp eax, 1
jle 0x55f793
mov esi, dword [esi - 0xc]
sub esi, edi
inc esi
push esi
lea ecx, [edi + 1]
push ecx
lea edx, [ebp - 0x368]
push edx
lea ecx, [ebp - 0x2dc]
call fcn.00541b70
mov esi, eax
push edi
push 0
lea eax, [ebp - 0x378]
push eax
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 0x11
call fcn.00541b70
push esi
push eax
lea ecx, [ebp - 0x370]
mov bl, 0x12
push ecx
mov byte [ebp - 4], bl
call fcn.0055b330
add esp, 0xc
push eax
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 0x13
call fcn.00541c50
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x370]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x55f741
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x378]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55f767
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x368]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55f78d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x2dc]
mov eax, dword [esi - 0xc]
inc edi
cmp edi, eax
jl 0x55f68d
mov ecx, dword [ebp - 0x2e4]
mov eax, dword [ecx - 0xc]
mov ebx, dword [fcn.0058e504]
push eax
push ecx
call ebx
test eax, eax
je 0x560858
mov edi, 0xf423f
xor ecx, ecx
cmp word [eax + ecx*2], 0
je 0x55f7d4
mov dl, byte [eax + ecx*2]
mov byte [ebp + ecx - 0xd0], dl
jmp 0x55f7de
xor edi, edi
mov byte [ebp + ecx - 0xd0], 0
inc ecx
cmp ecx, edi
jb 0x55f7c1
lea eax, [ebp - 0xd0]
push eax
call 0x693c77
fstp qword [ebp - 0x320]
mov eax, dword [esi - 0xc]
add esp, 4
push eax
push esi
call ebx
test eax, eax
je 0x560858
mov edi, 0xf423f
xor ecx, ecx
mov edi, edi
cmp word [eax + ecx*2], 0
je 0x55f823
mov dl, byte [eax + ecx*2]
mov byte [ebp + ecx - 0x90], dl
jmp 0x55f82d
xor edi, edi
mov byte [ebp + ecx - 0x90], 0
inc ecx
cmp ecx, edi
jb 0x55f810
lea eax, [ebp - 0x90]
push eax
call 0x693c77
fcomp qword [ebp - 0x320]
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x55f855
mov byte [ebp - 0x2e8], 1
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x2e4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55f87b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add esi, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55f89b
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2e0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55f8c1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x300]
xor esi, esi
cmp dword [eax - 0xc], esi
jl 0x55f8ed
push 0x5ba77c
push eax
call 0x69341b
add esp, 8
cmp eax, esi
je 0x55f8ed
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
jne 0x55f923
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], esi
jl 0x55fe41
push 0x5ba788
push eax
call 0x69341b
add esp, 8
cmp eax, esi
je 0x55fe41
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
je 0x55fe41
mov eax, dword [ebp - 0x2fc]
cmp dword [eax - 0xc], esi
jge 0x55f936
or edi, 0xffffffff
jmp 0x55fb16
push 0x5ba794
push eax
call 0x69341b
add esp, 8
cmp eax, esi
jne 0x55f950
or edi, 0xffffffff
jmp 0x55fb16
sub eax, dword [ebp - 0x2fc]
sar eax, 1
mov edi, eax
cmp edi, 0xffffffff
je 0x55fb16
push 0x5ba7a0
lea ecx, [ebp - 0x354]
call fcn.0053e950
push 0x104
lea ecx, [ebp - 0x2d8]
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x354]
push ecx
push edx
call dword [0x58e464]
push 0x5ba7b4
lea ecx, [ebp - 0x364]
call fcn.0053e950
mov dword [ebp - 0x39c], esi
mov dword [ebp - 0x398], esi
mov dword [ebp - 0x394], esi
lea eax, [ebp - 0x2d8]
push eax
lea ecx, [ebp - 0x3ac]
mov byte [ebp - 4], 0x16
call fcn.0053e950
lea ecx, [ebp - 0x39c]
push ecx
lea edx, [ebp - 0x364]
push edx
push eax
lea ecx, [ebp - 0x33d]
mov byte [ebp - 4], 0x17
call fcn.00568bb0
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x3ac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55fa0c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x398]
sub ecx, dword [ebp - 0x39c]
sar ecx, 2
test ecx, ecx
je 0x55fabb
mov edx, dword [ebp - 0x2fc]
mov eax, dword [edx - 0xc]
sub eax, edi
sub eax, 4
push eax
lea eax, [ebp - 0x3bc]
push eax
lea ecx, [ebp - 0x2fc]
call fcn.0055b290
mov bl, 0x18
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x39c]
push eax
push ecx
lea edx, [ebp - 0x3b4]
push edx
call fcn.0055b330
add esp, 0xc
push eax
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x19
call fcn.00541c50
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x3b4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55fa95
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x3bc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55fabb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ebx, [ebp - 0x39c]
mov byte [ebp - 4], 0x15
call fcn.00562240
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x364]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55faf0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x354]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55fb16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x2fc]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x55fb42
cmp eax, dword [esi - 0x10]
jne 0x55fb42
lea ebx, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x55fb7a
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x560858
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call 0x692f67
add esp, 0x10
add ebx, 0x10
mov dword [ebp - 0x31c], ebx
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x2fc]
cmp dword [eax - 0xc], 0
jl 0x55fdab
push 0x5b69f4
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x55fdab
sub eax, dword [ebp - 0x2fc]
sar eax, 1
mov esi, eax
cmp esi, 0xffffffff
je 0x55fdab
cmp edi, 0xffffffff
jne 0x55fdab
push esi
lea ecx, [ebp - 0x384]
push ecx
lea ecx, [ebp - 0x2fc]
call fcn.005621b0
push eax
lea ecx, [ebp - 0x31c]
mov byte [ebp - 4], 0x1b
call fcn.00541c50
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x384]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x55fc11
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x2fc]
mov eax, dword [ecx - 0xc]
sub eax, esi
sub eax, 2
push eax
lea edx, [ebp - 0x3a0]
push edx
lea ecx, [ebp - 0x2fc]
call fcn.0055b290
push eax
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x1c
call fcn.00541c50
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x3a0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55fc68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x31c]
push 0x104
lea ecx, [ebp - 0x2d8]
push ecx
push edx
call dword [0x58e464]
push 0x5ba4d8
lea ecx, [ebp - 0x380]
call fcn.0053e950
mov esi, eax
lea eax, [ebp - 0x2d8]
push eax
lea ecx, [ebp - 0x37c]
mov byte [ebp - 4], 0x1d
call fcn.0053e950
push esi
push eax
lea ecx, [ebp - 0x3b0]
push ecx
mov byte [ebp - 4], 0x1e
call fcn.0055b330
add esp, 0xc
lea edx, [ebp - 0x2fc]
push edx
push eax
lea eax, [ebp - 0x374]
mov bl, 0x1f
push eax
mov byte [ebp - 4], bl
call fcn.0055b330
add esp, 0xc
push eax
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x20
call fcn.00541c50
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x374]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55fd0f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x1e
mov eax, dword [ebp - 0x3b0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55fd35
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x37c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55fd5b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x380]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55fd81
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x5b69f4
push 0x5ba4d8
lea ecx, [ebp - 0x2fc]
call fcn.00541640
push 0x5ba4d8
push 0x5b69f4
lea ecx, [ebp - 0x2fc]
call fcn.00541640
mov eax, dword [ebp - 0x2f4]
mov ecx, 0x5ba710
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x55fddc
test dx, dx
je 0x55fdd8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x55fddc
add eax, 4
add ecx, 4
test dx, dx
jne 0x55fdb6
xor eax, eax
jmp 0x55fde1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x55fe1b
mov ecx, dword [ebp - 0x2fc]
push ecx
call dword [0x58e490]
cmp eax, 0xffffffff
je 0x55fe1b
mov eax, dword [ebp - 0x2fc]
lea edx, [ebp - 0x34]
push edx
push 0
push eax
call dword [fcn.0058e43c]
test eax, eax
je 0x55fe14
cmp dword [ebp - 0x14], 0
je 0x55fe1b
mov byte [ebp - 0x2e8], 1
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x55fe41
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x55fe6c
push 0x5ba7d8
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x55fe6c
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
jne 0x55fea3
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x55ffdd
push 0x5ba7e4
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x55ffdd
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
je 0x55ffdd
mov eax, dword [ebp - 0x2f4]
mov ecx, 0x5ba748
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x55fed6
test dx, dx
je 0x55fed2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x55fed6
add eax, 4
add ecx, 4
test dx, dx
jne 0x55feb0
xor eax, eax
jmp 0x55fedb
sbb eax, eax
sbb eax, 0xffffffff
mov esi, dword [ebp - 0x2f0]
test eax, eax
jne 0x55ff48
cmp dword [esi - 0xc], eax
jl 0x55ff48
push 0x5ba7f0
push esi
call 0x69341b
mov esi, dword [ebp - 0x2f0]
add esp, 8
test eax, eax
je 0x55ff0b
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jne 0x55ff32
cmp dword [esi - 0xc], 0
jl 0x55ff48
push 0x5ba7fc
push esi
call 0x69341b
mov esi, dword [ebp - 0x2f0]
add esp, 8
test eax, eax
je 0x55ff48
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
je 0x55ff48
call fcn.0057f0e0
mov esi, dword [ebp - 0x2f0]
test eax, eax
je 0x55ff48
mov byte [ebp - 0x2e8], 1
mov eax, dword [ebp - 0x2f4]
mov ecx, 0x5ba808
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x55ff79
test dx, dx
je 0x55ff75
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x55ff79
add eax, 4
add ecx, 4
test dx, dx
jne 0x55ff53
xor eax, eax
jmp 0x55ff7e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x55ffdd
cmp dword [esi - 0xc], eax
jl 0x55ffdd
push 0x5ba7f0
push esi
call 0x69341b
mov esi, dword [ebp - 0x2f0]
add esp, 8
test eax, eax
je 0x55ffa8
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jne 0x55ffcd
cmp dword [esi - 0xc], 0
jl 0x55ffdd
push 0x5ba7fc
push esi
call 0x69341b
add esp, 8
test eax, eax
je 0x55ffdd
sub eax, dword [ebp - 0x2f0]
sar eax, 1
cmp eax, 0xffffffff
je 0x55ffdd
call fcn.0057f0e0
test eax, eax
jne 0x55ffdd
mov byte [ebp - 0x2e8], 1
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x560008
push 0x5ba81c
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x560008
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
jne 0x56003f
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x560471
push 0x5ba824
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x560471
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
je 0x560471
lea ecx, [ebp - 0x3d8]
push ecx
call fcn.00562c80
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0x2fc]
cmp dword [edx - 0xc], 0
jle 0x560429
push 0x5b6c40
lea ecx, [ebp - 0x32c]
call fcn.0053e950
push 0x5b6c40
lea ecx, [ebp - 0x328]
mov byte [ebp - 4], 0x22
call fcn.0053e950
lea eax, [ebp - 0x328]
push eax
lea ecx, [ebp - 0x32c]
push ecx
lea edx, [ebp - 0x2fc]
lea ecx, [ebp - 0x3d8]
mov byte [ebp - 4], 0x23
call fcn.00563dd0
test al, al
je 0x5603dd
mov eax, dword [ebp - 0x2ec]
add eax, 0xfffffff0
push eax
call fcn.00541ea0
add eax, 0x10
add esp, 4
mov dword [ebp - 0x2dc], eax
push 0x5b69f4
lea edx, [ebp - 0x32c]
push edx
lea eax, [ebp - 0x3a8]
push eax
mov byte [ebp - 4], 0x24
call fcn.0055b3f0
add esp, 0xc
lea ecx, [ebp - 0x2dc]
push ecx
push eax
lea edx, [ebp - 0x388]
mov bl, 0x25
push edx
mov byte [ebp - 4], bl
call fcn.0055b330
add esp, 0xc
push eax
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 0x26
call fcn.00541c50
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x388]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560139
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0x3a8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56015f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x5b69f4
push 0x5ba4d8
lea ecx, [ebp - 0x2dc]
call fcn.00541640
push 0x5b6c40
lea ecx, [ebp - 0x35c]
mov dword [ebp - 0x2e4], 0xffffffff
call fcn.0053e950
lea ecx, [ebp - 0x2e4]
push ecx
lea edx, [ebp - 0x35c]
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 0x27
call fcn.0057ccf0
test al, al
je 0x560384
mov eax, dword [ebp - 0x2e4]
push 0xa
lea edx, [ebp - 0x30]
push edx
push eax
call 0x6b0ffe
add esp, 0xc
lea ecx, [ebp - 0x30]
push ecx
lea ecx, [ebp - 0x33c]
call fcn.0055b170
mov byte [ebp - 4], 0x28
mov eax, dword [ebp - 0x2f4]
mov ecx, 0x5ba710
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x56020b
test dx, dx
je 0x560207
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x56020b
add eax, 4
add ecx, 4
test dx, dx
jne 0x5601e5
xor eax, eax
jmp 0x560210
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x560240
push 0x5ba748
lea ecx, [ebp - 0x2f4]
call fcn.0055b210
test eax, eax
je 0x560240
mov edx, dword [ebp - 0x2f0]
push edx
lea ecx, [ebp - 0x33c]
call fcn.0055b210
test eax, eax
je 0x56025d
jmp 0x560256
mov eax, dword [ebp - 0x2f0]
push eax
lea ecx, [ebp - 0x33c]
call fcn.0055b210
test eax, eax
jne 0x56025d
mov byte [ebp - 0x2e8], 1
lea ecx, [ebp - 0x30]
push ecx
lea ecx, [ebp - 0x330]
call fcn.0055b170
mov esi, eax
lea edx, [ebp - 0x2dc]
push edx
lea eax, [ebp - 0x334]
push 0x5ba838
push eax
mov byte [ebp - 4], 0x29
call fcn.0055b4d0
add esp, 0xc
push 0x5ba82c
push eax
lea ecx, [ebp - 0x338]
push ecx
mov byte [ebp - 4], 0x2a
call fcn.0055b3f0
add esp, 0xc
push esi
push eax
lea edx, [ebp - 0x344]
mov bl, 0x2b
push edx
mov byte [ebp - 4], bl
call fcn.0055b330
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 0x2c
call fcn.005759c0
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x344]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5602ec
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x2a
mov eax, dword [ebp - 0x338]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560312
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x29
mov eax, dword [ebp - 0x334]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560338
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x28
mov eax, dword [ebp - 0x330]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56035e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x27
mov eax, dword [ebp - 0x33c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560384
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x32c]
push ecx
call dword [0x58e468]
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0x35c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x5603b7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x23
mov eax, dword [ebp - 0x2dc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5603dd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x22
mov eax, dword [ebp - 0x328]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560403
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x21
mov eax, dword [ebp - 0x32c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560429
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x3d4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56044f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x3d8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560471
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x56049c
push 0x5ba864
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x56049c
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
jne 0x5604d3
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x560555
push 0x5ba874
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x560555
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
je 0x560555
push 0x5b6c40
lea ecx, [ebp - 0x310]
call fcn.0053e950
lea ecx, [ebp - 0x310]
push ecx
mov byte [ebp - 4], 0x2d
call fcn.0055d0a0
mov eax, dword [ebp - 0x2fc]
test eax, eax
je 0x56052f
mov ecx, dword [ebp - 0x310]
cmp dword [ecx - 0xc], 0
jl 0x560535
push eax
push ecx
call 0x69341b
add esp, 8
test eax, eax
je 0x56052f
mov ecx, dword [ebp - 0x310]
sub eax, ecx
sar eax, 1
cmp eax, 0xffffffff
je 0x560535
mov byte [ebp - 0x2e8], 1
jmp 0x560535
mov ecx, dword [ebp - 0x310]
lea eax, [ecx - 0x10]
mov byte [ebp - 4], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x560555
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x560580
push 0x5ba884
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x560580
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
jne 0x5605b7
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x560638
push 0x5ba88c
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x560638
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
je 0x560638
push 0x5b6c40
lea ecx, [ebp - 0x30c]
call fcn.0053e950
lea esi, [ebp - 0x30c]
mov byte [ebp - 4], 0x2e
call fcn.0057ee90
mov eax, dword [ebp - 0x2fc]
test eax, eax
je 0x560612
mov ecx, dword [ebp - 0x30c]
cmp dword [ecx - 0xc], 0
jl 0x560618
push eax
push ecx
call 0x69341b
add esp, 8
test eax, eax
je 0x560612
mov ecx, dword [ebp - 0x30c]
sub eax, ecx
sar eax, 1
cmp eax, 0xffffffff
je 0x560618
mov byte [ebp - 0x2e8], 1
jmp 0x560618
mov ecx, dword [ebp - 0x30c]
lea eax, [ecx - 0x10]
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560638
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x560663
push 0x5ba894
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x560663
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
jne 0x56069a
mov eax, dword [ebp - 0x300]
cmp dword [eax - 0xc], 0
jl 0x5607a8
push 0x5ba8a0
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x5607a8
sub eax, dword [ebp - 0x300]
sar eax, 1
cmp eax, 0xffffffff
je 0x5607a8
mov ebx, dword [fcn.0058e470]
push 0x5bc6a0
push 0x5bc6b0
mov dword [ebp - 0x2e4], 0
call ebx
mov edi, dword [fcn.0058e4ac]
push eax
call edi
mov esi, eax
test esi, esi
je 0x5606d5
lea ecx, [ebp - 0x2e4]
push ecx
call dword [0x58e414]
push eax
call esi
cmp dword [ebp - 0x2e4], 0
je 0x560726
mov eax, dword [ebp - 0x2fc]
mov ecx, 0x5ba8ac
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x560716
test dx, dx
je 0x560712
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x560716
add eax, 4
add ecx, 4
test dx, dx
jne 0x5606f0
xor eax, eax
jmp 0x56071b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x560726
mov byte [ebp - 0x2e8], 1
push 0x5bc6a0
push 0x5bc6b0
mov dword [ebp - 0x2e4], 0
call ebx
push eax
call edi
mov esi, eax
test esi, esi
je 0x560755
lea edx, [ebp - 0x2e4]
push edx
call dword [0x58e414]
push eax
call esi
cmp dword [ebp - 0x2e4], 0
jne 0x5607a8
mov eax, dword [ebp - 0x2fc]
mov ecx, 0x5ba8b4
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x560796
test dx, dx
je 0x560792
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x560796
add eax, 4
add ecx, 4
test dx, dx
jne 0x560770
xor eax, eax
jmp 0x56079b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x5607a8
mov byte [ebp - 0x2e8], 1
jmp 0x5607b1
cmp byte [ebp - 0x2e8], 1
jne 0x5607ec
mov edi, dword [ebp - 0x314]
mov eax, dword [edi + 0x14]
mov esi, dword [eax]
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x308]
push eax
push ecx
push esi
call fcn.0055b9f0
mov ecx, dword [edi + 0x18]
mov edx, 0x71c71c6
sub edx, ecx
cmp edx, 1
jb 0x560a15
inc ecx
mov dword [edi + 0x18], ecx
mov dword [esi + 4], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x324]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560812
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x308]
mov byte [ebp - 4], 0
call fcn.005439e0
mov ecx, dword [ebp - 0x318]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x314]
mov dword [ebp - 0x318], eax
cmp eax, dword [edx + 0x14]
jne 0x55ef89
mov esi, edx
mov eax, dword [esi + 0x20]
mov ebx, dword [eax]
mov dword [ebp - 0x310], ebx
cmp ebx, eax
je 0x560ff7
jmp 0x560a26
call fcn.0053ee60
lea eax, [ebp - 0x328]
push eax
call fcn.005752e0
push 0x5b6c40
lea ecx, [ebp - 0x344]
mov byte [ebp - 4], 3
call fcn.0053e950
mov esi, eax
push 0x5b6e00
lea ecx, [ebp - 0x338]
mov byte [ebp - 4], 4
call fcn.0053e950
mov edi, eax
push 0x5b6e00
lea ecx, [ebp - 0x334]
mov byte [ebp - 4], 5
call fcn.0053e950
mov ebx, eax
push 0x5ba6d0
lea ecx, [ebp - 0x330]
mov byte [ebp - 4], 6
call fcn.0053e950
mov ecx, dword [ebp - 0x314]
push esi
push edi
push ebx
push eax
add ecx, 4
push ecx
lea edx, [ebp - 0x328]
push edx
mov ecx, 1
mov byte [ebp - 4], 7
call fcn.00579d30
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x330]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560908
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x334]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56092e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x338]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560954
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x344]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56097a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x328]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5609a0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x324]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5609c6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x308]
call fcn.005439e0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x358]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5609fa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x561022
push 0x80004005
call fcn.0053dc90
push 0x80070057
call fcn.0053dc90
push 0x5b896c
call 0x6b02d3
nop
mov ebx, dword [ebp - 0x310]
mov esi, dword [ebx + 8]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x560a4f
cmp eax, dword [esi - 0x10]
jne 0x560a4f
lea edi, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x560a87
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x560858
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call 0x692f67
add esp, 0x10
add edi, 0x10
mov dword [ebp - 0x350], edi
mov byte [ebp - 4], 0x2f
mov esi, dword [ebx + 0xc]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x560abd
cmp eax, dword [esi - 0x10]
jne 0x560abd
lea edi, [esi - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x560af5
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x560858
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call 0x692f67
add esp, 0x10
mov ecx, dword [ebp - 0x310]
mov al, byte [ecx + 0x10]
lea ebx, [edi + 0x10]
mov dword [ebp - 0x34c], ebx
mov byte [ebp - 0x348], al
mov byte [ebp - 4], 0x30
test al, al
jne 0x560f98
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
lea esi, [ebx - 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x560b40
cmp eax, dword [esi]
jne 0x560b40
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x560b7b
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x560858
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call 0x692f67
add esp, 0x10
add edi, 0x10
mov dword [ebp - 0x2dc], edi
mov ecx, dword [ebp - 0x314]
mov byte [ebp - 4], 0x31
mov eax, dword [ecx + 0x14]
mov edi, dword [eax]
mov dword [ebp - 0x318], edi
cmp edi, eax
je 0x560f20
jmp 0x560ba9
mov edi, dword [ebp - 0x318]
lea edx, [ebp - 0x34]
add edi, 8
push edx
call fcn.0055bbc0
mov byte [ebp - 4], 0x32
mov esi, dword [ebp - 0x34]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x560be2
cmp eax, dword [esi - 0x10]
jne 0x560be2
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x560c1a
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x560858
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call 0x692f67
add esp, 0x10
lea ebx, [edi + 0x10]
mov dword [ebp - 0x324], ebx
mov byte [ebp - 4], 0x33
call fcn.005ac8b9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x560a01
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x2e0], eax
mov ecx, 0x5b7acc
mov byte [ebp - 4], 0x34
test ecx, 0xffff0000
jne 0x560c7c
mov edx, ecx
movzx esi, dx
push esi
call fcn.005a6607
test eax, eax
je 0x560c8e
push esi
push eax
lea ecx, [ebp - 0x2e0]
call fcn.0053eb30
jmp 0x560c8e
push 1
push 0x5b7acc
lea ecx, [ebp - 0x2e0]
call fcn.0053ed50
mov byte [ebp - 4], 0x35
cmp byte [ebp - 0x14], 0
je 0x560de8
call fcn.005ac8b9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x560a01
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [ebp - 0x30c], edi
mov ecx, 0x5b7358
mov byte [ebp - 4], 0x36
test ecx, 0xffff0000
jne 0x560cf1
mov edx, ecx
movzx esi, dx
push esi
call fcn.005a6607
test eax, eax
je 0x560d09
push esi
push eax
lea ecx, [ebp - 0x30c]
call fcn.0053eb30
jmp 0x560d03
push 1
push 0x5b7358
lea ecx, [ebp - 0x30c]
call fcn.0053ed50
mov edi, dword [ebp - 0x30c]
mov byte [ebp - 4], 0x37
mov ebx, dword [ebp - 0x2e0]
lea esi, [edi - 0x10]
add ebx, 0xfffffff0
cmp esi, ebx
je 0x560dc5
cmp dword [ebx + 0xc], 0
jl 0x560db5
mov ecx, dword [esi]
cmp ecx, dword [ebx]
jne 0x560db5
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x560d56
cmp eax, dword [esi]
jne 0x560d56
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x560d91
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x560858
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [esi + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [edi + 0x10]
push ecx
call 0x692f67
add esp, 0x10
lea eax, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x560daa
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
add edi, 0x10
mov dword [ebp - 0x2e0], edi
jmp 0x560dc5
mov eax, dword [edi - 0xc]
push eax
push edi
lea ecx, [ebp - 0x2e0]
call fcn.0053ed50
mov byte [ebp - 4], 0x35
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x560de2
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ebx, dword [ebp - 0x324]
test ebx, ebx
je 0x560eab
mov eax, dword [ebp - 0x2dc]
cmp dword [eax - 0xc], 0
jl 0x560eab
push ebx
push eax
call 0x69341b
add esp, 8
test eax, eax
je 0x560eab
sub eax, dword [ebp - 0x2dc]
sar eax, 1
cmp eax, 0xffffffff
je 0x560eab
mov ecx, 0x5b7358
mov eax, ebx
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x560e56
test dx, dx
je 0x560e52
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x560e56
add eax, 4
add ecx, 4
test dx, dx
jne 0x560e30
xor eax, eax
jmp 0x560e5b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x560eab
mov ecx, 0x5b7acc
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x560e8c
test dx, dx
je 0x560e88
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x560e8c
add eax, 4
add ecx, 4
test dx, dx
jne 0x560e66
xor eax, eax
jmp 0x560e91
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x560eab
lea ecx, [ebp - 0x2e0]
push ecx
lea edx, [ebp - 0x34]
push edx
lea edi, [ebp - 0x2dc]
call fcn.00561ba0
mov byte [ebp - 4], 0x33
mov eax, dword [ebp - 0x2e0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560ed1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 0x32
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560ef1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 0x31
call fcn.005439e0
mov ecx, dword [ebp - 0x318]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x314]
mov dword [ebp - 0x318], eax
cmp eax, dword [edx + 0x14]
jne 0x560ba3
mov ebx, dword [ebp - 0x34c]
mov edi, dword [ebp - 0x314]
lea eax, [ebp - 0x2dc]
push eax
mov ecx, edi
call fcn.00561040
mov byte [ebp - 0x348], al
cmp al, 1
jne 0x560f72
mov eax, dword [edi + 0x20]
mov esi, dword [eax]
mov ecx, dword [esi + 4]
push ecx
push esi
lea ecx, [ebp - 0x350]
call fcn.0055bab0
mov ecx, dword [edi + 0x24]
mov edx, 0x15555554
sub edx, ecx
cmp edx, 1
jb 0x560a15
inc ecx
mov dword [edi + 0x24], ecx
mov dword [esi + 4], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
mov byte [ebp - 4], 0x30
mov eax, dword [ebp - 0x2dc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560f98
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560fb8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x350]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560fda
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x310]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x314]
mov dword [ebp - 0x310], eax
cmp eax, dword [edx + 0x20]
jne 0x560a20
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x358]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x561020
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call 0x692a51
mov esp, ebp
pop ebp
ret