Function at 0x524150
Capabilities:
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55b9b8
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x5c2b80]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x14], ebx
xor eax, eax
mov dword [ebx + 0x14], 7
push 0xffffffffffffffff
push eax
push dword [ebp + 8]
mov dword [ebx + 0x10], 0
mov word [ebx], ax
call fcn.00477fe0
mov dword [ebp - 4], 0
xor eax, eax
push 0xffffffffffffffff
lea ecx, [ebx + 0x18]
mov dword [ecx + 0x14], 7
push eax
push dword [ebp + 0xc]
mov dword [ecx + 0x10], 0
mov word [ecx], ax
call fcn.00477fe0
mov byte [ebp - 4], 1
xor eax, eax
push 0xffffffffffffffff
lea ecx, [ebx + 0x30]
mov dword [ecx + 0x14], 7
push eax
push dword [ebp + 0x10]
mov dword [ecx + 0x10], 0
mov word [ecx], ax
call fcn.00477fe0
mov byte [ebp - 4], 2
lea edi, [ebx + 0x48]
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov byte [ebp - 4], 3
lea esi, [ebx + 0x54]
mov dword [ebp + 8], esi
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.0046ab70
mov dword [esi], eax
mov byte [ebp - 4], 8
xor eax, eax
mov dword [ebx + 0x70], 7
mov dword [ebx + 0x6c], 0
mov word [ebx + 0x5c], ax
mov byte [ebp - 4], 9
mov dword [ebx + 0x74], eax
mov dword [ebx + 0x78], eax
mov dword [ebx + 0x7c], eax
mov byte [ebp - 4], 0xa
lea esi, [ebx + 0x80]
mov dword [ebp + 8], esi
mov dword [esi], eax
mov dword [esi + 4], eax
call fcn.0051e5d0
mov dword [esi], eax
mov byte [ebp - 4], 0xf
mov ecx, 0x5a9400
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov esi, eax
mov byte [ebp - 4], 0x10
mov eax, dword [esi]
cmp dword [eax - 4], 1
jle 0x52428e
push dword [eax - 0xc]
mov ecx, esi
call fcn.00456d60
mov edx, dword [esi]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x5242bb
xor ecx, ecx
jmp 0x5242cf
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x5242c0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.00527560
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x20], 8
jb 0x5242fd
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
or esi, 0xffffffff
mov edx, dword [ebp + 8]
mov eax, esi
add edx, 0xfffffff0
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x524334
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a9420
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov ebx, eax
mov byte [ebp - 4], 0x13
mov ecx, dword [ebx]
cmp dword [ecx - 4], 1
jle 0x52435f
push dword [ecx - 0xc]
mov ecx, ebx
call fcn.00456d60
mov edx, dword [ebx]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x52438c
xor ecx, ecx
jmp 0x5243a0
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x524391
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.00527560
mov byte [ebp - 4], 0x13
cmp dword [ebp - 0x20], 8
jb 0x5243ce
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x524402
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a9440
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov ebx, eax
mov byte [ebp - 4], 0x16
mov ecx, dword [ebx]
cmp dword [ecx - 4], 1
jle 0x52442d
push dword [ecx - 0xc]
mov ecx, ebx
call fcn.00456d60
mov edx, dword [ebx]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x52445a
xor ecx, ecx
jmp 0x52446f
mov ecx, edx
lea ebx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x524460
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.00527560
mov byte [ebp - 4], 0x16
cmp dword [ebp - 0x20], 8
jb 0x52449d
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x5244d1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a9470
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov ebx, eax
mov byte [ebp - 4], 0x19
mov ecx, dword [ebx]
cmp dword [ecx - 4], 1
jle 0x5244fc
push dword [ecx - 0xc]
mov ecx, ebx
call fcn.00456d60
mov edx, dword [ebx]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x524529
xor ecx, ecx
jmp 0x52453f
mov ecx, edx
lea ebx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x524530
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.00527560
mov byte [ebp - 4], 0x19
cmp dword [ebp - 0x20], 8
jb 0x52456d
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x5245a1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a94a0
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov ebx, eax
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebx]
cmp dword [ecx - 4], 1
jle 0x5245cc
push dword [ecx - 0xc]
mov ecx, ebx
call fcn.00456d60
mov edx, dword [ebx]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x5245f9
xor ecx, ecx
jmp 0x52460f
mov ecx, edx
lea ebx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x524600
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x1d
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.00527560
mov byte [ebp - 4], 0x1c
cmp dword [ebp - 0x20], 8
jb 0x52463d
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x524671
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a94c0
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov ebx, eax
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebx]
cmp dword [ecx - 4], 1
jle 0x52469c
push dword [ecx - 0xc]
mov ecx, ebx
call fcn.00456d60
mov edx, dword [ebx]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x5246c9
xor ecx, ecx
jmp 0x5246df
mov ecx, edx
lea ebx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x5246d0
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x20
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.00527560
mov byte [ebp - 4], 0x1f
cmp dword [ebp - 0x20], 8
jb 0x52470d
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x524741
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a94e0
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov ebx, eax
mov byte [ebp - 4], 0x22
mov ecx, dword [ebx]
cmp dword [ecx - 4], 1
jle 0x52476c
push dword [ecx - 0xc]
mov ecx, ebx
call fcn.00456d60
mov edx, dword [ebx]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x524799
xor ecx, ecx
jmp 0x5247af
mov ecx, edx
lea ebx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x5247a0
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x23
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.00527560
mov byte [ebp - 4], 0x22
cmp dword [ebp - 0x20], 8
jb 0x5247dd
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x524811
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a9510
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov ebx, eax
mov byte [ebp - 4], 0x25
mov ecx, dword [ebx]
cmp dword [ecx - 4], 1
jle 0x52483c
push dword [ecx - 0xc]
mov ecx, ebx
call fcn.00456d60
mov edx, dword [ebx]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x524869
xor ecx, ecx
jmp 0x52487f
mov ecx, edx
lea ebx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x524870
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x26
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.00527560
mov byte [ebp - 4], 0x25
cmp dword [ebp - 0x20], 8
jb 0x5248ad
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x5248e1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a9530
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov ebx, eax
mov byte [ebp - 4], 0x28
mov ecx, dword [ebx]
cmp dword [ecx - 4], 1
jle 0x52490c
push dword [ecx - 0xc]
mov ecx, ebx
call fcn.00456d60
mov edx, dword [ebx]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x524939
xor ecx, ecx
jmp 0x52494f
mov ecx, edx
lea ebx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x524940
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x29
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.00527560
mov byte [ebp - 4], 0x28
cmp dword [ebp - 0x20], 8
jb 0x52497d
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x5249b1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a9550
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov ebx, eax
mov byte [ebp - 4], 0x2b
mov ecx, dword [ebx]
cmp dword [ecx - 4], 1
jle 0x5249dc
push dword [ecx - 0xc]
mov ecx, ebx
call fcn.00456d60
mov edx, dword [ebx]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x524a09
xor ecx, ecx
jmp 0x524a1f
mov ecx, edx
lea ebx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x524a10
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x2c
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.00527560
mov byte [ebp - 4], 0x2b
cmp dword [ebp - 0x20], 8
jb 0x524a4d
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x524a81
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a9570
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov ebx, eax
mov byte [ebp - 4], 0x2e
mov ecx, dword [ebx]
cmp dword [ecx - 4], 1
jle 0x524aac
push dword [ecx - 0xc]
mov ecx, ebx
call fcn.00456d60
mov edx, dword [ebx]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x524ad9
xor ecx, ecx
jmp 0x524aef
mov ecx, edx
lea ebx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x524ae0
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x2f
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.00527560
mov byte [ebp - 4], 0x2e
cmp dword [ebp - 0x20], 8
jb 0x524b1d
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x524b51
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a95a0
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov edi, eax
mov byte [ebp - 4], 0x31
mov ecx, dword [edi]
cmp dword [ecx - 4], 1
jle 0x524b7c
push dword [ecx - 0xc]
mov ecx, edi
call fcn.00456d60
mov edx, dword [edi]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x524ba9
xor ecx, ecx
jmp 0x524bbf
mov ecx, edx
lea edi, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x524bb0
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x32
movzx eax, byte [0x5cfdd4]
mov ebx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x34]
add ebx, 0x54
push eax
push ecx
lea eax, [ebp - 0x1c]
mov ecx, ebx
push eax
call fcn.00527f50
mov byte [ebp - 4], 0x31
cmp dword [ebp - 0x20], 8
jb 0x524c00
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x524c34
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a95c0
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov edi, eax
mov byte [ebp - 4], 0x34
mov ecx, dword [edi]
cmp dword [ecx - 4], 1
jle 0x524c5f
push dword [ecx - 0xc]
mov ecx, edi
call fcn.00456d60
mov edx, dword [edi]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x524c8c
xor ecx, ecx
jmp 0x524ca0
mov ecx, edx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x524c91
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x35
movzx eax, byte [0x5cfdd4]
push eax
lea eax, [ebp - 0x34]
push eax
push ecx
lea eax, [ebp - 0x1c]
mov ecx, ebx
push eax
call fcn.00527f50
mov byte [ebp - 4], 0x34
cmp dword [ebp - 0x20], 8
jb 0x524cdb
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x524d0f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a95e0
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov edi, eax
mov byte [ebp - 4], 0x37
mov ecx, dword [edi]
cmp dword [ecx - 4], 1
jle 0x524d3a
push dword [ecx - 0xc]
mov ecx, edi
call fcn.00456d60
mov edx, dword [edi]
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
cmp word [edx], ax
jne 0x524d67
xor ecx, ecx
jmp 0x524d7f
mov ecx, edx
lea edi, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x524d70
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00477ee0
mov byte [ebp - 4], 0x38
movzx eax, byte [0x5cfdd4]
push eax
lea eax, [ebp - 0x34]
push eax
push ecx
lea eax, [ebp - 0x1c]
mov ecx, ebx
push eax
call fcn.00527f50
mov byte [ebp - 4], 0x37
cmp dword [ebp - 0x20], 8
jb 0x524dba
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x524dee
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a9600
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov edi, eax
mov byte [ebp - 4], 0x3a
mov ecx, dword [edi]
cmp dword [ecx - 4], 1
jle 0x524e19
push dword [ecx - 0xc]
mov ecx, edi
call fcn.00456d60
push dword [edi]
lea ecx, [ebp - 0x34]
call fcn.00477e30
mov byte [ebp - 4], 0x3b
movzx eax, byte [0x5cfdd4]
push eax
lea eax, [ebp - 0x34]
push eax
push ecx
lea eax, [ebp - 0x1c]
mov ecx, ebx
push eax
call fcn.00527f50
mov byte [ebp - 4], 0x3a
cmp dword [ebp - 0x20], 8
jb 0x524e54
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x524e88
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a9640
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov edi, eax
mov byte [ebp - 4], 0x3d
mov ecx, dword [edi]
cmp dword [ecx - 4], 1
jle 0x524eb3
push dword [ecx - 0xc]
mov ecx, edi
call fcn.00456d60
push dword [edi]
lea ecx, [ebp - 0x34]
call fcn.00477e30
mov byte [ebp - 4], 0x3e
movzx eax, byte [0x5cfdd4]
push eax
lea eax, [ebp - 0x34]
push eax
push ecx
lea eax, [ebp - 0x1c]
mov ecx, ebx
push eax
call fcn.00527f50
mov byte [ebp - 4], 0x3d
cmp dword [ebp - 0x20], 8
jb 0x524eee
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x524f22
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a9660
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov edi, eax
mov byte [ebp - 4], 0x40
mov ecx, dword [edi]
cmp dword [ecx - 4], 1
jle 0x524f4d
push dword [ecx - 0xc]
mov ecx, edi
call fcn.00456d60
push dword [edi]
lea ecx, [ebp - 0x34]
call fcn.00477e30
mov byte [ebp - 4], 0x41
movzx eax, byte [0x5cfdd4]
push eax
lea eax, [ebp - 0x34]
push eax
push ecx
lea eax, [ebp - 0x1c]
mov ecx, ebx
push eax
call fcn.00527f50
mov byte [ebp - 4], 0x40
cmp dword [ebp - 0x20], 8
jb 0x524f88
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov ecx, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x524fbc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x5a9690
call fcn.004f06e0
push eax
lea ecx, [ebp + 8]
call fcn.00457210
mov edi, eax
mov byte [ebp - 4], 0x43
mov ecx, dword [edi]
cmp dword [ecx - 4], 1
jle 0x524fe7
push dword [ecx - 0xc]
mov ecx, edi
call fcn.00456d60
push dword [edi]
lea ecx, [ebp - 0x34]
call fcn.00477e30
mov byte [ebp - 4], 0x44
movzx eax, byte [0x5cfdd4]
push eax
lea eax, [ebp - 0x34]
push eax
push ecx
lea eax, [ebp - 0x1c]
mov ecx, ebx
push eax
call fcn.00527f50
mov byte [ebp - 4], 0x43
cmp dword [ebp - 0x20], 8
jb 0x525022
push dword [ebp - 0x34]
call fcn.0047c370
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov byte [ebp - 4], 0xf
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x525054
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc