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

Disassembly:
push 0xffffffffffffffff
push 0x8750b2
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x8ce6f4]
xor eax, esp
push eax
lea eax, [esp + 0xbc]
mov dword fs:[0], eax
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 0xcc]
mov eax, dword [ebx + 0x60]
push ecx
sub eax, 0x10
mov dword [esp + 0x2c], esp
mov esi, esp
push eax
call fcn.004afcb0
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x6c]
add esp, 4
push eax
call fcn.0065c5b0
add esp, 8
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x4c]
mov dword [esp + 0xc8], 0
call fcn.004a8f10
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ab06f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0x4c]
call fcn.004d44d0
mov edi, eax
mov eax, dword [edi]
mov esi, dword [eax - 0xc]
mov byte [esp + 0xc4], 3
test esi, esi
jns 0x5ab09a
push 0x80070057
call fcn.004a8210
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, esi
or eax, ecx
jge 0x5ab0b3
push esi
mov ecx, edi
call fcn.004a8a90
mov eax, dword [edi]
lea edx, [esi + 1]
push edx
push eax
call fcn.00803997
mov eax, dword [edi]
add esp, 8
cmp esi, dword [eax - 8]
jg 0x5ab090
mov dword [eax - 0xc], esi
mov eax, dword [edi]
xor ecx, ecx
mov word [eax + esi*2], cx
mov edi, dword [edi]
push edi
lea ecx, [esp + 0x48]
call fcn.004b6720
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 5
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x5ab108
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x5ab122
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx - 0xc]
mov byte [esp + 0xc4], 6
test eax, eax
jne 0x5ab157
push 9
push 0x428fc4
lea ecx, [esp + 0x2c]
call fcn.004b1190
jmp 0x5ab182
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x40]
push eax
lea edx, [esp + 0x40]
push edx
push ecx
mov ecx, 0x8bace8
call fcn.005ec920
test eax, eax
je 0x5ab182
add eax, 4
push eax
lea ecx, [esp + 0x28]
call fcn.004b1400
mov ecx, dword [esp + 0xd0]
push 0x11
push 0x428fb0
call fcn.004b1190
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 0x2c]
push eax
mov byte [esp + 0x20], 0
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
mov ebp, dword [esp + 0xd4]
test eax, eax
je 0x5ab4a3
call fcn.007cff5d
xor ecx, ecx
xor esi, esi
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x5ab1d3
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x24]
push ecx
push ebp
lea edx, [esp + 0x1c]
push edx
push ebx
mov ecx, edi
mov byte [esp + 0xd4], 7
call fcn.005a99e0
mov byte [esp + 0x1c], al
test al, al
je 0x5ab470
push 0x428fac
push 0x42832c
lea ecx, [esp + 0x1c]
call fcn.00596a20
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], 0xa
push esi
push 0xa
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x28]
push edx
mov byte [esp + 0xd8], 8
call fcn.005a97c0
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
add esp, 0x14
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ab27b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x5ab3bc
xor ecx, ecx
mov edi, esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], 0xa
xor eax, eax
cmp esi, ecx
setne al
mov byte [esp + 0xc4], 9
cmp eax, ecx
je 0x5ab118
push 2
push 0x3a
mov eax, esi
mov esi, dword [esi]
lea ecx, [esp + 0x74]
push ecx
add eax, 8
push eax
lea edx, [esp + 0x28]
push edx
call fcn.00539660
add esp, 0x14
cmp dword [esp + 0x74], 2
mov byte [esp + 0xc4], 0xa
jb 0x5ab377
lea ecx, [esp + 0x18]
call fcn.00537720
mov ecx, eax
call fcn.00536630
mov ecx, eax
call fcn.00536520
mov ecx, dword [esp + 0x18]
push 0x411bbc
push ecx
call fcn.0080712e
add esp, 8
test eax, eax
sete al
test al, al
je 0x5ab352
mov eax, dword [esp + 0x70]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x5ab118
lea ecx, [eax + 8]
call fcn.00537720
mov ecx, eax
call fcn.00536630
push eax
lea ecx, [esp + 0x28]
call fcn.004b1400
jmp 0x5ab36d
mov edx, dword [esp + 0x18]
push 0x428a00
push edx
call fcn.0080712e
add esp, 8
test eax, eax
sete al
test al, al
je 0x5ab377
push edi
lea ecx, [esp + 0x50]
call fcn.005a8a00
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0xc4], 9
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ab39f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0xc4], 8
call fcn.004afe70
test esi, esi
jne 0x5ab287
mov edi, dword [esp + 0x20]
push 0x42832c
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.005a96e0
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xc8], 0xb
call fcn.004b1400
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ab40d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x42832c
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.0059f0f0
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
mov ecx, dword [esp + 0xd4]
push eax
mov byte [esp + 0xcc], 0xc
call fcn.004e74c0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ab467
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x4c]
call fcn.004afe70
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ab498
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x1c], 0
jne 0x5ab735
mov eax, dword [ebx + 0x60]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x40]
push edx
lea ecx, [esp + 0x40]
push ecx
push eax
mov ecx, 0x8bac88
call fcn.005ec920
test eax, eax
je 0x5ab7ca
mov ecx, dword [esp + 0xd0]
mov eax, dword [eax + 4]
lea edx, [esp + 0x24]
push edx
push ebp
push ecx
mov ecx, ebx
call eax
test al, al
je 0x5ab7ca
mov edx, dword [esp + 0x24]
cmp dword [edx - 0xc], 0
jne 0x5ab4fd
push 0x428fc4
lea ecx, [esp + 0x28]
call fcn.004b67c0
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x5ab517
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x40]
push eax
push 0x428fa4
lea ecx, [ebx + 0xa0]
mov byte [esp + 0xd4], 0xd
call fcn.005ec920
lea ecx, [esp + 0x14]
test eax, eax
je 0x5ab70b
add eax, 4
push eax
call fcn.004aa540
mov esi, dword [esp + 0x14]
cmp dword [esi - 0xc], 0
jne 0x5ab586
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x18]
mov word [esp + 0x20], 0x2f
call fcn.004b10a0
mov esi, dword [esp + 0x14]
push esi
lea ecx, [esp + 0x20]
call fcn.004b6720
push eax
lea eax, [esp + 0x1c]
push 0x428330
push eax
mov byte [esp + 0xd0], 0xe
call fcn.00537500
push 0x42832c
push eax
lea ecx, [esp + 0x34]
mov bl, 0xf
push ecx
mov byte [esp + 0xdc], bl
call fcn.0059f0f0
add esp, 0x18
mov ecx, dword [esp + 0xd0]
push eax
mov byte [esp + 0xc8], 0x10
call fcn.004b1400
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0xc4], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x5ab600
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0xe
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ab628
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ab650
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [esp + 0xc4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ab674
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ab69c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0xc4], 2
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ab6c4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
mov dword [esp + 0xc4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ab6ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0xbc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret 0xc
push ecx
push 0x428fa4
lea ecx, [ebx + 0xd0]
call fcn.0059f3e0
test al, al
jne 0x5ab563
lea ecx, [esp + 0x14]
mov byte [esp + 0xc4], 6
call fcn.004a8c20
xor edi, edi
mov ecx, dword [esp + 0x24]
push 0x428fc4
push ecx
call fcn.0080712e
add esp, 8
cmp eax, edi
sete al
test al, al
jne 0x5ab771
mov edx, dword [esp + 0x24]
push 0x428f94
push edx
call fcn.0080712e
add esp, 8
cmp eax, edi
sete al
test al, al
je 0x5ac694
cmp byte [esp + 0x1c], 0
jne 0x5ac694
mov eax, dword [esp + 0x24]
push 0x428fc4
push eax
call fcn.0080712e
add esp, 8
cmp eax, edi
sete al
test al, al
je 0x5ac60d
mov ecx, dword [esp + 0xd0]
push 0x428398
call fcn.0059f990
call fcn.007cff5d
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x5ab8cc
push 0x80004005
call fcn.004a8210
mov eax, dword [edi + 0x2c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
je 0x5ab81a
mov eax, dword [ebx + 0x60]
push ecx
mov dword [esp + 0x2c], esp
mov edi, esp
push ecx
sub eax, 0x10
mov dword [esp + 0x30], esp
mov esi, esp
push eax
call fcn.004afcb0
add esp, 4
add eax, 0x10
push edi
mov dword [esi], eax
call fcn.0065c5b0
mov ecx, dword [esp + 0x2c]
add esp, 8
push ebp
xor edi, edi
push edi
call fcn.005a9530
test al, al
jne 0x5ab735
jmp 0x5ab81c
xor edi, edi
mov eax, dword [ebx + 0x60]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x40]
push edx
lea ecx, [esp + 0x40]
push ecx
push eax
mov ecx, 0x8bacb8
call fcn.005ec920
cmp eax, edi
je 0x5ab886
mov esi, dword [eax + 4]
push 0x428a38
push ebp
push esi
call fcn.00536a40
add esp, 0xc
test al, al
jne 0x5ab866
push 0x410e28
push ebp
push esi
call fcn.00536a40
add esp, 0xc
test al, al
je 0x5ab886
mov edx, dword [esp + 0x24]
cmp dword [edx - 0xc], edi
jne 0x5ab737
push 0x428f78
lea ecx, [esp + 0x28]
call fcn.004b67c0
jmp 0x5ab737
mov eax, dword [esp + 0x24]
push 0x428fc4
push eax
call fcn.0080712e
add esp, 8
cmp eax, edi
sete al
mov edx, 0x428f40
test al, al
jne 0x5ab8ab
mov edx, 0x428f24
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5ab8b0
mov ecx, dword [esp + 0xd0]
sub eax, esi
push eax
push edx
call fcn.004b1190
jmp 0x5ab674
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x1c], esi
mov byte [esp + 0xc4], 0x11
call fcn.007c9a2f
mov eax, dword [eax + 4]
cmp byte [eax + 0x426], 0
je 0x5ac5dc
push 0x428f18
lea ecx, [esp + 0x20]
call fcn.0059f990
push 0x428f04
lea ecx, [esp + 0x20]
call fcn.0059f990
lea ecx, [esp + 0x18]
call fcn.005345e0
lea ecx, [esp + 0x20]
call fcn.005345e0
lea ebp, [ebx + 0x70]
mov ecx, ebp
mov byte [esp + 0xc4], 0x13
call fcn.004dc5a0
mov edi, eax
test edi, edi
je 0x5aba9b
mov bl, 0x16
xor eax, eax
test edi, edi
setne al
test eax, eax
je 0x5ab118
push edi
mov ecx, ebp
mov esi, edi
call fcn.004f0ae0
push esi
lea ecx, [esp + 0x1c]
mov edi, eax
call fcn.004b1400
add esi, 4
push esi
lea ecx, [esp + 0x24]
call fcn.004b1400
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x34]
push 0x428efc
push edx
call fcn.00537500
push 0x428ef4
push eax
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0xdc], 0x14
call fcn.0059f0f0
lea ecx, [esp + 0x38]
push ecx
push eax
lea edx, [esp + 0x60]
push edx
mov byte [esp + 0xe8], 0x15
call fcn.004f8490
push 0x42832c
push eax
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0xf4], bl
call fcn.0059f0f0
add esp, 0x30
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xcc], 0x17
call fcn.004e74c0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0xc4], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5aba14
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x15
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5aba3c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x14
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5aba64
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x13
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5aba8c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
jne 0x5ab945
mov ebx, dword [esp + 0xcc]
lea ecx, [esp + 0x20]
mov byte [esp + 0xc4], 0x12
call fcn.004a8c20
lea ecx, [ebx + 0x5c]
push ecx
lea edx, [esp + 0x30]
push 0x428eec
push edx
call fcn.00537500
push 0x42832c
push eax
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0xdc], 0x18
call fcn.0059f0f0
add esp, 0x18
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xcc], 0x19
call fcn.004e74c0
lea ecx, [esp + 0x30]
call fcn.004a8c20
lea ecx, [esp + 0x2c]
mov byte [esp + 0xc4], 0x12
call fcn.004a8c20
lea eax, [ebx + 0x60]
push eax
lea ecx, [esp + 0x30]
push 0x428ee4
push ecx
call fcn.00537500
push 0x42832c
push eax
lea edx, [esp + 0x44]
push edx
mov byte [esp + 0xdc], 0x1a
call fcn.0059f0f0
add esp, 0x18
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xcc], 0x1b
call fcn.004e74c0
lea ecx, [esp + 0x30]
call fcn.004a8c20
lea ecx, [esp + 0x2c]
mov byte [esp + 0xc4], 0x12
call fcn.004a8c20
lea eax, [ebx + 0x68]
push eax
lea ecx, [esp + 0x30]
push 0x428edc
push ecx
call fcn.00537500
push 0x42832c
push eax
lea edx, [esp + 0x44]
push edx
mov byte [esp + 0xdc], 0x1c
call fcn.0059f0f0
add esp, 0x18
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xcc], 0x1d
call fcn.004e74c0
lea ecx, [esp + 0x30]
call fcn.004a8c20
lea ecx, [esp + 0x2c]
call fcn.004a8c20
lea ecx, [esp + 0x14]
call fcn.005345e0
lea ebp, [ebx + 0xa0]
mov ecx, ebp
mov byte [esp + 0xc4], 0x1e
call fcn.004dc5a0
mov esi, eax
test esi, esi
je 0x5abe49
mov bl, 0x24
mov edi, edi
xor eax, eax
test esi, esi
setne al
test eax, eax
je 0x5ab118
push esi
mov ecx, ebp
mov edi, esi
call fcn.004f0ae0
push edi
lea ecx, [esp + 0x1c]
mov esi, eax
call fcn.004b1400
add edi, 4
push edi
lea ecx, [esp + 0x18]
call fcn.004aa540
mov eax, dword [esp + 0x14]
push 0x42832c
push 0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov edi, esp
push eax
call fcn.004a9b50
add eax, 0x10
mov dword [edi], eax
lea eax, [esp + 0x38]
add esp, 4
push eax
call fcn.0065c7f0
mov eax, dword [eax]
add esp, 4
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
push ecx
mov byte [esp + 0xd8], 0x1f
call fcn.005c5700
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.005cb750
add esp, 0xc
push eax
mov eax, dword [esp + 0x20]
push 0x428ef4
push 0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x48], esp
mov edi, esp
push eax
mov byte [esp + 0xdc], 0x20
call fcn.004afcb0
add eax, 0x10
mov dword [edi], eax
lea eax, [esp + 0x50]
add esp, 4
push eax
call fcn.005cb750
push eax
lea ecx, [esp + 0x3c]
push 0x428ed4
push ecx
mov byte [esp + 0xe8], 0x21
call fcn.00537500
add esp, 0x18
push eax
lea edx, [esp + 0x50]
push edx
mov byte [esp + 0xd8], 0x22
call fcn.0059f0f0
add esp, 0xc
push eax
lea eax, [esp + 0x38]
push eax
mov byte [esp + 0xd4], 0x23
call fcn.004f8490
add esp, 0xc
push eax
lea ecx, [esp + 0x38]
push ecx
mov byte [esp + 0xd0], bl
call fcn.0059f0f0
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xcc], 0x25
call fcn.004e74c0
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0xc4], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x5abd4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x23
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5abd72
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x22
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5abd9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x21
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5abdc2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x20
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5abdea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x1f
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5abe12
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x1e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5abe3a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
jne 0x5abbf0
mov ebx, dword [esp + 0xcc]
lea ebp, [ebx + 0xd0]
mov ecx, ebp
call fcn.004dc5a0
mov edi, eax
test edi, edi
je 0x5ac0bb
mov bl, 0x2b
xor eax, eax
test edi, edi
setne al
test eax, eax
je 0x5ab118
push edi
mov ecx, ebp
mov esi, edi
call fcn.004f0ae0
push esi
lea ecx, [esp + 0x1c]
mov edi, eax
call fcn.004b1400
add esi, 4
push esi
lea ecx, [esp + 0x18]
call fcn.004aa540
mov eax, dword [esp + 0x14]
push 0x42832c
push 0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
call fcn.004a9b50
lea ecx, [esp + 0x30]
add esp, 4
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.0065c7f0
mov eax, dword [eax]
add esp, 4
mov edx, esp
mov dword [esp + 0x40], esp
push eax
push edx
mov byte [esp + 0xd8], 0x26
call fcn.005c5700
lea eax, [esp + 0x54]
add esp, 8
push eax
call fcn.005cb750
add esp, 0xc
push eax
mov eax, dword [esp + 0x20]
push 0x428ef4
push 0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x48], esp
mov esi, esp
push eax
mov byte [esp + 0xdc], 0x27
call fcn.004afcb0
lea ecx, [esp + 0x44]
add esp, 4
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.005cb750
push eax
lea edx, [esp + 0x4c]
push 0x428ecc
push edx
mov byte [esp + 0xe8], 0x28
call fcn.00537500
add esp, 0x18
push eax
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0xd8], 0x29
call fcn.0059f0f0
add esp, 0xc
push eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0xd4], 0x2a
call fcn.004f8490
add esp, 0xc
push eax
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0xd0], bl
call fcn.0059f0f0
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xcc], 0x2c
call fcn.004e74c0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0xc4], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5abfbc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x2a
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5abfe4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x29
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac00c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x28
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac034
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x27
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac05c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x26
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac084
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x1e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac0ac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
jne 0x5abe62
mov ebx, dword [esp + 0xcc]
lea ebp, [ebx + 0x100]
mov ecx, ebp
call fcn.004dc5a0
mov edi, eax
test edi, edi
je 0x5ac32d
mov bl, 0x32
xor eax, eax
test edi, edi
setne al
test eax, eax
je 0x5ab118
push edi
mov ecx, ebp
mov esi, edi
call fcn.004f0ae0
push esi
lea ecx, [esp + 0x1c]
mov edi, eax
call fcn.004b1400
add esi, 4
push esi
lea ecx, [esp + 0x18]
call fcn.004aa540
mov eax, dword [esp + 0x14]
push 0x42832c
push 0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
call fcn.004a9b50
lea ecx, [esp + 0x30]
add esp, 4
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.0065c7f0
mov eax, dword [eax]
add esp, 4
mov edx, esp
mov dword [esp + 0x40], esp
push eax
push edx
mov byte [esp + 0xd8], 0x2d
call fcn.005c5700
lea eax, [esp + 0x54]
add esp, 8
push eax
call fcn.005cb750
add esp, 0xc
push eax
mov eax, dword [esp + 0x20]
push 0x428ef4
push 0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x48], esp
mov esi, esp
push eax
mov byte [esp + 0xdc], 0x2e
call fcn.004afcb0
lea ecx, [esp + 0x44]
add esp, 4
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.005cb750
push eax
lea edx, [esp + 0x4c]
push 0x428ec4
push edx
mov byte [esp + 0xe8], 0x2f
call fcn.00537500
add esp, 0x18
push eax
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0xd8], 0x30
call fcn.0059f0f0
add esp, 0xc
push eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0xd4], 0x31
call fcn.004f8490
add esp, 0xc
push eax
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0xd0], bl
call fcn.0059f0f0
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xcc], 0x33
call fcn.004e74c0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0xc4], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac22e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x31
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac256
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x30
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac27e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x2f
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac2a6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x2e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac2ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x2d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac2f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x1e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac31e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
jne 0x5ac0d4
mov ebx, dword [esp + 0xcc]
lea ebp, [ebx + 0x130]
mov ecx, ebp
call fcn.004dc5a0
mov edi, eax
test edi, edi
je 0x5ac59f
mov bl, 0x39
xor eax, eax
test edi, edi
setne al
test eax, eax
je 0x5ab118
push edi
mov ecx, ebp
mov esi, edi
call fcn.004f0ae0
push esi
lea ecx, [esp + 0x1c]
mov edi, eax
call fcn.004b1400
add esi, 4
push esi
lea ecx, [esp + 0x18]
call fcn.004aa540
mov eax, dword [esp + 0x14]
push 0x42832c
push 0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
call fcn.004a9b50
lea ecx, [esp + 0x30]
add esp, 4
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.0065c7f0
mov eax, dword [eax]
add esp, 4
mov edx, esp
mov dword [esp + 0x40], esp
push eax
push edx
mov byte [esp + 0xd8], 0x34
call fcn.005c5700
lea eax, [esp + 0x54]
add esp, 8
push eax
call fcn.005cb750
add esp, 0xc
push eax
mov eax, dword [esp + 0x20]
push 0x428ef4
push 0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x48], esp
mov esi, esp
push eax
mov byte [esp + 0xdc], 0x35
call fcn.004afcb0
lea ecx, [esp + 0x44]
add esp, 4
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.005cb750
push eax
lea edx, [esp + 0x4c]
push 0x428eb8
push edx
mov byte [esp + 0xe8], 0x36
call fcn.00537500
add esp, 0x18
push eax
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0xd8], 0x37
call fcn.0059f0f0
add esp, 0xc
push eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0xd4], 0x38
call fcn.004f8490
add esp, 0xc
push eax
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0xd0], bl
call fcn.0059f0f0
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xcc], 0x3a
call fcn.004e74c0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0xc4], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac4a0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x38
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac4c8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x37
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac4f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x36
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac518
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x35
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac540
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac568
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 0x1e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac590
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
jne 0x5ac346
mov ebx, dword [esp + 0xcc]
lea ecx, [esp + 0x14]
mov byte [esp + 0xc4], 0x12
call fcn.004a8c20
push 0x428eb0
lea ecx, [esp + 0x20]
call fcn.0059f990
lea ecx, [esp + 0x18]
mov byte [esp + 0xc4], 0x11
call fcn.004a8c20
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0xd4]
xor edi, edi
push esi
push 0x428ea8
mov ecx, ebp
call fcn.00596a20
lea eax, [esi - 0x10]
mov byte [esp + 0xc4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac60d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x428e98
push 0x428e88
mov ecx, ebp
call fcn.00596a20
push 0x428e78
push 0x428e68
mov ecx, ebp
call fcn.00596a20
push 0x428e58
push 0x428e48
mov ecx, ebp
call fcn.00596a20
push 0x428e3c
push 0x428e30
mov ecx, ebp
call fcn.00596a20
mov eax, dword [ebx + 0x60]
push eax
push 0x428e28
mov ecx, ebp
call fcn.00596a20
push 0x428378
push 0x428e18
mov ecx, ebp
call fcn.00596a20
push 0x428360
push 0x428e04
mov ecx, ebp
call fcn.00596a20
push 0x42837c
push 0x428df8
mov ecx, ebp
call fcn.00596a20
call fcn.007c9a2f
mov eax, dword [eax + 4]
cmp byte [eax + 0x424], 0
je 0x5ac936
mov ecx, dword [ebp]
cmp dword [ecx - 0xc], edi
je 0x5ac936
mov esi, dword [esp + 0xd0]
mov eax, dword [esi]
cmp dword [eax - 0xc], edi
jl 0x5ac6dd
push 0x428de4
push eax
call fcn.00807018
add esp, 8
cmp eax, edi
je 0x5ac6dd
sub eax, dword [esi]
jns 0x5ac936
lea edx, [esp + 0x44]
push 0x428ddc
push edx
call fcn.005a8530
add esp, 8
test al, al
je 0x5ac936
lea eax, [esp + 0x44]
push 0x428dd4
push eax
call fcn.005a8530
add esp, 8
test al, al
je 0x5ac936
lea ecx, [esp + 0x44]
push 0x428dcc
push ecx
call fcn.005a8530
add esp, 8
test al, al
je 0x5ac936
lea ecx, [esp + 0x14]
call fcn.005345e0
lea edx, [esp + 0x14]
push edx
push 0x428dbc
lea ecx, [ebx + 0x70]
mov byte [esp + 0xcc], 0x3b
call fcn.0059f3a0
lea ecx, [esp + 0x14]
call fcn.00536520
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], 0xa
push edi
push 0x2c
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x38]
push edx
mov byte [esp + 0xd8], 0x3c
call fcn.005a97c0
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
add esp, 0x14
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac7b5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x428db4
lea ecx, [esp + 0x1c]
call fcn.0050c640
push edi
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x54]
call fcn.005a8610
test eax, eax
mov eax, dword [esp + 0x18]
sete bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x5ac7f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
jne 0x5ac91c
push 0x38
push 0x428dac
push edi
push 8
push 0x1f
push 8
lea ecx, [esp + 0x9c]
push 0xffffffffffffffff
push ecx
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], edi
call fcn.005f29f0
add esp, 0x20
cmp eax, edi
jne 0x5ac91c
mov edx, dword [ebp]
mov esi, dword [edx - 0xc]
push esi
call fcn.007c8558
mov edi, eax
mov eax, dword [ebp]
mov ecx, dword [eax - 0xc]
lea edx, [esp + 0x88]
push 4
push edx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], eax
mov dword [esp + 0xa0], esi
mov dword [esp + 0x9c], edi
call fcn.005f21a0
add esp, 0xc
cmp eax, 1
jne 0x5ac906
cmp dword [esp + 0x88], 0
jne 0x5ac906
sub esi, dword [esp + 0x94]
mov ecx, ebp
push esi
push edi
push esi
call fcn.00536410
push eax
call fcn.008030c0
lea eax, [esp + 0x90]
push eax
call fcn.005f0de0
push edi
call fcn.007c8563
mov ecx, dword [esp + 0xe4]
add esp, 0x14
push 0x428d90
call fcn.0059f990
lea ecx, [esp + 0x4c]
call fcn.004afe70
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0xc4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ac936
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x5ac936
lea ecx, [esp + 0x84]
push ecx
call fcn.005f0de0
push edi
call fcn.007c8563
add esp, 8
lea ecx, [esp + 0x4c]
call fcn.004afe70
lea ecx, [esp + 0x14]
mov byte [esp + 0xc4], 6
call fcn.004a8c20
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x5ac950
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov ecx, dword [ebp]
mov eax, dword [ecx - 0xc]
mov edx, dword [esp + 0x24]
push eax
push edx
lea eax, [esp + 0x28]
push 0x428d68
push eax
mov byte [esp + 0xd4], 0x3d
call fcn.004e76b0
mov esi, dword [esp + 0x30]
mov eax, dword [esi - 0xc]
mov ecx, dword [esp + 0xe0]
add esp, 0x10
push eax
push esi
call fcn.004e74c0
add esi, 0xfffffff0
mov byte [esp + 0xc4], 6
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5ab674
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x5ab674