Function at 0x5999d0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
lea ebp, [esp - 0x1004]
mov eax, 0x1004
call fcn.006272c0
push 0xffffffffffffffff
push 0x641443
mov eax, dword fs:[0]
push eax
sub esp, 0x88
mov eax, dword [0x6a6040]
xor eax, ebp
mov dword [ebp + 0x1000], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 0x1014]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x1018]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 0x1020]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x1024]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x1028]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp + 0x1030]
mov dword [ebp - 0x50], eax
mov dword [ebp - 4], 0
mov esi, str.printf
mov ecx, dword [ebp + 0x1010]
test ecx, ecx
je 0x599a64
mov edx, dword [ecx + 0xc]
jmp 0x599a69
mov edx, 0x651f68
test ecx, ecx
je 0x599a72
mov eax, dword [ecx + 4]
jmp 0x599a74
xor eax, eax
lea edi, [edx + eax]
cmp edx, edi
jae 0x599a92
nop dword [eax + eax]
mov bl, byte [esi]
test bl, bl
je 0x599a99
mov al, byte [edx]
inc esi
inc edx
cmp al, bl
jne 0x599a99
cmp edx, edi
jb 0x599a80
jne 0x599a99
cmp byte [esi], 0
je 0x599ae9
mov esi, str.forcedprintf
test ecx, ecx
je 0x599aa7
mov edx, dword [ecx + 0xc]
jmp 0x599aac
mov edx, 0x651f68
test ecx, ecx
je 0x599ab5
mov eax, dword [ecx + 4]
jmp 0x599ab7
xor eax, eax
lea edi, [eax + edx]
cmp edx, edi
jae 0x599ada
nop
mov bl, byte [esi]
test bl, bl
je 0x59a515
mov al, byte [edx]
inc esi
inc edx
cmp al, bl
jne 0x59a515
cmp edx, edi
jb 0x599ac0
jne 0x59a515
cmp byte [esi], 0
jne 0x59a515
mov ebx, dword [ebp - 0x18]
lea ecx, [ebp - 0x94]
push 0
lea eax, [ebx + 1]
push eax
call fcn.00569e70
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov edi, dword [ebp + 0x101c]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x58], eax
test ebx, ebx
jle 0x599c5d
mov esi, dword [ebp - 0x4c]
mov ecx, edi
shl ecx, 0x10
test byte [esi + 0x18], 3
jne 0x599b89
xor edx, edx
mov eax, ecx
div dword [esi + 0x10]
mov eax, dword [esi + 0x14]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x599b89
cmp dword [eax + 4], ecx
je 0x599b62
mov eax, dword [eax]
test eax, eax
jne 0x599b55
jmp 0x599b89
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x599b89
lock inc dword [ecx]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [eax + 8]
mov dword [ebp - 0x1c], eax
test ecx, ecx
je 0x599b89
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x599b89
push ecx
call fcn.005a47b0
mov eax, dword [0x6aef98]
push ecx
mov ecx, esp
test eax, eax
je 0x599b9a
lock inc dword [eax]
jmp 0x599b9c
xor eax, eax
push 1
mov dword [ecx], eax
lea eax, [ebp - 0x10]
push ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.005b30e0
mov ecx, dword [ebp - 0x1c]
mov edx, dword [eax]
cmp ecx, edx
je 0x599bd6
mov dword [ebp - 0x1c], edx
mov dword [eax], 0
test ecx, ecx
je 0x599bd3
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x599bd3
push ecx
call fcn.005a47b0
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
test edx, edx
je 0x599bf2
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
jne 0x599bef
push ecx
mov ecx, edx
call fcn.005a47b0
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x599c01
cmp dword [ecx + 4], 0
jle 0x599c01
mov eax, dword [ecx + 0xc]
jmp 0x599c06
mov eax, 0x651f40
cmp byte [eax], 0x22
jne 0x599c69
test ecx, ecx
je 0x599c69
mov edx, dword [ecx + 4]
cmp edx, 2
jl 0x599c69
mov eax, dword [ecx + 0xc]
cmp byte [eax + edx - 1], 0x22
jne 0x599c69
lea eax, [edx - 2]
push eax
push 1
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x1c]
call fcn.005ac6c0
push eax
lea ecx, [ebp - 0x20]
call fcn.005a5c80
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x599c53
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x599c53
push ecx
call fcn.005a47b0
mov eax, 1
mov dword [ebp - 0x24], eax
jmp 0x599c5f
xor eax, eax
cmp eax, ebx
jge 0x599d78
jmp 0x599c6b
xor eax, eax
shl edi, 0x10
sub ebx, eax
add edi, eax
mov dword [ebp - 0x18], ebx
xor ebx, ebx
mov dword [ebp - 0x54], ebx
nop word [eax + eax]
xor esi, esi
mov dword [ebp - 0x80], esi
mov ecx, dword [ebp - 0x4c]
mov byte [ebp - 4], 4
test byte [ecx + 0x18], 3
jne 0x599cc2
xor edx, edx
mov eax, edi
div dword [ecx + 0x10]
mov eax, dword [ecx + 0x14]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x599cc2
cmp dword [eax + 4], edi
je 0x599cb2
mov eax, dword [eax]
test eax, eax
jne 0x599ca5
jmp 0x599cc2
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x599cc2
lock inc dword [ecx]
mov esi, dword [eax + 8]
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x64], 0xffffffff
lea eax, [ebp - 0x14]
mov dword [ebp - 0x60], 0xffffffff
mov byte [ebp - 0x14], 0
push 0x1000
push eax
lea eax, [ebp - 0x64]
push eax
push ecx
mov ecx, esp
test esi, esi
je 0x599cef
lock inc dword [esi]
mov eax, esi
jmp 0x599cf1
xor eax, eax
mov dword [ecx], eax
mov ecx, dword [ebp - 0x50]
call fcn.005eff10
add ebx, dword [ebp - 0x58]
mov ecx, eax
inc dword [ebp - 0x5c]
mov edx, str.true
cmp byte [ebp - 0x14], 0
mov eax, str.false
cmove edx, eax
cmp ecx, 1
jne 0x599d20
mov eax, 0x66c23c
jmp 0x599d33
test ecx, ecx
je 0x599d2e
mov eax, str.error__3_
cmp ecx, 2
jne 0x599d33
mov eax, 0x66c240
push ecx
push edx
push dword [ebp - 0x60]
push dword [ebp - 0x64]
push eax
push str._D_s_d
push ebx
call fcn.005ac040
add esp, 0x1c
mov byte [ebp - 4], 3
test esi, esi
je 0x599d64
or eax, 0xffffffff
lock xadd dword [esi], eax
dec eax
jne 0x599d64
push ecx
mov ecx, esi
call fcn.005a47b0
mov ebx, dword [ebp - 0x54]
inc edi
sub dword [ebp - 0x18], 1
lea ebx, [ebx + 4]
mov dword [ebp - 0x54], ebx
jne 0x599c80
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [0x6b0dbc]
cmp eax, 0x2710
jl 0x599d94
call esi
mov dword [0x6b0dbc], eax
call esi
sub eax, dword [0x6b0dbc]
cmp eax, 0x1f4
jle 0x599df9
mov ecx, dword [ebp + 0x1010]
mov esi, str.forcedprintf
test ecx, ecx
je 0x599db7
mov edx, dword [ecx + 0xc]
jmp 0x599dbc
mov edx, 0x651f68
test ecx, ecx
je 0x599dc5
mov eax, dword [ecx + 4]
jmp 0x599dc7
xor eax, eax
lea edi, [eax + edx]
cmp edx, edi
jae 0x599dea
nop
mov bl, byte [esi]
test bl, bl
je 0x59a493
mov al, byte [edx]
inc esi
inc edx
cmp al, bl
jne 0x59a493
cmp edx, edi
jb 0x599dd0
jne 0x59a493
cmp byte [esi], 0
jne 0x59a493
push 0
lea eax, [ebp]
push 0
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x48], eax
call fcn.0041aee0
xor ecx, ecx
mov word [ebp - 0x28], 1
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], 0x1000
mov byte [ebp - 4], 6
cmp dword [ebp - 0x24], ecx
jbe 0x59a38c
mov eax, dword [ebp - 0x20]
xor ebx, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x50], 0x20
nop dword [eax]
test eax, eax
je 0x599e49
mov edi, dword [eax + 0xc]
jmp 0x599e4e
mov edi, 0x651f68
test eax, eax
je 0x599e57
mov edx, dword [eax + 4]
jmp 0x599e59
xor edx, edx
add edx, edi
lea esi, [edi + ebx]
cmp esi, edx
jae 0x599e6c
cmp byte [esi], 0x25
je 0x599ed5
inc esi
cmp esi, edx
jb 0x599e62
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x20]
call fcn.005ac890
mov byte [ebp - 4], 7
mov eax, dword [eax]
test eax, eax
je 0x59a369
mov esi, dword [eax + 4]
mov ebx, dword [eax + 0xc]
test esi, esi
jle 0x59a369
mov al, byte [ebp - 0x28]
mov ecx, dword [ebp - 0x30]
test al, al
je 0x59a364
lea edx, [ecx + esi]
cmp dword [ebp - 0x2c], edx
jae 0x59a34d
lea eax, [edx + edx]
cmp eax, 0x7fffffff
jbe 0x59a2d2
cmp edx, 0x7fffffff
jae 0x59a2d2
mov eax, bind
jmp 0x59a2e5
sub esi, edi
js 0x599e6c
lea edi, [esi + 1]
test eax, eax
je 0x599ef0
cmp edi, dword [eax + 4]
jge 0x599ef0
test edi, edi
js 0x599ef0
mov edx, dword [eax + 0xc]
add edx, edi
jmp 0x599ef5
mov edx, 0x651f40
cmp byte [edx], 0x30
jl 0x59a2bf
test eax, eax
je 0x599f12
cmp edi, dword [eax + 4]
jge 0x599f12
test edi, edi
js 0x599f12
mov edx, dword [eax + 0xc]
add edx, edi
jmp 0x599f17
mov edx, 0x651f40
cmp byte [edx], 0x39
jg 0x59a2bf
test eax, eax
je 0x599f2c
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x24], edx
jmp 0x599f33
mov dword [ebp - 0x24], 0x651f68
mov edx, esi
sub edx, ebx
mov ebx, esi
mov dword [ebp - 0x4c], edx
test edx, edx
jle 0x59a02e
cmp byte [ebp - 0x28], 0
je 0x59a028
lea ebx, [ecx + edx]
lea eax, [ecx + edx]
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x2c], eax
mov ebx, esi
mov eax, dword [ebp - 0x20]
jae 0x59a004
mov ebx, dword [ebp - 0x10]
lea edx, [ebx + ebx]
cmp edx, 0x7fffffff
jbe 0x599f82
cmp ebx, 0x7fffffff
jae 0x599f82
mov edx, bind
jmp 0x599f8d
cmp edx, 0x20
cmovb edx, dword [ebp - 0x50]
cmp edx, ebx
jb 0x599ffc
cmp edx, ecx
jb 0x599ffc
cmp edx, dword [ebp - 0x4c]
jb 0x599ffc
push dword [ebp - 0x34]
lea ecx, [ebp - 0x78]
push edx
call fcn.0041aee0
mov eax, dword [ebp - 0x74]
test eax, eax
jne 0x599fb5
cmp dword [ebp - 0x6c], eax
je 0x599fb5
mov byte [ebp - 0x28], al
mov ebx, esi
jmp 0x599fe5
push dword [ebp - 0x30]
mov byte [ebp - 0x28], 1
mov ebx, esi
push dword [ebp - 0x48]
push eax
call fcn.00609db0
mov eax, dword [ebp - 0x74]
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x48], eax
add esp, 0xc
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x78]
push eax
call fcn.0041ae10
mov eax, dword [ebp - 0x74]
mov esi, dword [ebp - 0x18]
push eax
call fcn.00606eda
mov eax, dword [ebp - 0x20]
add esp, 4
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x4c]
jmp 0x59a007
mov byte [ebp - 0x28], 0
mov ebx, esi
jmp 0x59a028
mov esi, dword [ebp - 0x18]
cmp byte [ebp - 0x28], 0
je 0x59a028
mov eax, dword [ebp - 0x24]
add eax, esi
push edx
push eax
mov eax, dword [ebp - 0x48]
add eax, ecx
push eax
call fcn.00609db0
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x18], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x64], xmm0
test eax, eax
je 0x59a046
mov edx, dword [eax + 4]
jmp 0x59a048
xor edx, edx
sub edx, edi
test eax, eax
je 0x59a053
mov eax, dword [eax + 0xc]
jmp 0x59a058
mov eax, 0x651f68
lea ecx, [eax + edi]
push 0
lea eax, [ebp - 0x18]
push eax
push edx
lea edx, [ebp - 0x64]
call fcn.005a4920
add esp, 0xc
test al, al
jne 0x59a099
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x59a07d
mov eax, dword [eax + 0xc]
jmp 0x59a082
mov eax, 0x651f68
lea ecx, [eax + edi]
push 0
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x18]
lea edx, [ebp - 0x64]
call fcn.005a4920
add esp, 0xc
mov esi, dword [ebp - 0x60]
test esi, esi
jl 0x59a1da
mov ecx, dword [ebp - 0x64]
jg 0x59a0b1
test ecx, ecx
je 0x59a1da
mov eax, dword [ebp - 0x5c]
cdq
cmp esi, edx
jg 0x59a1da
jl 0x59a0c7
cmp ecx, eax
ja 0x59a1da
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + ecx*4 - 4]
test eax, eax
je 0x59a1c7
mov esi, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x10], eax
test esi, esi
jle 0x59a1c7
cmp byte [ebp - 0x28], 0
mov ecx, dword [ebp - 0x30]
je 0x59a1ac
lea edx, [ecx + esi]
cmp dword [ebp - 0x2c], edx
jae 0x59a193
lea eax, [edx + edx]
cmp eax, 0x7fffffff
jbe 0x59a119
cmp edx, 0x7fffffff
jae 0x59a119
mov eax, bind
jmp 0x59a12c
cmp eax, 0x20
mov ebx, 0x20
cmovb eax, ebx
cmp eax, edx
jb 0x59a1c1
cmp eax, ecx
jb 0x59a1c1
cmp eax, esi
jb 0x59a1c1
push dword [ebp - 0x34]
lea ecx, [ebp - 0x78]
push eax
call fcn.0041aee0
mov ebx, dword [ebp - 0x74]
test ebx, ebx
jne 0x59a159
cmp dword [ebp - 0x6c], ebx
je 0x59a159
mov byte [ebp - 0x28], bl
jmp 0x59a184
push dword [ebp - 0x30]
mov byte [ebp - 0x28], 1
push dword [ebp - 0x48]
push ebx
call fcn.00609db0
mov eax, dword [ebp - 0x70]
lea ecx, [ebp - 0x44]
add esp, 0xc
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x78]
mov dword [ebp - 0x48], ebx
push eax
call fcn.0041ae10
mov ebx, dword [ebp - 0x74]
push ebx
call fcn.00606eda
mov ecx, dword [ebp - 0x30]
add esp, 4
mov eax, dword [ebp - 0x10]
cmp byte [ebp - 0x28], 0
je 0x59a1ac
push esi
push eax
mov eax, dword [ebp - 0x48]
add eax, ecx
push eax
call fcn.00609db0
mov ecx, dword [ebp - 0x30]
add esp, 0xc
mov ebx, dword [ebp - 0x18]
add ecx, esi
mov eax, dword [ebp - 0x20]
add ebx, edi
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x18], ebx
jmp 0x59a2bf
mov byte [ebp - 0x28], 0
jmp 0x59a1ac
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x30]
add ebx, edi
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], ebx
jmp 0x59a2bf
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], edi
test eax, eax
je 0x59a1f0
cmp ebx, dword [eax + 4]
jge 0x59a1f0
mov ecx, dword [eax + 0xc]
add ecx, ebx
jmp 0x59a1f5
mov ecx, 0x651f40
cmp byte [ebp - 0x28], 0
mov bl, byte [ecx]
mov ecx, dword [ebp - 0x30]
je 0x59a2b8
lea esi, [ecx + 1]
cmp dword [ebp - 0x2c], esi
jae 0x59a2a6
lea edx, [ecx*2 + 2]
cmp edx, 0x7fffffff
jbe 0x59a22e
cmp esi, 0x7fffffff
jae 0x59a22e
mov edx, bind
jmp 0x59a241
cmp edx, 0x20
mov edi, 0x20
cmovb edx, edi
cmp edx, esi
jb 0x59a2cc
cmp edx, ecx
jb 0x59a2cc
cmp edx, 1
jb 0x59a2cc
push dword [ebp - 0x34]
lea ecx, [ebp - 0x78]
push edx
call fcn.0041aee0
mov esi, dword [ebp - 0x74]
test esi, esi
jne 0x59a26c
cmp dword [ebp - 0x6c], esi
je 0x59a26c
mov byte [ebp - 0x28], 0
jmp 0x59a297
push dword [ebp - 0x30]
mov byte [ebp - 0x28], 1
push dword [ebp - 0x48]
push esi
call fcn.00609db0
mov eax, dword [ebp - 0x70]
lea ecx, [ebp - 0x44]
add esp, 0xc
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x78]
mov dword [ebp - 0x48], esi
push eax
call fcn.0041ae10
mov esi, dword [ebp - 0x74]
push esi
call fcn.00606eda
mov eax, dword [ebp - 0x20]
add esp, 4
mov ecx, dword [ebp - 0x30]
cmp byte [ebp - 0x28], 0
je 0x59a2b8
mov eax, dword [ebp - 0x48]
mov byte [ecx + eax], bl
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x30], ecx
test ebx, ebx
jns 0x599e40
jmp 0x59a3d3
mov byte [ebp - 0x28], 0
jmp 0x59a2b8
cmp eax, 0x20
mov edi, 0x20
cmovb eax, edi
cmp eax, edx
jb 0x59a386
cmp eax, ecx
jb 0x59a386
cmp eax, esi
jb 0x59a386
push dword [ebp - 0x34]
lea ecx, [ebp - 0x78]
push eax
call fcn.0041aee0
mov edi, dword [ebp - 0x74]
test edi, edi
jne 0x59a313
cmp dword [ebp - 0x6c], edi
je 0x59a313
mov byte [ebp - 0x28], 0
jmp 0x59a33e
push dword [ebp - 0x30]
mov byte [ebp - 0x28], 1
push dword [ebp - 0x48]
push edi
call fcn.00609db0
mov eax, dword [ebp - 0x70]
lea ecx, [ebp - 0x44]
add esp, 0xc
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x78]
mov dword [ebp - 0x48], edi
push eax
call fcn.0041ae10
mov edi, dword [ebp - 0x74]
push edi
call fcn.00606eda
mov al, byte [ebp - 0x28]
add esp, 4
mov ecx, dword [ebp - 0x30]
test al, al
je 0x59a364
mov eax, dword [ebp - 0x48]
push esi
add eax, ecx
push ebx
push eax
call fcn.00609db0
mov ecx, dword [ebp - 0x30]
add esp, 0xc
add ecx, esi
mov dword [ebp - 0x30], ecx
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x59a3d3
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x59a3d3
push ecx
call fcn.005a47b0
jmp 0x59a3d3
mov byte [ebp - 0x28], 0
jmp 0x59a364
mov ebx, dword [ebp - 0x5c]
xor esi, esi
test ebx, ebx
jle 0x59a3d3
test esi, esi
je 0x59a3ab
push 1
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x20
push eax
lea ecx, [ebp - 0x48]
call fcn.00426900
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x59a3bd
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0xc]
jmp 0x59a3c4
xor ecx, ecx
mov eax, 0x651f68
push ecx
push eax
lea ecx, [ebp - 0x48]
call fcn.00426900
inc esi
cmp esi, ebx
jl 0x59a395
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x48]
call fcn.00444780
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 8
push ecx
mov ecx, eax
call fcn.0041b040
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x59a409
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x59a409
push ecx
call fcn.005a47b0
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x50]
cmp ecx, esi
je 0x59a42c
mov dword [ebp - 0x1c], esi
xor esi, esi
test ecx, ecx
je 0x59a42c
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x59a42c
push ecx
call fcn.005a47b0
test esi, esi
je 0x59a442
or eax, 0xffffffff
lock xadd dword [esi], eax
dec eax
jne 0x59a442
push ecx
mov ecx, esi
call fcn.005a47b0
push ecx
push 0x651eaf
push 0x65cb1c
lea ecx, [ebp - 0x1c]
call fcn.00444680
push ecx
push 0x651cf8
push 0x65cb2c
lea ecx, [ebp - 0x1c]
call fcn.00444680
lea eax, [ebp - 0x1c]
push eax
push 0x6549c8
push 0x6a6e70
call fcn.0042abc0
push dword [ebp - 0x40]
mov dword [ebp - 0x44], vtable.CMaaPtr_char_.0
call fcn.00606eda
mov ecx, dword [ebp + 0x1010]
add esp, 0x10
mov edx, dword [ebp - 0x7c]
mov byte [edx], 1
mov edx, dword [ebp - 0x1c]
test edx, edx
je 0x59a4b8
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
jne 0x59a4b2
push ecx
mov ecx, edx
call fcn.005a47b0
mov ecx, dword [ebp + 0x1010]
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x59a4d7
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
jne 0x59a4d1
push ecx
mov ecx, edx
call fcn.005a47b0
mov ecx, dword [ebp + 0x1010]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x59a511
push fcn.004250c0
lea esi, [eax - 4]
mov byte [ebp - 4], 9
push dword [esi]
push 4
push eax
call fcn.00606a86
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.00606ecc
mov ecx, dword [ebp + 0x1010]
add esp, 8
xor esi, esi
jmp 0x59a57a
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x59a565
mov edx, dword [ebp - 0x7c]
push dword [ebp - 0x50]
push dword [ebp + 0x102c]
push edx
push dword [ebp - 0x24]
push dword [ebp - 0x18]
push dword [ebp + 0x101c]
push dword [ebp - 0x54]
push dword [ebp - 0x4c]
push ecx
mov edx, esp
test ecx, ecx
je 0x59a54a
lock inc dword [ecx]
jmp 0x59a54c
xor ecx, ecx
push dword [ebp + 0x100c]
mov dword [edx], ecx
mov ecx, eax
call fcn.0059ace0
mov ecx, dword [ebp + 0x1010]
mov esi, eax
jmp 0x59a57a
mov eax, dword [ebp - 0x24]
mov esi, 1
mov dword [eax], 0xffffffff
mov dword [eax + 4], 0xffffffff
test ecx, ecx
je 0x59a58e
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x59a58e
push ecx
call fcn.005a47b0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x1000]
xor ecx, ebp
call fcn.00606a47
lea esp, [ebp + 0x1004]
pop ebp
ret 0x28