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

Disassembly:
push 0xffffffffffffffff
push 0x515ef5
mov eax, dword fs:[0]
push eax
sub esp, 0x1b0
mov eax, dword [0x549950]
xor eax, esp
mov dword [esp + 0x1a8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x549950]
xor eax, esp
push eax
lea eax, [esp + 0x1c4]
mov dword fs:[0], eax
mov eax, dword [esp + 0x1d4]
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x1cc], ebx
lea eax, [edi + 0xc]
mov dword [esp + 0x80], eax
cmp eax, ebx
je 0x4bc5d4
mov eax, dword [eax]
cmp eax, ebx
je 0x4bc5d4
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x1cc], 2
call fcn.004c01dc
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4bc5f6
push 0x80004005
call fcn.00401ff0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x1cc], 3
call fcn.004c01dc
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4bc628
push 0x80004005
call fcn.00401ff0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1cc], 4
call fcn.004c01dc
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4bc65a
push 0x80004005
call fcn.00401ff0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x1cc], 5
call fcn.004c01dc
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4bc68c
push 0x80004005
call fcn.00401ff0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0x1cc], 6
call fcn.004c01dc
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4bc6be
push 0x80004005
call fcn.00401ff0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x4c], eax
mov byte [esp + 0x1cc], 7
mov eax, dword [edi + 0x18]
xor esi, esi
cmp eax, ebx
mov dword [esp + 0x40], esi
mov dword [esp + 0x14], ebx
jle 0x4bca08
jmp 0x4bc6f0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
test ebp, ebp
jne 0x4bc75c
cmp dword [esi + 0x18], ebp
jle 0x4bca46
mov eax, dword [esi + 0x14]
add eax, 4
push eax
lea ecx, [esp + 0x28]
call fcn.00403060
cmp dword [esi + 0x18], ebp
jle 0x4bca46
mov eax, dword [esi + 0x14]
add eax, 8
push eax
lea ecx, [esp + 0x2c]
call fcn.00403060
cmp dword [esi + 0x18], ebp
jle 0x4bca46
mov eax, dword [esi + 0x14]
add eax, 0xc
push eax
lea ecx, [esp + 0x50]
call fcn.00403060
cmp dword [esi + 0x18], ebp
jle 0x4bca46
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x40], ecx
test ebp, ebp
jl 0x4bca46
cmp ebp, dword [esi + 0x18]
jge 0x4bca46
mov eax, dword [esi + 0x14]
mov edx, dword [esp + 0x24]
lea ebp, [ebp + ebp*2]
add ebp, ebp
add ebp, ebp
add ebp, ebp
xor ecx, ecx
add eax, ebp
test edx, edx
setne cl
test ecx, ecx
je 0x4bc5ec
mov eax, dword [eax + 4]
mov ecx, edx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4bc7b8
test dx, dx
je 0x4bc7b4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4bc7b8
add eax, 4
add ecx, 4
test dx, dx
jne 0x4bc792
xor eax, eax
jmp 0x4bc7bd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x4bc9ea
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
cmp edx, dword [eax + 0x18]
jge 0x4bca46
mov eax, dword [eax + 0x14]
add eax, ebp
mov eax, dword [eax + 8]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4bc5ec
mov ecx, eax
mov eax, dword [esp + 0x28]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4bc81e
test dx, dx
je 0x4bc81a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4bc81e
add eax, 4
add ecx, 4
test dx, dx
jne 0x4bc7f8
xor eax, eax
jmp 0x4bc823
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x4bc9ea
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
cmp ecx, dword [eax + 0x18]
jge 0x4bca46
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0x40]
add eax, ebp
cmp edx, dword [eax + 0x10]
jne 0x4bc9ea
mov esi, dword [esp + 0x2c]
mov ebx, ecx
cmp ebx, dword [esi + 0x18]
jge 0x4bca46
mov eax, dword [esi + 0x14]
add eax, ebp
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00403680
lea edi, [eax + 0x10]
add esp, 4
mov dword [esp + 0x20], edi
mov byte [esp + 0x1cc], 8
mov eax, dword [esp + 0x28]
cmp dword [eax - 0xc], 0
je 0x4bc8c1
push 1
push 0x534a14
lea ecx, [esp + 0x28]
call fcn.004030e0
cmp ebx, dword [esi + 0x18]
jge 0x4bca46
mov eax, dword [esi + 0x14]
add eax, ebp
mov eax, dword [eax + 8]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.004030e0
mov edi, dword [esp + 0x20]
cmp ebx, dword [esi + 0x18]
jge 0x4bca46
mov eax, dword [esi + 0x14]
add eax, ebp
cmp dword [eax + 0x14], 0
je 0x4bc948
push 0
push ecx
lea esi, [edi - 0x10]
mov dword [esp + 0x3c], esp
mov ebx, esp
push esi
call fcn.00403680
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x1d8], 9
mov ecx, esp
mov dword [esp + 0x48], esp
push str.stat
call fcn.00402480
mov byte [esp + 0x1d8], 8
call fcn.004bc260
cmp eax, 1
jne 0x4bc940
mov byte [esp + 0x1cc], 7
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bc9ea
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x4bc9ea
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
cmp ebx, dword [esi + 0x18]
jge 0x4bca46
mov eax, dword [esi + 0x14]
add eax, ebp
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x24]
call fcn.004030e0
push 1
push 0x522768
lea ecx, [esp + 0x24]
call fcn.004030e0
cmp ebx, dword [esi + 0x18]
jge 0x4bca46
mov esi, dword [esi + 0x14]
add esi, ebp
cmp dword [esi + 0x14], 0
je 0x4bc9c6
push 1
push ecx
lea eax, [edi - 0x10]
mov dword [esp + 0x3c], esp
mov esi, esp
push eax
call fcn.00403680
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x1d8], 0xa
mov ecx, esp
mov dword [esp + 0x48], esp
push str.stat
call fcn.00402480
mov byte [esp + 0x1d8], 8
call fcn.004bc090
lea eax, [edi - 0x10]
mov byte [esp + 0x1cc], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bc9ea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
inc eax
cmp eax, dword [ecx + 0x18]
mov dword [esp + 0x14], eax
jl 0x4bc6f0
mov esi, dword [esp + 0x40]
mov edi, ecx
xor ebx, ebx
push 1
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x24]
call fcn.00402780
mov eax, dword [eax]
mov ecx, 0x522768
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4bca4b
cmp dx, bx
je 0x4bca42
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4bca4b
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x4bca20
xor eax, eax
jmp 0x4bca50
call fcn.004c0ab7
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
mov eax, dword [esp + 0x30]
sete bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bca75
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x4bcaca
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx - 0xc]
dec eax
push eax
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x24]
call fcn.00402800
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1d0], 0xb
call fcn.00403060
mov byte [esp + 0x1cc], 7
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bcaca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi + 0x18]
lea ebp, [eax - 1]
test ebp, ebp
jl 0x4bcbd3
lea ebx, [ebp + ebp*2]
add ebx, ebx
add ebx, ebx
add ebx, ebx
lea esi, [edi + 0x10]
test ebp, ebp
jl 0x4bca46
cmp ebp, dword [esi + 8]
jge 0x4bca46
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x24]
xor ecx, ecx
add eax, ebx
test edx, edx
setne cl
test ecx, ecx
je 0x4bc5ec
mov eax, dword [eax + 4]
mov ecx, edx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4bcb39
test dx, dx
je 0x4bcb35
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4bcb39
add eax, 4
add ecx, 4
test dx, dx
jne 0x4bcb13
xor eax, eax
jmp 0x4bcb3e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x4bcbc3
cmp ebp, dword [esi + 8]
jge 0x4bca46
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x28]
xor ecx, ecx
add eax, ebx
test edx, edx
setne cl
test ecx, ecx
je 0x4bc5ec
mov eax, dword [eax + 8]
mov ecx, edx
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4bcb96
test dx, dx
je 0x4bcb92
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4bcb96
add eax, 4
add ecx, 4
test dx, dx
jne 0x4bcb70
xor eax, eax
jmp 0x4bcb9b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x4bcbc3
cmp ebp, dword [esi + 8]
jge 0x4bca46
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x40]
add eax, ebx
cmp ecx, dword [eax + 0x10]
jne 0x4bcbc3
push esi
mov eax, ebp
call fcn.004be0c0
dec ebp
sub ebx, 0x18
test ebp, ebp
jge 0x4bcaed
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
cmp dword [edx - 0xc], 0
jne 0x4bcd8a
mov esi, dword [esp + 0x18]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x4bcc0c
cmp eax, dword [esi]
jne 0x4bcc0c
mov ebx, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x4bcc48
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
jne 0x4bcc25
call fcn.00403620
mov eax, dword [esi + 4]
mov dword [ebx + 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, [ebx + 0x10]
push ecx
call fcn.004df614
add esp, 0x10
mov edi, dword [esp + 0x78]
mov byte [esp + 0x1cc], 6
mov eax, dword [esp + 0x4c]
add ebx, 0x10
add eax, 0xfffffff0
mov dword [edi], ebx
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4bcc79
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 5
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bcca1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 4
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bccc9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 3
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bccf1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 2
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bcd12
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [esp + 0x80]
test eax, eax
je 0x4bcd2a
mov eax, dword [eax]
test eax, eax
je 0x4bcd2a
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [esp + 0x1cc], 0
mov eax, dword [esp + 0x1d8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bcd55
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x1cc], 0xffffffff
mov eax, dword [esp + 0x1dc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bcd83
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
jmp 0x4bdea3
push 0x534a18
lea ecx, [esp + 0x5c]
call fcn.00402480
mov byte [esp + 0x1cc], 0xc
call fcn.004c01dc
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4bcdba
push 0x80004005
call fcn.00401ff0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
push 0
mov byte [esp + 0x1d0], 0xd
call fcn.004e283f
add esp, 4
push edx
push eax
lea ecx, [esp + 0x1c]
push 0x52275c
push ecx
call fcn.004039c0
add esp, 0x10
call fcn.004c01dc
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4bce0a
push 0x80004005
call fcn.00401ff0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov byte [esp + 0x1cc], 0xe
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x4bd010
lea edx, [esp + 0x1d8]
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x44]
push ecx
call fcn.004028b0
add esp, 0xc
lea edx, [esp + 0x1dc]
push edx
push eax
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x1d8], 0xf
call fcn.004028b0
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
push eax
lea edx, [esp + 0x50]
push edx
mov byte [esp + 0x1d8], 0x10
call fcn.004028b0
add esp, 0xc
lea ecx, [edi + 0x24]
push ecx
push eax
lea edx, [esp + 0x5c]
push edx
mov byte [esp + 0x1d8], 0x11
call fcn.004028b0
add esp, 0xc
lea ecx, [esp + 0x14]
push ecx
push eax
lea edx, [esp + 0x4c]
push edx
mov byte [esp + 0x1d8], 0x12
call fcn.004028b0
add esp, 0xc
lea ecx, [esp + 0x58]
push ecx
push eax
lea edx, [esp + 0x28]
push edx
mov byte [esp + 0x1d8], 0x13
call fcn.004028b0
add esp, 8
mov bl, 0x14
mov ecx, esp
mov byte [esp + 0x1d0], bl
mov dword [esp + 0x38], esp
lea edx, [esp + 0x2c]
push edx
push eax
push ecx
call fcn.004028b0
add esp, 0xc
lea ecx, [esp + 0x34]
call fcn.004bb130
add esp, 4
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1d0], 0x15
call fcn.00403060
mov byte [esp + 0x1cc], bl
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bcf37
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x13
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bcf5f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x12
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bcf87
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x11
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bcfaf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x10
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bcfd7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0xf
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bcfff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0xe
mov eax, dword [esp + 0x3c]
jmp 0x4bd401
test esi, esi
jle 0x4bd267
call fcn.004c01dc
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4bd032
push 0x80004005
call fcn.00401ff0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
push esi
lea ecx, [esp + 0x24]
push 0x52275c
push ecx
mov byte [esp + 0x1d8], 0x16
call fcn.004039c0
add esp, 0xc
lea edx, [esp + 0x1d8]
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.004028b0
add esp, 0xc
lea edx, [esp + 0x1dc]
push edx
push eax
lea eax, [esp + 0x38]
push eax
mov byte [esp + 0x1d8], 0x17
call fcn.004028b0
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
push eax
lea edx, [esp + 0x4c]
push edx
mov byte [esp + 0x1d8], 0x18
call fcn.004028b0
add esp, 0xc
lea ecx, [edi + 0x24]
push ecx
push eax
lea edx, [esp + 0x5c]
push edx
mov byte [esp + 0x1d8], 0x19
call fcn.004028b0
add esp, 0xc
lea ecx, [esp + 0x14]
push ecx
push eax
lea edx, [esp + 0x50]
push edx
mov byte [esp + 0x1d8], 0x1a
call fcn.004028b0
add esp, 0xc
lea ecx, [esp + 0x58]
push ecx
push eax
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x1d8], 0x1b
call fcn.004028b0
add esp, 8
mov ecx, esp
mov dword [esp + 0x88], esp
lea edx, [esp + 0x24]
push edx
push eax
mov bl, 0x1c
push ecx
mov byte [esp + 0x1dc], bl
call fcn.004028b0
add esp, 0xc
lea ecx, [esp + 0x40]
call fcn.004bb130
add esp, 4
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1d0], 0x1d
call fcn.00403060
mov byte [esp + 0x1cc], bl
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd166
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x1b
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd18e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x1a
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd1b6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x19
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd1de
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x18
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd206
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x17
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd22e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x16
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd256
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0xe
mov eax, dword [esp + 0x20]
jmp 0x4bd401
lea ecx, [esp + 0x1d8]
push ecx
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x4c]
push eax
call fcn.004028b0
add esp, 0xc
lea ecx, [esp + 0x1dc]
push ecx
push eax
lea edx, [esp + 0x5c]
push edx
mov byte [esp + 0x1d8], 0x1e
call fcn.004028b0
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
push eax
lea edx, [esp + 0x50]
push edx
mov byte [esp + 0x1d8], 0x1f
call fcn.004028b0
add esp, 0xc
lea ecx, [edi + 0x24]
push ecx
push eax
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x1d8], 0x20
call fcn.004028b0
add esp, 0xc
lea ecx, [esp + 0x14]
push ecx
push eax
lea edx, [esp + 0x44]
push edx
mov byte [esp + 0x1d8], 0x21
call fcn.004028b0
add esp, 8
mov ecx, esp
mov dword [esp + 0x88], esp
lea edx, [esp + 0x5c]
push edx
push eax
mov bl, 0x22
push ecx
mov byte [esp + 0x1dc], bl
call fcn.004028b0
add esp, 0xc
lea ecx, [esp + 0x38]
call fcn.004bb130
add esp, 4
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1d0], 0x23
call fcn.00403060
mov byte [esp + 0x1cc], bl
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd355
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x21
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd37d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x20
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd3a5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x1f
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd3cd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0x1e
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd3f5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0xe
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bd41d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x28]
cmp dword [ecx - 0xc], 0
je 0x4bd611
mov eax, dword [esp + 0x4c]
xor edx, edx
mov word [esp + 0xb4], dx
mov dword [esp + 0xc8], 7
mov dword [esp + 0xc4], 0
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4bd452
sub eax, edx
sar eax, 1
push eax
mov eax, dword [esp + 0x50]
push eax
lea ecx, [esp + 0xb8]
call fcn.00401740
lea ecx, [esp + 0x94]
push ecx
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1d0], 0x24
call fcn.004c003e
add esp, 4
mov esi, eax
mov byte [esp + 0x1cc], 0x25
mov ebx, dword [esp + 0x28]
xor ebp, ebp
xor edx, edx
mov eax, ebx
mov word [esp + 0x60], dx
mov dword [esp + 0x74], 7
mov dword [esp + 0x70], ebp
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x4bd4c0
sub eax, edx
sar eax, 1
push eax
push ebx
lea ecx, [esp + 0x64]
call fcn.00401740
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x60]
mov byte [esp + 0x1d0], 0x26
call fcn.004c003e
add esp, 4
mov ebx, 8
mov byte [esp + 0x1cc], 0x27
cmp dword [esi + 0x18], ebx
jb 0x4bd50d
mov esi, dword [esi + 4]
jmp 0x4bd510
add esi, 4
cmp dword [eax + 0x18], ebx
jb 0x4bd51a
mov eax, dword [eax + 4]
jmp 0x4bd51d
add eax, 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
push esi
push eax
mov eax, dword [edi + 0x28]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x1ec]
push eax
mov eax, dword [esp + 0x1ec]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
push eax
push ecx
lea edx, [esp + 0x3c]
push str.type_sfrom_sversion_skeys_ssn_scode_stime_sgkey_sgname_s
push edx
call fcn.004039c0
add esp, 0x2c
cmp dword [esp + 0xe4], ebx
jb 0x4bd572
mov eax, dword [esp + 0xd0]
push eax
call fcn.004c0153
add esp, 4
xor ecx, ecx
mov edi, 8
mov ebx, 7
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe0], ebp
mov word [esp + 0xd0], cx
cmp dword [esp + 0x74], edi
jb 0x4bd5a7
mov edx, dword [esp + 0x60]
push edx
call fcn.004c0153
add esp, 4
xor eax, eax
mov dword [esp + 0x74], ebx
mov dword [esp + 0x70], ebp
mov word [esp + 0x60], ax
cmp dword [esp + 0xac], edi
jb 0x4bd5cf
mov ecx, dword [esp + 0x98]
push ecx
call fcn.004c0153
add esp, 4
xor edx, edx
mov byte [esp + 0x1cc], 0xe
mov dword [esp + 0xac], ebx
mov dword [esp + 0xa8], ebp
mov word [esp + 0x98], dx
cmp dword [esp + 0xc8], edi
jb 0x4bd698
mov eax, dword [esp + 0xb4]
push eax
call fcn.004c0153
add esp, 4
jmp 0x4bd698
test esi, esi
jle 0x4bd652
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
mov eax, dword [edi + 0x28]
push esi
push ecx
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x1e8]
push eax
mov eax, dword [esp + 0x1e8]
push ecx
mov ecx, dword [esp + 0x38]
push edx
push eax
push ecx
lea edx, [esp + 0x38]
push str.type_sfrom_sversion_skeys_ssn_scode_stime_sarea_d
push edx
call fcn.004039c0
add esp, 0x28
jmp 0x4bd68c
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
mov edx, dword [edi + 0x28]
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x1e4]
push edx
mov edx, dword [esp + 0x1e4]
push eax
mov eax, dword [esp + 0x34]
push ecx
push edx
push eax
lea ecx, [esp + 0x34]
push str.type_sfrom_sversion_skeys_ssn_scode_stime_s
push ecx
call fcn.004039c0
add esp, 0x24
mov edi, 8
mov ebx, 7
xor ebp, ebp
xor edx, edx
mov word [esp + 0x60], dx
mov edx, dword [esp + 0x18]
mov eax, edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x70], ebp
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x4bd6b0
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x64]
call fcn.00401740
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x108]
mov byte [esp + 0x1d0], 0x28
call fcn.0049f7ea
add esp, 4
mov byte [esp + 0x1cc], 0x2a
cmp dword [esp + 0x74], edi
jb 0x4bd701
mov ecx, dword [esp + 0x60]
push ecx
call fcn.004c0153
add esp, 4
xor edx, edx
push 0x200
mov dword [esp + 0x78], ebx
mov dword [esp + 0x74], ebp
mov word [esp + 0x64], dx
mov dword [esp + 0x94], 0x200
call fcn.004c0124
add esp, 4
push 0x200
mov dword [esp + 0x8c], eax
call fcn.004c0124
add esp, 4
mov dword [esp + 0x8c], eax
mov byte [esp + 0x1cc], 0x2b
mov eax, dword [esp + 0x108]
mov edi, 0x10
cmp dword [esp + 0x11c], edi
jae 0x4bd767
lea eax, [esp + 0x108]
push eax
mov eax, dword [esp + 0x11c]
lea esi, [esp + 0x8c]
call fcn.004a1154
mov ecx, eax
mov dword [esp + 0x100], 0xf
mov dword [esp + 0xfc], ebp
mov byte [esp + 0xec], 0
lea esi, [ecx + 1]
lea ebx, [ebx]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4bd7a0
sub ecx, esi
push ecx
push eax
lea ecx, [esp + 0xf0]
call fcn.004014f0
mov byte [esp + 0x1cc], 0x2c
mov eax, dword [esp + 0xec]
cmp dword [esp + 0x100], edi
jae 0x4bd7d6
lea eax, [esp + 0xec]
lea ecx, [esp + 0x94]
call fcn.0049f7c4
mov esi, 8
mov byte [esp + 0x1cc], 0x2d
cmp dword [eax + 0x18], esi
jb 0x4bd7f9
mov eax, dword [eax + 4]
jmp 0x4bd7fc
add eax, 4
push eax
lea ecx, [esp + 0x80]
call fcn.00402480
mov byte [esp + 0x1cc], 0x2f
cmp dword [esp + 0xac], esi
jb 0x4bd82a
mov eax, dword [esp + 0x98]
push eax
call fcn.004c0153
add esp, 4
mov edx, dword [esp + 0x7c]
mov dword [esp + 0xac], ebx
mov ebx, dword [edx - 0xc]
xor ecx, ecx
mov dword [esp + 0xa8], ebp
mov word [esp + 0x98], cx
mov dword [esp + 0x30], ebx
call fcn.004c01dc
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x4bd867
push 0x80004005
call fcn.00401ff0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebp, [eax + 0x10]
mov dword [esp + 0x20], ebp
add ebx, 0xffffffff
mov byte [esp + 0x1cc], 0x30
js 0x4bd8e8
test ebx, ebx
jl 0x4bd930
mov eax, dword [esp + 0x7c]
cmp ebx, dword [eax - 0xc]
jg 0x4bd930
movzx ecx, word [eax + ebx*2]
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov dword [esp + 0x34], ecx
mov ecx, 1
sub ecx, dword [ebp - 4]
lea esi, [edi + 1]
sub eax, esi
or eax, ecx
jge 0x4bd8c6
push esi
lea ecx, [esp + 0x24]
call fcn.00403630
mov ebp, dword [esp + 0x20]
mov dx, word [esp + 0x34]
mov word [ebp + edi*2], dx
test esi, esi
jl 0x4bd930
cmp esi, dword [ebp - 8]
jg 0x4bd930
xor eax, eax
sub ebx, 1
mov dword [ebp - 0xc], esi
mov word [ebp + esi*2], ax
jns 0x4bd884
mov ecx, 0x1f
mov esi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
lea edi, [esp + 0x13c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor esi, esi
cmp dword [esp + 0x30], esi
jle 0x4bd986
xor eax, eax
jmp 0x4bd910
test esi, esi
jl 0x4bd930
cmp esi, dword [ebp - 0xc]
jg 0x4bd930
movzx ecx, word [ebp + esi*2]
cmp cx, word [esp + eax*2 + 0x13c]
je 0x4bd93a
inc eax
cmp eax, 0x3e
jl 0x4bd910
jmp 0x4bd97f
push 0x80070057
call fcn.00401ff0
cmp eax, 0x3d
jne 0x4bd942
or eax, 0xffffffff
mov edi, dword [ebp - 0xc]
cmp esi, edi
movzx ebx, word [esp + eax*2 + 0x13e]
jge 0x4bd930
cmp dword [ebp - 4], 1
jle 0x4bd967
mov ecx, edi
push ecx
lea ecx, [esp + 0x24]
call fcn.00403270
mov ebp, dword [esp + 0x20]
mov word [ebp + esi*2], bx
test edi, edi
jl 0x4bd930
cmp edi, dword [ebp - 8]
jg 0x4bd930
xor edx, edx
mov dword [ebp - 0xc], edi
mov word [ebp + edi*2], dx
inc esi
cmp esi, dword [esp + 0x30]
jl 0x4bd909
xor eax, eax
mov word [esp + 0x60], ax
mov eax, ebp
mov dword [esp + 0x74], 7
mov dword [esp + 0x70], 0
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4bd9a2
sub eax, edx
sar eax, 1
push eax
push ebp
lea ecx, [esp + 0x64]
call fcn.00401740
lea ecx, [esp + 0x120]
push ecx
lea ecx, [esp + 0x60]
mov byte [esp + 0x1d0], 0x31
call fcn.004c003e
add esp, 4
mov byte [esp + 0x1cc], 0x33
cmp dword [esp + 0x74], 8
jb 0x4bd9f4
mov edx, dword [esp + 0x60]
push edx
call fcn.004c0153
add esp, 4
mov ecx, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 0x74], 7
mov dword [esp + 0x70], 0
mov word [esp + 0x60], ax
cmp dword [ecx - 0xc], eax
je 0x4bdacb
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x38]
mov ebx, dword [esp + 0x18]
lea esi, [eax - 0x10]
add ebx, 0xfffffff0
cmp esi, ebx
je 0x4bdb33
cmp dword [ebx + 0xc], 0
jl 0x4bdac4
mov ecx, dword [esi]
cmp ecx, dword [ebx]
jne 0x4bdac4
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x4bda66
cmp eax, dword [esi]
jne 0x4bda66
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x4bdaa2
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
jne 0x4bda7f
call fcn.00403620
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 fcn.004df614
add esp, 0x10
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4bdabb
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add edi, 0x10
mov dword [esp + 0x18], edi
jmp 0x4bdb33
mov ecx, dword [eax - 0xc]
push ecx
push eax
jmp 0x4bdb2a
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
add esi, 0xfffffff0
cmp dword [esp + 0x40], 0
jle 0x4bdae2
mov ecx, dword [ecx + 0x3c]
jmp 0x4bdae5
mov ecx, dword [ecx + 0x34]
lea eax, [ecx - 0x10]
cmp eax, esi
je 0x4bdb33
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4bdb25
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4bdb25
push eax
call fcn.00403680
mov ebx, eax
or eax, 0xffffffff
add esp, 4
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4bdb1c
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x18], ebx
jmp 0x4bdb33
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00403570
cmp dword [esp + 0x138], 8
jb 0x4bdb4c
mov edx, dword [esp + 0x124]
test edx, edx
jne 0x4bdb53
xor eax, eax
jmp 0x4bdb6f
lea edx, [esp + 0x124]
mov eax, edx
lea esi, [eax + 2]
jmp 0x4bdb60
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4bdb60
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.004030e0
mov edi, dword [esp + 0x18]
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add edi, 0xfffffff0
call eax
lea ecx, [edi + 0xc]
xor ebx, ebx
cmp dword [ecx], ebx
jl 0x4bdba5
cmp eax, dword [edi]
jne 0x4bdba5
mov esi, edi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x4bdbe1
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
cmp esi, ebx
jne 0x4bdbbe
call fcn.00403620
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [edi + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [esi + 0x10]
push ecx
call fcn.004df614
add esp, 0x10
mov edx, dword [esp + 0x78]
add esi, 0x10
cmp dword [esp + 0x138], 8
mov dword [edx], esi
jb 0x4bdc04
mov eax, dword [esp + 0x124]
push eax
call fcn.004c0153
add esp, 4
xor ecx, ecx
add ebp, 0xfffffff0
mov dword [esp + 0x138], 7
mov dword [esp + 0x134], ebx
mov word [esp + 0x124], cx
mov byte [esp + 0x1cc], 0x2f
lea edx, [ebp + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x4bdc45
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
mov byte [esp + 0x1cc], 0x2c
mov eax, dword [esp + 0x7c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bdc6d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebp, 0x10
cmp dword [esp + 0x100], ebp
jb 0x4bdc8b
mov ecx, dword [esp + 0xec]
push ecx
call fcn.004c0153
add esp, 4
mov edx, dword [esp + 0x88]
mov esi, 0xf
push edx
mov dword [esp + 0x104], esi
mov dword [esp + 0x100], ebx
mov byte [esp + 0xf0], 0
call fcn.004c0153
mov eax, dword [esp + 0x90]
add esp, 4
push eax
call fcn.004c0153
add esp, 4
cmp dword [esp + 0x11c], ebp
jb 0x4bdcdf
mov ecx, dword [esp + 0x108]
push ecx
call fcn.004c0153
add esp, 4
mov byte [esp + 0x1cc], 0xd
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov dword [esp + 0x11c], esi
mov dword [esp + 0x118], ebx
mov byte [esp + 0x108], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4bdd1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 0xc
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bdd45
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 7
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bdd6d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 6
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bdd95
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 5
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bddbd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 4
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bdde5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 3
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bde0d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1cc], 2
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bde2e
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov eax, dword [esp + 0x80]
cmp eax, ebx
je 0x4bde46
mov eax, dword [eax]
cmp eax, ebx
je 0x4bde46
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [esp + 0x1cc], 0
mov eax, dword [esp + 0x1d8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bde71
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x1cc], 0xffffffff
mov eax, dword [esp + 0x1dc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4bde9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x1c4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1a8]
xor ecx, esp
call fcn.004df2ac
add esp, 0x1bc
ret 0xc