Function at 0x44a4dc
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3c
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x44a65c
mov edi, dword [0x47ca84]
test edi, edi
je 0x44a63c
test byte [0x47cc54], 2
jne 0x44a649
cmp ebx, 0xf4
ja 0x44a5d4
cmp ebx, 0xa
ja 0x44a668
mov ecx, 2
mov esi, 2
mov ebx, 0x10
mov edx, dword [0x47caa0]
mov eax, edx
shr eax, cl
test al, 3
je 0x44a687
and eax, 1
xor eax, 1
lea ecx, [eax + esi]
lea edi, [ecx*8 + 0x47cac4]
mov ebx, dword [edi + 8]
mov eax, dword [ebx + 8]
cmp edi, eax
je 0x44ad38
cmp dword [0x47cab0], eax
ja 0x44aec9
mov dword [edi + 8], eax
mov dword [eax + 0xc], edi
shl ecx, 3
mov eax, ecx
or eax, 3
mov dword [ebx + 4], eax
or dword [ebx + ecx + 4], 1
lea esi, [ebx + 8]
test byte [0x47cc54], 2
je 0x44a59a
mov eax, 0x47cc58
call fcn.0044a3e0
test esi, esi
je 0x44a65e
mov eax, 0x47cc5c
nop
mov edx, dword [eax]
cmp esi, edx
jb 0x44a5b5
add edx, dword [eax + 4]
cmp esi, edx
jb 0x44a5bc
mov eax, dword [eax + 8]
test eax, eax
jne 0x44a5a8
mov eax, dword [eax + 0xc]
lea eax, [esi + eax]
mov ebx, dword [ebp + 0xc]
mov dword [ebx], eax
mov eax, esi
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret
cmp ebx, 0xffffffbf
ja 0x44a764
add ebx, 0xb
and ebx, 0xfffffff8
mov esi, dword [0x47caa4]
mov dword [ebp - 0x24], esi
test esi, esi
jne 0x44a824
mov esi, dword [0x47caa8]
cmp ebx, esi
jbe 0x44a777
mov eax, dword [0x47caac]
cmp eax, ebx
jbe 0x44a7d4
sub eax, ebx
mov dword [0x47caac], eax
mov esi, dword [0x47cab8]
lea edx, [esi + ebx]
mov dword [0x47cab8], edx
or eax, 1
mov dword [edx + 4], eax
or ebx, 3
mov dword [esi + 4], ebx
add esi, 8
jmp 0x44a587
call fcn.0044a3fc
test eax, eax
je 0x44a501
mov eax, 0x47cc58
call fcn.0044a310
test eax, eax
je 0x44a50e
nop
xor esi, esi
mov eax, esi
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret
add ebx, 0xb
and ebx, 0xfffffff8
mov esi, ebx
shr esi, 3
mov ecx, esi
mov edx, dword [0x47caa0]
mov eax, edx
shr eax, cl
test al, 3
jne 0x44a544
mov esi, dword [0x47caa8]
mov dword [ebp - 0x1c], esi
cmp ebx, esi
jbe 0x44a777
test eax, eax
je 0x44a8d0
mov edi, 1
shl edi, cl
shl edi, 1
mov esi, edi
neg esi
or esi, edi
shl eax, cl
and esi, eax
mov eax, esi
neg eax
and eax, esi
bsf eax, eax
lea esi, [eax*8 + 0x47cac4]
mov edi, dword [esi + 8]
mov dword [ebp - 0x20], edi
mov edi, dword [edi + 8]
cmp esi, edi
je 0x44b043
cmp dword [0x47cab0], edi
ja 0x44aec9
mov dword [esi + 8], edi
mov dword [edi + 0xc], esi
shl eax, 3
sub eax, ebx
mov edx, ebx
or edx, 3
mov esi, dword [ebp - 0x20]
mov dword [esi + 4], edx
add ebx, esi
mov edx, eax
or edx, 1
mov dword [ebx + 4], edx
mov dword [ebx + eax], eax
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x44a74d
mov esi, dword [0x47cab4]
mov ecx, dword [ebp - 0x1c]
shr ecx, 3
lea edi, [ecx*8 + 0x47cac4]
mov edx, dword [0x47caa0]
mov dword [ebp - 0x1c], edx
mov edx, 1
shl edx, cl
test dword [ebp - 0x1c], edx
jne 0x44aeba
or edx, dword [ebp - 0x1c]
mov dword [0x47caa0], edx
mov edx, edi
mov dword [edi + 8], esi
mov dword [edx + 0xc], esi
mov dword [esi + 8], edx
mov dword [esi + 0xc], edi
mov dword [0x47caa8], eax
mov dword [0x47cab4], ebx
mov esi, dword [ebp - 0x20]
add esi, 8
jmp 0x44a587
mov esi, dword [0x47caa8]
mov ebx, 0xffffffff
cmp ebx, esi
ja 0x44a602
mov edx, esi
sub edx, ebx
mov eax, dword [0x47cab4]
cmp edx, 0xf
jbe 0x44a7b0
lea ecx, [eax + ebx]
mov dword [0x47cab4], ecx
mov dword [0x47caa8], edx
mov esi, edx
or esi, 1
mov dword [ecx + 4], esi
mov dword [ecx + edx], edx
or ebx, 3
mov dword [eax + 4], ebx
lea esi, [eax + 8]
jmp 0x44a587
mov dword [0x47caa8], 0
mov dword [0x47cab4], 0
mov edx, esi
or edx, 3
mov dword [eax + 4], edx
or dword [eax + esi + 4], 1
jmp 0x44a7a5
call fcn.0044a3fc
test byte [0x47cc54], 1
je 0x44a9b4
cmp dword [0x47ca8c], ebx
ja 0x44a9b4
mov eax, dword [0x47ca88]
mov edx, eax
neg edx
lea edi, [ebx + eax + 0x1f]
and edi, edx
cmp edi, ebx
ja 0x44a923
lea eax, [ebx + eax + 0x29]
and eax, edx
mov dword [ebp - 0x1c], eax
cmp eax, ebx
ja 0x44a9c2
xor esi, esi
jmp 0x44a587
mov edx, ebx
neg edx
mov eax, ebx
shr eax, 8
je 0x44a917
cmp eax, 0xffff
ja 0x44aea7
bsr eax, eax
lea ecx, [eax + 7]
mov edi, ebx
shr edi, cl
mov ecx, edi
and ecx, 1
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx*4 + 0x47cbcc]
test eax, eax
je 0x44b4ff
cmp ecx, 0x1f
je 0x44aeb3
mov esi, ecx
shr esi, 1
mov ecx, 0x19
sub ecx, esi
mov esi, ebx
shl esi, cl
xor edi, edi
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], ebx
jmp 0x44a8a0
cmp ecx, eax
je 0x44abe8
test eax, eax
je 0x44abef
shl esi, 1
mov edi, ecx
mov ecx, dword [eax + 4]
and ecx, 0xfffffffc
sub ecx, dword [ebp - 0x1c]
cmp ecx, edx
jae 0x44a8ba
test ecx, ecx
je 0x44ae98
mov edx, ecx
mov dword [ebp - 0x20], eax
mov ecx, dword [eax + 0x14]
mov ebx, esi
shr ebx, 0x1f
add ebx, 4
mov eax, dword [eax + ebx*4]
test ecx, ecx
jne 0x44a88c
mov ecx, edi
jmp 0x44a894
mov eax, dword [0x47caa4]
test eax, eax
je 0x44a602
mov ecx, eax
neg ecx
and ecx, eax
bsf ecx, ecx
mov eax, dword [ecx*4 + 0x47cbcc]
mov edi, dword [eax + 4]
and edi, 0xfffffffc
sub edi, ebx
mov esi, eax
nop
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x44ad4c
mov eax, dword [ecx + 4]
and eax, 0xfffffffc
sub eax, ebx
cmp eax, edi
jae 0x44a913
mov edi, eax
mov esi, ecx
mov eax, ecx
jmp 0x44a8f8
mov dword [ebp - 0x28], 0
jmp 0x44a853
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0x103000
mov dword [esp + 4], edi
mov dword [esp], 0
call sub.KERNEL32.dll_VirtualAlloc
sub esp, 0x10
test eax, eax
je 0x44a9b4
cmp eax, 0xffffffff
je 0x44a9b4
xor edx, edx
mov ecx, eax
and ecx, 7
je 0x44a95f
mov edx, ecx
neg edx
and edx, 7
lea ecx, [edi - 0x10]
sub ecx, edx
lea esi, [eax + edx]
or edx, 1
mov dword [esi], edx
mov edx, ecx
or edx, 2
mov dword [esi + 4], edx
mov dword [esi + ecx + 4], 7
mov dword [esi + ecx + 8], 0
cmp eax, dword [0x47cab0]
jae 0x44a991
mov dword [0x47cab0], eax
add edi, dword [0x47cc4c]
mov dword [0x47cc4c], edi
cmp edi, dword [0x47cc50]
jbe 0x44a9ab
mov dword [0x47cc50], edi
add esi, 8
jne 0x44a587
mov eax, dword [0x47ca88]
mov edx, eax
neg edx
jmp 0x44a809
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0x3000
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.KERNEL32.dll_VirtualAlloc
sub esp, 0x10
mov dword [ebp - 0x24], eax
test eax, eax
je 0x44a81a
inc eax
je 0x44a81a
mov eax, dword [ebp - 0x1c]
add eax, dword [0x47cc4c]
mov dword [0x47cc4c], eax
cmp eax, dword [0x47cc50]
jbe 0x44aa12
mov dword [0x47cc50], eax
mov ecx, dword [0x47cab8]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x44b2dc
mov edx, dword [0x47cc5c]
mov eax, dword [0x47cc60]
add eax, edx
cmp dword [ebp - 0x24], eax
je 0x44aece
mov esi, 0x47cc5c
mov eax, esi
mov edi, dword [ebp - 0x24]
jmp 0x44aa55
mov ecx, dword [eax]
add ecx, dword [eax + 4]
cmp edi, ecx
je 0x44aed5
mov eax, dword [eax + 8]
test eax, eax
jne 0x44aa48
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
lea eax, [ecx + eax - 4]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [0x47cab0]
jae 0x44aa7a
mov dword [0x47cab0], ecx
mov ecx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x1c]
cmp edx, ecx
je 0x44af22
mov eax, 0x47cc5c
jmp 0x44aa98
cmp dword [eax], ecx
je 0x44af27
mov eax, dword [eax + 8]
test eax, eax
jne 0x44aa90
mov eax, 0x47cc5c
mov ecx, dword [ebp - 0x20]
jmp 0x44aaae
mov edx, dword [eax]
cmp ecx, edx
jb 0x44aab9
add edx, dword [eax + 4]
cmp ecx, edx
jb 0x44aac0
mov eax, dword [eax + 8]
test eax, eax
jne 0x44aaac
mov edi, dword [eax]
mov edx, dword [eax + 4]
add edi, edx
mov dword [ebp - 0x30], edi
mov edx, edi
sub edx, 0x2f
mov eax, edi
sub eax, 0x27
and eax, 7
je 0x44b0c9
neg eax
and eax, 7
lea eax, [edx + eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
add eax, 0x10
cmp dword [ebp - 0x28], eax
jae 0x44aaf9
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], ecx
mov edi, dword [ebp - 0x28]
add edi, 8
mov dword [ebp - 0x34], edi
mov edx, dword [ebp - 0x1c]
sub edx, 0x28
mov eax, dword [ebp - 0x24]
call fcn.0044a49c
mov eax, dword [ebp - 0x28]
mov dword [eax + 4], 0x1b
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebp - 0x24]
mov dword [0x47cc5c], edx
mov ecx, dword [ebp - 0x1c]
mov dword [0x47cc60], ecx
mov esi, dword [ebp - 0x2c]
mov eax, dword [esi]
mov dword [0x47cc68], eax
cmp eax, dword [esi + eax]
jne 0x44aec9
mov edi, dword [ebp - 0x2c]
mov dword [edi], 0
mov eax, dword [ebp - 0x34]
mov dword [0x47cc64], eax
mov edx, dword [ebp - 0x28]
lea eax, [edx + 0x1c]
mov edx, dword [ebp - 0x30]
mov dword [eax], 7
add eax, 4
cmp edx, eax
ja 0x44ab60
mov ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x20], ecx
je 0x44abd1
sub ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x20]
add eax, ecx
and dword [eax + 4], 0xfffffffe
mov edx, ecx
or edx, 1
mov esi, dword [ebp - 0x20]
mov dword [esi + 4], edx
mov dword [eax], ecx
shr ecx, 3
cmp ecx, 0x1f
ja 0x44b0d0
lea edx, [ecx*8 + 0x47cac4]
mov esi, dword [0x47caa0]
mov eax, 1
shl eax, cl
test eax, esi
jne 0x44b3a6
or eax, esi
mov dword [0x47caa0], eax
mov eax, edx
mov edi, dword [ebp - 0x20]
mov dword [edx + 8], edi
mov dword [eax + 0xc], edi
mov dword [edi + 8], eax
mov dword [edi + 0xc], edx
mov eax, dword [0x47caac]
cmp eax, ebx
ja 0x44a60f
xor esi, esi
jmp 0x44a587
mov ecx, edi
jmp 0x44a89c
mov ebx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x44abfe
jmp 0x44b4f5
mov ecx, eax
mov eax, dword [ecx + 4]
and eax, 0xfffffffc
sub eax, ebx
cmp edx, eax
jbe 0x44ac0f
mov edx, eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ecx + 0x10]
test eax, eax
jne 0x44abfc
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x44abfe
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x44a5f4
mov esi, dword [0x47caa8]
mov dword [ebp - 0x1c], esi
mov eax, esi
sub eax, ebx
cmp eax, edx
jbe 0x44a5fa
mov edi, dword [0x47cab0]
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 0x20]
cmp edi, eax
ja 0x44aec9
mov edi, eax
add edi, ebx
cmp eax, edi
jae 0x44aec9
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax + 0xc]
cmp eax, ecx
je 0x44b3ba
mov eax, dword [eax + 8]
cmp dword [ebp - 0x24], eax
ja 0x44aec9
mov dword [eax + 0xc], ecx
mov dword [ecx + 8], eax
mov eax, ecx
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x44ad08
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + 0x1c]
mov dword [ebp - 0x2c], ecx
add ecx, 0x48
mov esi, dword [ebp - 0x20]
cmp esi, dword [ecx*4 + 0x47caac]
je 0x44b499
mov esi, dword [ebp - 0x28]
cmp dword [ebp - 0x24], esi
ja 0x44aec9
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [esi + 0x10]
je 0x44b4d9
mov esi, dword [ebp - 0x28]
mov dword [esi + 0x14], eax
test eax, eax
je 0x44ad08
cmp eax, dword [ebp - 0x24]
jb 0x44aec9
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x18], ecx
mov esi, dword [ebp - 0x20]
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x44acef
cmp ecx, dword [ebp - 0x24]
jb 0x44aec9
mov dword [eax + 0x10], ecx
mov dword [ecx + 0x18], eax
mov esi, dword [ebp - 0x20]
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x44ad08
cmp ecx, dword [ebp - 0x24]
jb 0x44aec9
mov dword [eax + 0x14], ecx
mov dword [ecx + 0x18], eax
cmp edx, 0xf
ja 0x44b05b
add edx, ebx
mov eax, edx
or eax, 3
mov edi, dword [ebp - 0x20]
mov dword [edi + 4], eax
or dword [edi + edx + 4], 1
mov esi, dword [ebp - 0x20]
add esi, 8
jne 0x44a587
mov esi, dword [ebp - 0x1c]
jmp 0x44a5fa
mov edi, 0xfffffffe
rol edi, cl
and edi, edx
mov dword [0x47caa0], edi
jmp 0x44a574
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x44a903
mov ecx, dword [0x47cab0]
mov dword [ebp - 0x24], ecx
cmp ecx, esi
ja 0x44aec9
lea eax, [esi + ebx]
mov dword [ebp - 0x2c], eax
cmp esi, eax
jae 0x44aec9
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x28], ecx
mov ecx, dword [esi + 0xc]
cmp ecx, esi
je 0x44b343
mov eax, dword [esi + 8]
cmp dword [ebp - 0x24], eax
ja 0x44aec9
mov dword [eax + 0xc], ecx
mov dword [ecx + 8], eax
mov eax, ecx
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x44ae12
mov ecx, dword [esi + 0x1c]
mov dword [ebp - 0x20], ecx
add ecx, 0x48
cmp dword [ecx*4 + 0x47caac], esi
je 0x44b475
mov ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x24], ecx
ja 0x44aec9
cmp dword [ecx + 0x10], esi
je 0x44b4d1
mov ecx, dword [ebp - 0x28]
mov dword [ecx + 0x14], eax
test eax, eax
je 0x44ae12
cmp eax, dword [ebp - 0x24]
jb 0x44aec9
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x18], ecx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x44adfc
cmp ecx, dword [ebp - 0x24]
jb 0x44aec9
mov dword [eax + 0x10], ecx
mov dword [ecx + 0x18], eax
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x44ae12
cmp ecx, dword [ebp - 0x24]
jb 0x44aec9
mov dword [eax + 0x14], ecx
mov dword [ecx + 0x18], eax
cmp edi, 0xf
jbe 0x44b0b5
mov eax, ebx
or eax, 3
mov dword [esi + 4], eax
mov eax, edi
or eax, 1
mov ecx, dword [ebp - 0x2c]
mov dword [ecx + 4], eax
mov dword [ecx + edi], edi
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x44ae7b
mov eax, dword [0x47cab4]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x1c]
shr ecx, 3
lea eax, [ecx*8 + 0x47cac4]
mov dword [ebp - 0x1c], eax
mov eax, 1
shl eax, cl
test eax, edx
jne 0x44b378
or eax, edx
mov dword [0x47caa0], eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 8], edx
mov dword [eax + 0xc], edx
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov dword [0x47caa8], edi
mov ecx, dword [ebp - 0x2c]
mov dword [0x47cab4], ecx
add esi, 8
jne 0x44a587
jmp 0x44a5f4
mov ebx, dword [ebp - 0x1c]
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x20], eax
jmp 0x44abf2
mov dword [ebp - 0x28], 0x1f
jmp 0x44a853
xor ecx, ecx
jmp 0x44a879
mov edx, dword [edi + 8]
cmp edx, dword [0x47cab0]
jae 0x44a741
call sub.msvcrt.dll_abort
mov esi, 0x47cc5c
mov eax, esi
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
lea edi, [ecx + edi - 4]
mov dword [ebp - 0x2c], edi
mov ecx, dword [eax + 0xc]
cmp dword [edi], ecx
jne 0x44aa69
mov ecx, dword [eax]
cmp dword [ebp - 0x20], ecx
jb 0x44aa69
mov edi, dword [eax + 4]
add ecx, edi
cmp dword [ebp - 0x20], ecx
jae 0x44aa69
add edi, dword [ebp - 0x1c]
mov dword [eax + 4], edi
mov edx, dword [ebp - 0x1c]
add edx, dword [0x47caac]
mov eax, dword [ebp - 0x20]
call fcn.0044a49c
jmp 0x44abd1
mov eax, 0x47cc5c
mov ecx, dword [eax + 0xc]
mov edi, dword [ebp - 0x2c]
cmp dword [edi], ecx
jne 0x44aa9f
mov edx, dword [eax]
mov esi, dword [ebp - 0x24]
mov dword [eax], esi
mov edi, dword [ebp - 0x1c]
add dword [eax + 4], edi
mov eax, esi
and eax, 7
je 0x44b19c
neg eax
and eax, 7
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov eax, edx
and eax, 7
je 0x44b195
neg eax
and eax, 7
add edx, eax
mov eax, dword [ebp - 0x1c]
add eax, ebx
mov esi, edx
sub esi, dword [ebp - 0x1c]
sub esi, ebx
or ebx, 3
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 4], ebx
cmp dword [ebp - 0x20], edx
je 0x44b678
cmp edx, dword [0x47cab4]
je 0x44b6b4
mov ecx, dword [edx + 4]
test cl, 2
jne 0x44afe9
and ecx, 0xfffffffc
mov dword [ebp - 0x24], ecx
shr ecx, 3
mov dword [ebp - 0x20], ecx
cmp ecx, 0x1f
ja 0x44b53c
mov ecx, dword [edx + 8]
mov edi, dword [edx + 0xc]
cmp ecx, edi
je 0x44b791
mov ebx, dword [ebp - 0x20]
lea ebx, [ebx*8 + 0x47cac4]
mov dword [ebp - 0x20], ebx
cmp ecx, ebx
jne 0x44b780
cmp edi, dword [ebp - 0x20]
jne 0x44b76f
mov dword [ecx + 0xc], edi
mov dword [edi + 8], ecx
add edx, dword [ebp - 0x24]
add esi, dword [ebp - 0x24]
and dword [edx + 4], 0xfffffffe
mov edx, esi
or edx, 1
mov dword [eax + 4], edx
mov dword [eax + esi], esi
mov ecx, esi
shr ecx, 3
cmp ecx, 0x1f
ja 0x44b219
lea edx, [ecx*8 + 0x47cac4]
mov esi, dword [0x47caa0]
mov ebx, 1
shl ebx, cl
test ebx, esi
jne 0x44b4e1
or ebx, esi
mov dword [0x47caa0], ebx
mov ecx, edx
mov dword [edx + 8], eax
mov dword [ecx + 0xc], eax
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov esi, dword [ebp - 0x1c]
add esi, 8
jmp 0x44a587
mov esi, 1
mov cl, al
shl esi, cl
not esi
and esi, edx
mov dword [0x47caa0], esi
jmp 0x44a6e6
mov eax, ebx
or eax, 3
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 4], eax
mov eax, edx
or eax, 1
mov dword [edi + 4], eax
mov dword [edi + edx], edx
mov ecx, edx
shr ecx, 3
cmp ecx, 0x1f
ja 0x44b1a3
lea edx, [ecx*8 + 0x47cac4]
mov esi, dword [0x47caa0]
mov eax, 1
shl eax, cl
test eax, esi
jne 0x44b461
or eax, esi
mov dword [0x47caa0], eax
mov eax, edx
mov dword [edx + 8], edi
mov dword [eax + 0xc], edi
mov dword [edi + 8], eax
mov dword [edi + 0xc], edx
jmp 0x44ad23
add edi, ebx
mov eax, edi
or eax, 3
mov dword [esi + 4], eax
or dword [esi + edi + 4], 1
jmp 0x44ae8a
xor eax, eax
jmp 0x44aae2
xor edx, edx
mov eax, dword [ebp - 0x28]
shr eax, 8
je 0x44b0f4
mov dl, 0x1f
cmp eax, 0xffff
ja 0x44b0f4
bsr eax, eax
lea ecx, [eax + 7]
mov edx, dword [ebp - 0x28]
shr edx, cl
and edx, 1
lea edx, [edx + eax*2]
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1c], edx
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov esi, dword [0x47caa4]
mov eax, 1
mov cl, dl
shl eax, cl
test eax, esi
je 0x44b5e8
mov eax, dword [edx*4 + 0x47cbcc]
xor ecx, ecx
cmp edx, 0x1f
je 0x44b133
shr edx, 1
mov cl, 0x19
sub ecx, edx
mov esi, dword [ebp - 0x28]
shl esi, cl
jmp 0x44b156
mov edx, esi
shr edx, 0x1f
add edx, 4
lea edi, [eax + edx*4]
mov ecx, dword [eax + edx*4]
test ecx, ecx
je 0x44b611
shl esi, 1
mov eax, ecx
mov edx, dword [eax + 4]
and edx, 0xfffffffc
cmp dword [ebp - 0x28], edx
jne 0x44b13c
mov edx, dword [eax + 8]
mov ecx, dword [0x47cab0]
cmp ecx, eax
ja 0x44aec9
cmp ecx, edx
ja 0x44aec9
mov ecx, dword [ebp - 0x20]
mov dword [edx + 0xc], ecx
mov dword [eax + 8], ecx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x18], 0
jmp 0x44abd1
xor eax, eax
jmp 0x44af68
xor eax, eax
jmp 0x44af52
xor esi, esi
mov eax, edx
shr eax, 8
je 0x44b1c7
mov si, 0x1f
cmp eax, 0xffff
ja 0x44b1c7
bsr esi, eax
lea ecx, [esi + 7]
mov eax, edx
shr eax, cl
and eax, 1
lea esi, [eax + esi*2]
mov dword [edi + 0x1c], esi
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov eax, dword [0x47caa4]
mov dword [ebp - 0x28], eax
mov eax, 1
mov ecx, esi
shl eax, cl
test dword [ebp - 0x28], eax
jne 0x44b3ee
or eax, dword [ebp - 0x28]
mov dword [0x47caa4], eax
add esi, 0x48
mov dword [esi*4 + 0x47caac], edi
lea eax, [esi*4 + 0x47caac]
mov dword [edi + 0x18], eax
mov dword [edi + 0xc], edi
mov dword [edi + 8], edi
jmp 0x44ad23
xor ecx, ecx
mov edx, esi
shr edx, 8
je 0x44b23e
mov cl, 0x1f
cmp edx, 0xffff
ja 0x44b23e
bsr edx, edx
lea ecx, [edx + 7]
mov edi, esi
shr edi, cl
mov ecx, edi
and ecx, 1
lea ecx, [ecx + edx*2]
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov ebx, dword [0x47caa4]
mov edx, 1
shl edx, cl
test edx, ebx
je 0x44b651
mov edx, dword [ecx*4 + 0x47cbcc]
xor edi, edi
cmp ecx, 0x1f
je 0x44b27a
shr ecx, 1
mov di, 0x19
sub edi, ecx
mov ebx, esi
mov ecx, edi
shl ebx, cl
mov edi, ebx
jmp 0x44b2a1
mov ecx, edi
shr ecx, 0x1f
add ecx, 4
lea ebx, [edx + ecx*4]
mov dword [ebp - 0x20], ebx
mov ebx, dword [edx + ecx*4]
test ebx, ebx
je 0x44b694
shl edi, 1
mov edx, ebx
mov ecx, dword [edx + 4]
and ecx, 0xfffffffc
cmp esi, ecx
jne 0x44b284
mov ecx, dword [edx + 8]
mov ebx, dword [0x47cab0]
cmp ebx, edx
ja 0x44aec9
cmp ebx, ecx
ja 0x44aec9
mov dword [ecx + 0xc], eax
mov dword [edx + 8], eax
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x18], 0
jmp 0x44b038
mov esi, dword [ebp - 0x24]
mov dword [0x47cab0], esi
mov dword [0x47cc5c], esi
mov edi, dword [ebp - 0x1c]
mov dword [0x47cc60], edi
lea eax, [esi + edi - 4]
mov edx, dword [eax]
mov dword [0x47cc68], edx
cmp edx, dword [eax + edx]
jne 0x44aec9
mov dword [eax], 0
mov eax, dword [0x47ca80]
mov dword [0x47cac0], eax
mov eax, 0x47cac4
nop
mov dword [eax + 0xc], eax
mov dword [eax + 8], eax
add eax, 8
cmp eax, 0x47cbc4
jne 0x44b320
mov edx, dword [ebp - 0x1c]
sub edx, 0x28
mov eax, dword [ebp - 0x24]
call fcn.0044a49c
jmp 0x44abd1
mov eax, dword [esi + 0x14]
test eax, eax
je 0x44b6eb
lea ecx, [esi + 0x14]
mov dword [ebp - 0x20], ecx
jmp 0x44b360
add eax, 0x14
mov dword [ebp - 0x20], eax
mov eax, ecx
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x44b358
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x44b38f
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, ecx
jmp 0x44b360
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 8]
cmp eax, dword [0x47cab0]
jae 0x44ae69
jmp 0x44aec9
mov ecx, dword [ebp - 0x20]
cmp dword [ebp - 0x24], ecx
ja 0x44aec9
mov dword [ecx], 0
jmp 0x44ad9b
mov eax, dword [edx + 8]
cmp eax, dword [0x47cab0]
jae 0x44abc2
jmp 0x44aec9
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x44b6d5
mov esi, ecx
add esi, 0x14
jmp 0x44b3d5
lea esi, [eax + 0x14]
mov eax, ecx
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x44b3d0
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x44b4bd
lea esi, [eax + 0x10]
mov eax, ecx
jmp 0x44b3d5
mov eax, dword [esi*4 + 0x47cbcc]
xor ecx, ecx
cmp esi, 0x1f
je 0x44b402
shr esi, 1
mov cl, 0x19
sub ecx, esi
mov esi, edx
shl esi, cl
mov dword [ebp - 0x28], esi
jmp 0x44b42a
mov ecx, dword [ebp - 0x28]
shr ecx, 0x1f
add ecx, 4
lea esi, [eax + ecx*4]
mov dword [ebp - 0x2c], esi
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x44b631
shl dword [ebp - 0x28], 1
mov eax, esi
mov ecx, dword [eax + 4]
and ecx, 0xfffffffc
cmp edx, ecx
jne 0x44b40b
mov edx, dword [eax + 8]
cmp dword [ebp - 0x24], eax
ja 0x44aec9
cmp dword [ebp - 0x24], edx
ja 0x44aec9
mov dword [edx + 0xc], edi
mov dword [eax + 8], edi
mov dword [edi + 8], edx
mov dword [edi + 0xc], eax
mov dword [edi + 0x18], 0
jmp 0x44ad23
mov eax, dword [edx + 8]
cmp eax, dword [0x47cab0]
jae 0x44b0a4
jmp 0x44aec9
mov dword [ecx*4 + 0x47caac], eax
test eax, eax
jne 0x44add7
mov eax, 0xfffffffe
mov cl, byte [ebp - 0x20]
rol eax, cl
and dword [0x47caa4], eax
jmp 0x44ae12
mov dword [ecx*4 + 0x47caac], eax
test eax, eax
jne 0x44acc7
mov eax, 0xfffffffe
mov cl, byte [ebp - 0x2c]
rol eax, cl
and dword [0x47caa4], eax
jmp 0x44ad08
cmp dword [ebp - 0x24], esi
ja 0x44aec9
mov dword [esi], 0
jmp 0x44ac82
mov dword [ecx + 0x10], eax
jmp 0x44add3
mov dword [esi + 0x10], eax
jmp 0x44acc3
mov ecx, dword [edx + 8]
cmp ecx, dword [0x47cab0]
jae 0x44b02c
jmp 0x44aec9
cmp dword [ebp - 0x20], 0
jne 0x44ac28
mov eax, 2
mov cl, byte [ebp - 0x28]
shl eax, cl
mov ecx, eax
neg ecx
or ecx, eax
and ecx, dword [ebp - 0x24]
je 0x44a5f4
mov eax, ecx
neg eax
and eax, ecx
bsf eax, eax
mov ecx, dword [eax*4 + 0x47cbcc]
mov dword [ebp - 0x20], 0
test ecx, ecx
jne 0x44abfe
jmp 0x44a5f4
mov edi, dword [edx + 0x18]
mov ebx, dword [edx + 0xc]
cmp edx, ebx
je 0x44b72d
mov ecx, dword [edx + 8]
cmp dword [0x47cab0], ecx
ja 0x44aec9
mov dword [ecx + 0xc], ebx
mov dword [ebx + 8], ecx
mov ecx, ebx
test edi, edi
je 0x44afe3
mov ebx, dword [edx + 0x1c]
mov dword [ebp - 0x20], ebx
add ebx, 0x48
cmp edx, dword [ebx*4 + 0x47caac]
je 0x44b709
cmp dword [0x47cab0], edi
ja 0x44aec9
cmp edx, dword [edi + 0x10]
je 0x44b701
mov dword [edi + 0x14], ecx
test ecx, ecx
je 0x44afe3
mov ebx, dword [0x47cab0]
mov dword [ebp - 0x20], ebx
cmp ebx, ecx
ja 0x44aec9
mov dword [ecx + 0x18], edi
mov ebx, dword [edx + 0x10]
test ebx, ebx
je 0x44b5c9
cmp dword [ebp - 0x20], ebx
ja 0x44aec9
mov dword [ecx + 0x10], ebx
mov dword [ebx + 0x18], ecx
mov ebx, dword [edx + 0x14]
test ebx, ebx
je 0x44afe3
cmp dword [ebp - 0x20], ebx
ja 0x44aec9
mov dword [ecx + 0x14], ebx
mov dword [ebx + 0x18], ecx
jmp 0x44afe3
or eax, esi
mov dword [0x47caa4], eax
add edx, 0x48
mov esi, dword [ebp - 0x20]
mov dword [edx*4 + 0x47caac], esi
lea eax, [edx*4 + 0x47caac]
mov dword [esi + 0x18], eax
mov dword [esi + 0xc], esi
mov dword [esi + 8], esi
jmp 0x44abd1
cmp dword [0x47cab0], edi
ja 0x44aec9
mov edi, dword [ebp - 0x20]
mov dword [eax + edx*4], edi
mov dword [edi + 0x18], eax
mov dword [edi + 0xc], edi
mov dword [edi + 8], edi
jmp 0x44abd1
mov edx, dword [ebp - 0x2c]
cmp dword [0x47cab0], edx
ja 0x44aec9
mov dword [eax + ecx*4], edi
mov dword [edi + 0x18], eax
mov dword [edi + 0xc], edi
mov dword [edi + 8], edi
jmp 0x44ad23
or edx, ebx
mov dword [0x47caa4], edx
add ecx, 0x48
mov dword [ecx*4 + 0x47caac], eax
lea edx, [ecx*4 + 0x47caac]
mov dword [eax + 0x18], edx
mov dword [eax + 0xc], eax
mov dword [eax + 8], eax
jmp 0x44b038
add esi, dword [0x47caac]
mov dword [0x47caac], esi
mov dword [0x47cab8], eax
or esi, 1
mov dword [eax + 4], esi
jmp 0x44b038
mov esi, dword [ebp - 0x20]
cmp dword [0x47cab0], esi
ja 0x44aec9
mov dword [edx + ecx*4], eax
mov dword [eax + 0x18], edx
mov dword [eax + 0xc], eax
mov dword [eax + 8], eax
jmp 0x44b038
add esi, dword [0x47caa8]
mov dword [0x47caa8], esi
mov dword [0x47cab4], eax
mov edx, esi
or edx, 1
mov dword [eax + 4], edx
mov dword [eax + esi], esi
jmp 0x44b038
mov esi, dword [ebp - 0x20]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x44ac82
add esi, 0x10
jmp 0x44b3d5
mov eax, dword [esi + 0x10]
test eax, eax
je 0x44ad9b
lea ecx, [esi + 0x10]
mov dword [ebp - 0x20], ecx
jmp 0x44b360
mov dword [edi + 0x10], ecx
jmp 0x44b597
mov dword [ebx*4 + 0x47caac], ecx
test ecx, ecx
jne 0x44b59f
mov ebx, 0xfffffffe
mov cl, byte [ebp - 0x20]
rol ebx, cl
and dword [0x47caa4], ebx
jmp 0x44afe3
mov ecx, dword [edx + 0x14]
test ecx, ecx
je 0x44b75c
lea ebx, [edx + 0x14]
mov dword [ebp - 0x20], ebx
jmp 0x44b744
add ecx, 0x14
mov dword [ebp - 0x20], ecx
mov ecx, ebx
mov ebx, dword [ecx + 0x14]
test ebx, ebx
jne 0x44b73c
mov ebx, dword [ecx + 0x10]
test ebx, ebx
je 0x44b7a6
add ecx, 0x10
mov dword [ebp - 0x20], ecx
mov ecx, ebx
jmp 0x44b744
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x44b561
lea ebx, [edx + 0x10]
mov dword [ebp - 0x20], ebx
jmp 0x44b744
cmp dword [0x47cab0], edi
jbe 0x44afdd
jmp 0x44aec9
cmp dword [0x47cab0], ecx
jbe 0x44afd4
jmp 0x44aec9
mov ebx, 0xfffffffe
mov cl, byte [ebp - 0x20]
rol ebx, cl
and dword [0x47caa0], ebx
jmp 0x44afe3
mov ebx, dword [ebp - 0x20]
cmp dword [0x47cab0], ebx
ja 0x44aec9
mov dword [ebx], 0
jmp 0x44b561