Function at 0x4ee840
Capabilities:
Inspect section memory permissions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x98
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor edi, edi
test byte [ebx + 0xb2], 0x40
mov dword [ebp - 0x68], 0xffffffff
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x78], edi
je 0x4ee8b7
test byte [ebx + 0xb0], 4
jne 0x4ee8b7
mov ecx, dword [ebx + 0x3684]
mov eax, dword [ebx]
mov edx, dword [eax + 0x34]
push ecx
push 0x8622410
push 0x20
mov ecx, ebx
call edx
mov esi, eax
cmp esi, edi
jl 0x4ef753
mov ecx, dword [ebx + 0x3680]
mov eax, dword [ebx]
mov edx, dword [eax + 0x34]
push ecx
push 0xcc732628
push 0x10
mov ecx, ebx
call edx
mov esi, eax
cmp esi, edi
jl 0x4ef753
test byte [ebx + 0xb2], 0x80
je 0x4ee9a6
push ebx
call fcn.004ee790
mov eax, dword [ebx + 4]
cmp eax, edi
jbe 0x4ee8d6
mov ecx, dword [ebx + 0x28]
mov edi, dword [ecx]
mov dword [ebp - 0xc], 0
test eax, eax
jbe 0x4ee9a6
mov eax, dword [edi + 8]
and eax, 1
xor ecx, ecx
or eax, ecx
je 0x4ee981
cmp dword [edi + 0x20], ecx
jbe 0x4ee981
mov eax, dword [ebx + 0x3670]
lea edx, [ebp - 0x28]
push edx
push eax
push ebx
call fcn.00508ca0
mov esi, eax
test esi, esi
jl 0x4ef753
mov edx, dword [ebx + 0x3670]
lea ecx, [ebp - 0x4c]
push ecx
push edx
push ebx
call fcn.00508ca0
mov esi, eax
test esi, esi
jl 0x4ef753
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x4c]
push edi
mov dword [eax + 0x18], edi
push eax
mov dword [ecx + 0x18], edi
mov edx, dword [ebx]
mov eax, dword [edx + 0x38]
push 0x822580
push 0x200
mov ecx, ebx
call eax
mov esi, eax
test esi, esi
jl 0x4ef753
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebx]
mov edx, dword [edx + 0x38]
push edi
push eax
push 0x822180
push 0x600
mov ecx, ebx
call edx
mov esi, eax
test esi, esi
jl 0x4ef753
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebx + 4]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, ecx
jb 0x4ee998
mov eax, ecx
xor edi, edi
mov dword [ebp - 0xc], eax
jmp 0x4ee99e
mov edx, dword [ebx + 0x28]
mov edi, dword [edx + eax*4]
cmp eax, ecx
jb 0x4ee8e5
push ebx
call fcn.004fd350
mov eax, dword [ebx + 0x3688]
mov eax, dword [eax + 0x24]
xor edx, edx
test eax, eax
je 0x4ee9d1
jmp 0x4ee9c0
mov ecx, dword [eax + 0x28]
cmp ecx, edx
jb 0x4ee9ca
lea edx, [ecx + 1]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4ee9c0
mov eax, dword [ebx + 0x36c4]
mov eax, dword [eax + 0x24]
xor ecx, ecx
mov dword [ebp - 0x24], edx
test eax, eax
je 0x4ee9f4
mov esi, dword [eax + 0x28]
cmp esi, ecx
jb 0x4ee9ed
lea ecx, [esi + 1]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4ee9e3
mov eax, dword [ebx + 0x10]
lea eax, [edx + eax*8]
mov dword [ebp - 0x4c], ecx
cmp eax, 0x3ffffffd
jbe 0x4eea0b
mov eax, 0x80070216
jmp 0x4eea71
add eax, eax
add eax, eax
jne 0x4eea16
mov eax, 4
mov dword [ebp - 0x78], eax
mov esi, eax
lea edi, [ebx + 0x3750]
test eax, eax
ja 0x4eea2a
mov esi, 1
mov eax, dword [edi]
test eax, eax
je 0x4eea3a
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
cmp esi, ecx
jbe 0x4eea49
mov ecx, esi
call fcn.0047fc20
test eax, eax
je 0x4eea49
xor eax, eax
jmp 0x4eea5d
mov ecx, dword [edi]
test ecx, ecx
je 0x4eea58
mov edx, dword [ecx + 8]
lea eax, [edx + ecx + 0x10]
jmp 0x4eea5a
xor eax, eax
add dword [ecx + 8], esi
mov dword [ebp - 0x84], eax
neg eax
sbb eax, eax
and eax, 0x7ff8fff2
add eax, 0x8007000e
mov esi, eax
test eax, eax
jl 0x4ef753
mov eax, dword [ebp - 0x78]
mov esi, dword [ebp - 0x84]
push eax
push 0
push esi
call sub.msvcrt.dll_memset
mov eax, dword [ebx + 0x3688]
mov eax, dword [eax + 0x24]
add esp, 0xc
test eax, eax
je 0x4eeabc
lea ecx, [ecx]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
cmp dword [esi + ecx*4], edx
lea ecx, [esi + ecx*4]
ja 0x4eeab1
inc edx
mov dword [ecx], edx
mov byte [eax + 0x50], 0
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4eeaa0
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x6c], ecx
test ecx, ecx
jbe 0x4eeacd
mov edx, dword [ebx + 0x14]
mov eax, dword [edx]
jmp 0x4eeacf
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], 0
test ecx, ecx
jbe 0x4ef5e2
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0x10]
jae 0x4ef5e2
mov esi, dword [ebp - 0x10]
mov ecx, dword [esi + 0x3c]
mov eax, ecx
and eax, 0xfff00000
je 0x4ef5b1
cmp eax, 0x21f00000
ja 0x4eeb42
je 0x4eeb70
cmp eax, 0x20500000
ja 0x4eeb2f
je 0x4eeb70
cmp eax, 0x20000000
je 0x4eeb70
cmp eax, 0x20100000
je 0x4eeb70
cmp eax, 0x20400000
je 0x4eeb70
jmp 0x4eed41
cmp eax, 0x21d00000
je 0x4eeb70
cmp eax, 0x21e00000
je 0x4eeb70
jmp 0x4eed41
cmp eax, 0x23100000
ja 0x4eeb5e
je 0x4eeb70
cmp eax, 0x22000000
je 0x4eeb70
cmp eax, 0x23000000
je 0x4eeb70
jmp 0x4eed41
cmp eax, 0x23300000
je 0x4eeb70
cmp eax, 0x50000000
jne 0x4eed41
mov edx, dword [esi]
mov eax, ecx
and eax, 0xfffff
cmp eax, edx
jbe 0x4eeb83
xor edi, edi
xor ecx, ecx
jmp 0x4eeb88
mov edi, dword [esi + 4]
mov ecx, eax
lea ebx, [eax + eax]
mov dword [ebp - 0x34], edi
cmp ebx, edx
jbe 0x4eeb96
xor eax, eax
jmp 0x4eeb9c
mov edx, dword [esi + 4]
lea eax, [edx + eax*4]
mov dword [ebp - 0x20], eax
cmp ecx, 1
jbe 0x4eed41
sub edi, eax
dec ecx
lea ebx, [eax + 4]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x3c], ecx
mov esi, dword [edi + ebx]
cmp esi, dword [ebx]
je 0x4eed31
mov eax, dword [ebp - 0x34]
mov edx, dword [eax]
mov dword [ebp - 0x28], edx
cmp edx, 0xffffffff
je 0x4eebf9
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x100
xor ecx, ecx
or eax, ecx
je 0x4eebf9
mov eax, dword [edx + 8]
and eax, 0x800
or eax, ecx
je 0x4eebf9
cmp dword [edx + 0x24], 0xffffffff
jne 0x4eebf9
cmp dword [edx + 0x20], 0xffffffff
mov byte [ebp - 0x15], 1
je 0x4eebfd
mov byte [ebp - 0x15], 0
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx]
cmp ecx, 0xffffffff
je 0x4eec34
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x100
xor edx, edx
or eax, edx
je 0x4eec34
mov eax, dword [ecx + 8]
and eax, 0x800
or eax, edx
je 0x4eec34
cmp dword [ecx + 0x24], 0xffffffff
jne 0x4eec34
cmp dword [ecx + 0x20], 0xffffffff
mov byte [ebp - 5], 1
je 0x4eec38
mov byte [ebp - 5], 0
or edx, 0xffffffff
cmp esi, edx
je 0x4eec6a
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
and eax, 0x100
xor ecx, ecx
or eax, ecx
je 0x4eec6a
mov eax, dword [esi + 8]
and eax, 0x800
or eax, ecx
je 0x4eec6a
cmp dword [esi + 0x24], edx
jne 0x4eec6a
cmp dword [esi + 0x20], edx
jne 0x4eec6a
mov dl, 1
jmp 0x4eec6c
xor dl, dl
mov esi, dword [ebx]
cmp esi, 0xffffffff
je 0x4eeca1
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
and eax, 0x100
xor ecx, ecx
or eax, ecx
je 0x4eeca1
mov eax, dword [esi + 8]
and eax, 0x800
or eax, ecx
je 0x4eeca1
or eax, 0xffffffff
cmp dword [esi + 0x24], eax
jne 0x4eeca1
cmp dword [esi + 0x20], eax
jne 0x4eeca1
mov al, 1
jmp 0x4eeca3
xor al, al
test dl, dl
je 0x4eecaf
test al, al
jne 0x4eed31
cmp byte [ebp - 0x15], 0
je 0x4eecbd
test dl, dl
jne 0x4eecbd
test al, al
jne 0x4eed1f
cmp byte [ebp - 5], 0
je 0x4eeccb
test dl, dl
je 0x4eeccb
test al, al
je 0x4eed1f
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x28]
push edx
call fcn.005192b0
test al, al
je 0x4eed2e
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x34]
mov esi, dword [ecx + ebx]
mov edi, dword [edx]
push eax
call fcn.005192b0
test al, al
jne 0x4eed2e
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov esi, dword [ecx + ebx]
mov edi, dword [edx]
push eax
call fcn.005192b0
test al, al
je 0x4eed2e
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebx]
mov edi, dword [ecx]
push eax
call fcn.005192b0
test al, al
jne 0x4eed2e
mov edi, dword [ebp - 0x14]
mov edx, dword [ebx]
mov eax, dword [edi + ebx]
mov dword [edi + ebx], edx
mov dword [ebx], eax
jmp 0x4eed31
mov edi, dword [ebp - 0x14]
add ebx, 4
sub dword [ebp - 0x3c], 1
jne 0x4eebb4
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + 0x3c]
and eax, 0xfff00000
mov byte [ebp - 5], 1
cmp eax, 0x50700000
ja 0x4eed6c
je 0x4eee41
cmp eax, 0x50400000
je 0x4eee41
cmp eax, 0x50500000
jmp 0x4eed71
cmp eax, 0x50800000
je 0x4eee41
cmp eax, 0x80000000
je 0x4eee41
cmp eax, 0x90200000
je 0x4eee41
cmp eax, 0x90100000
je 0x4eee41
mov esi, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x10]
xor edi, edi
mov eax, dword [ebx + 0x3c]
and eax, 0xfffff
mov ecx, eax
imul ecx, edi
lea edx, [ecx + eax]
cmp edx, dword [ebx]
ja 0x4eede4
mov edx, dword [ebx + 4]
lea ecx, [edx + ecx*4]
test eax, eax
je 0x4eede4
mov edx, dword [ebp - 0x6c]
push 0xffffffffffffffff
push edx
push 0
push ebx
lea edx, [ebp - 0x24]
push edx
push esi
push eax
mov eax, dword [ebp + 8]
push ecx
push eax
call fcn.005195b0
test al, al
jne 0x4eede1
mov byte [ebp - 5], al
inc edi
jmp 0x4eeda3
cmp byte [ebp - 5], 0
jne 0x4eedf5
mov eax, ebx
call fcn.0050b8f0
test al, al
je 0x4eee41
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x88]
push ecx
push ebx
push edx
call fcn.00508dd0
mov esi, eax
test esi, esi
jl 0x4ef753
mov eax, dword [ebp - 0x88]
mov edx, dword [eax + 0x10]
xor ecx, ecx
cmp dword [eax + 8], ecx
jbe 0x4ef5b1
mov esi, dword [eax + 0xc]
mov esi, dword [esi + ecx*4]
mov dword [esi + 0x64], eax
mov esi, dword [eax + 0xc]
mov esi, dword [esi + ecx*4]
inc ecx
mov dword [esi + 0x68], edx
cmp ecx, dword [eax + 8]
jb 0x4eee24
jmp 0x4ef5b1
mov edi, dword [ebp - 0x10]
mov esi, dword [edi + 0x3c]
mov eax, dword [edi]
mov ecx, esi
xor ebx, ebx
and ecx, 0xfffff
mov dword [ebp - 0x40], ebx
cmp ecx, eax
jbe 0x4eee9c
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x30], ebx
xor eax, eax
mov word [ebp - 0x4f], ax
mov byte [ebp - 0x4d], al
mov eax, dword [edi + 0xc]
mov edx, dword [eax]
mov eax, esi
and eax, 0xfff00000
mov byte [ebp - 0x50], 0
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x38], 0xffffffff
cmp eax, 0x50700000
ja 0x4eeeac
je 0x4eeec8
cmp eax, 0x50400000
je 0x4eeec8
cmp eax, 0x50500000
jmp 0x4eeeb1
mov dword [ebp - 0x1c], ecx
cmp ecx, ebx
je 0x4eee5f
xor edx, edx
div ecx
mov dword [ebp - 0x30], eax
jmp 0x4eee62
cmp eax, 0x50800000
je 0x4eeec8
cmp eax, 0x80000000
je 0x4eeec8
cmp eax, 0x90200000
jne 0x4eeed1
mov eax, dword [edi + 4]
mov edx, dword [eax]
jmp 0x4eeece
mov eax, dword [edi + 4]
mov edx, dword [eax + ecx*8]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x20], ebx
cmp ecx, ebx
jbe 0x4ef5b1
lea eax, [ebp - 0x98]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x34], 0
mov ecx, ebx
cmp byte [ebp + ecx - 0x50], 0
jne 0x4ef34e
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], ecx
cmp ecx, eax
jae 0x4eef96
cmp byte [ebp + ecx - 0x50], 0
jne 0x4eef89
cmp dword [ebp - 0x30], 0
mov dword [ebp - 0x14], 0
jbe 0x4eef76
mov edx, dword [ebp - 0x1c]
lea eax, [edx*4]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x60], eax
jmp 0x4eef43
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 4]
add eax, dword [ebp - 0x2c]
mov ebx, dword [ebp + 8]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x34]
mov edi, dword [ecx + eax]
call fcn.0051b0e0
test al, al
je 0x4eef73
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x60]
add dword [ebp - 0x2c], edx
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x30]
jb 0x4eef40
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x30]
jne 0x4eef89
mov eax, 1
sub dword [ebp - 0x54], eax
add dword [ebp - 0x48], eax
inc ecx
mov dword [ebp - 0x44], ecx
cmp ecx, dword [ebp - 0x1c]
jb 0x4eef11
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x3c]
mov ecx, dword [ebp + 8]
and eax, 0xfff00000
mov edx, eax
xor edx, dword [ebp - 0x48]
push 0xffffffffffffffff
push 0xffffffffffffffff
and edx, 0xfffff
xor edx, eax
push edx
lea eax, [ebp - 0x64]
push eax
push ecx
call fcn.00508af0
mov esi, eax
test esi, esi
jl 0x4ef753
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 0x34]
mov edi, dword [ebp - 0x64]
mov dword [edi + 0x34], edx
mov eax, dword [eax + 0x38]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 0x1c]
mov ebx, eax
cmp eax, dword [ebp - 0x20]
jbe 0x4ef179
mov edx, dword [ebp - 0x48]
add eax, eax
add eax, eax
lea edx, [edx*4 - 4]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x14], eax
sub dword [ebp - 0x14], 4
dec ebx
cmp byte [ebp + ebx - 0x50], 0
lea eax, [ebp + ebx - 0x50]
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], eax
jne 0x4ef170
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x30], eax
jbe 0x4ef0b6
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 4]
add eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x34]
mov esi, dword [edx + eax]
mov edi, dword [ecx + eax]
mov ebx, dword [ebp + 8]
call fcn.0051b0e0
test al, al
je 0x4ef061
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x60]
add dword [ebp - 0x44], edx
inc eax
mov dword [ebp - 0x3c], eax
cmp eax, dword [ebp - 0x30]
jb 0x4ef02c
jmp 0x4ef06d
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x3c], eax
jb 0x4ef167
mov ecx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x30]
lea eax, [ecx*4]
xor esi, esi
xor edx, edx
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x64]
mov ecx, dword [ecx + 4]
mov ebx, dword [ebp - 0x14]
add eax, edx
mov eax, dword [ebx + eax]
mov ebx, dword [ebp - 0x2c]
add edx, dword [ebp - 0x60]
add ecx, esi
add esi, dword [ebp - 0x3c]
sub edi, 1
mov dword [ebx + ecx], eax
jne 0x4ef081
mov ecx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x64]
mov edx, ebx
mov ebx, dword [ebp - 0x74]
mov byte [ecx], 1
mov esi, dword [ebp - 0x10]
mov ecx, dword [esi + 0x3c]
mov eax, ecx
and eax, 0xfff00000
cmp eax, 0x90200000
jne 0x4ef0de
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x38]
mov dword [edx + eax], ecx
sub edx, 4
mov dword [ebp - 0x2c], edx
jmp 0x4ef170
cmp eax, 0x50700000
ja 0x4ef0f9
je 0x4ef150
cmp eax, 0x50400000
je 0x4ef150
cmp eax, 0x50500000
jmp 0x4ef0fe
cmp eax, 0x50800000
je 0x4ef150
cmp eax, 0x80000000
je 0x4ef150
and ecx, 0xf0000000
cmp ecx, 0x10000000
jb 0x4ef11d
cmp ecx, 0x40000000
jbe 0x4ef124
cmp eax, 0x90100000
jne 0x4ef15f
mov eax, dword [esi + 0xc]
mov ecx, dword [edi + 0xc]
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + eax]
mov dword [edx + ecx], eax
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + edx]
mov ecx, dword [edi + 0x10]
mov dword [eax + 0x68], ecx
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + edx]
sub edx, 4
mov dword [ecx + 0x64], edi
mov dword [ebp - 0x2c], edx
jmp 0x4ef170
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x48]
lea eax, [eax + ecx*8]
mov ecx, dword [ebp - 0x38]
mov dword [edx + eax], ecx
sub edx, 4
mov dword [ebp - 0x2c], edx
jmp 0x4ef170
mov edx, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x74]
mov edi, dword [ebp - 0x64]
cmp ebx, dword [ebp - 0x20]
ja 0x4ef001
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x3c]
and eax, 0xfff00000
cmp eax, 0x90200000
jne 0x4ef1dc
cmp dword [ebp - 0x54], 0
je 0x4ef254
fldz
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp + 8]
sub esp, 8
fstp qword [esp]
push 0
push 0
push 0
push 0
push eax
lea ecx, [ebp - 0x38]
push ecx
push edx
call fcn.00508980
mov esi, eax
test esi, esi
jl 0x4ef753
mov ecx, dword [edi + 0xc]
mov eax, dword [ebp - 0x38]
mov dword [ecx], eax
mov edx, dword [ebx + 0x30]
mov dword [eax + 0x30], edx
mov cl, byte [ebx + 0x34]
mov byte [eax + 0x34], cl
jmp 0x4ef25c
cmp eax, 0x50700000
ja 0x4ef1f3
je 0x4ef201
cmp eax, 0x50400000
je 0x4ef201
cmp eax, 0x50500000
jmp 0x4ef1f8
cmp eax, 0x50800000
je 0x4ef201
cmp eax, 0x80000000
jne 0x4ef25c
cmp dword [ebp - 0x54], 0
je 0x4ef254
fldz
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 0x4c]
mov ecx, dword [eax + 0x36c4]
sub esp, 8
fstp qword [esp]
push 0
push 0
push 0
push ebx
push ecx
lea edx, [ebp - 0x38]
push edx
push eax
call fcn.00508980
mov esi, eax
inc ebx
mov dword [ebp - 0x4c], ebx
test esi, esi
jl 0x4ef753
mov ecx, dword [edi + 0xc]
mov eax, dword [ebp - 0x38]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ecx + 0x30]
mov dword [eax + 0x30], edx
mov cl, byte [ecx + 0x34]
mov byte [eax + 0x34], cl
jmp 0x4ef25c
mov edx, dword [edi + 0xc]
mov eax, dword [ebp - 0x5c]
mov dword [edx], eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x3c]
and eax, 0xfff00000
cmp eax, 0x50000000
je 0x4ef279
cmp eax, 0x70800000
jne 0x4ef34e
mov edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x48], edx
jne 0x4ef2a6
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx]
mov edx, dword [edi + 0xc]
mov dword [edx], eax
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
mov eax, dword [edi + 0x10]
mov dword [edx + 0x68], eax
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
mov dword [edx + 0x64], edi
jmp 0x4ef34e
fldz
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x28]
sub esp, 8
fstp qword [esp]
push 0
push 0
push eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x3688]
push ecx
push edx
push ebx
push eax
call fcn.00508980
mov esi, eax
test esi, esi
jl 0x4ef753
mov eax, dword [edi + 0xc]
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x10]
mov dword [eax], ecx
mov eax, dword [edx + 0xc]
mov eax, dword [eax]
mov ecx, dword [edi + 0xc]
mov ecx, dword [ecx]
mov edx, dword [eax + 0x30]
mov dword [ecx + 0x30], edx
mov al, byte [eax + 0x34]
push 0
mov byte [ecx + 0x34], al
mov ecx, dword [ebp + 8]
push edi
push ecx
call fcn.00511da0
mov esi, eax
test esi, esi
jl 0x4ef753
mov eax, dword [edi + 0x3c]
mov edx, eax
and edx, 0xfff00000
cmp edx, 0x50000000
jne 0x4ef332
and eax, 0xfffff
cmp eax, 1
jne 0x4ef332
mov dword [edi + 0x3c], 0x20500001
mov eax, dword [edi + 0xc]
mov ecx, dword [eax]
mov edx, dword [edi + 0x10]
inc dword [ebp - 0x40]
mov dword [ecx + 0x68], edx
mov eax, dword [edi + 0xc]
mov ecx, dword [eax]
add ebx, 4
mov dword [ecx + 0x64], edi
mov dword [ebp - 0x28], ebx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x34], 4
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, eax
jb 0x4eeef4
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4ef5b1
cmp eax, 2
jne 0x4ef3de
mov eax, dword [ebp + 8]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x20400001
lea edx, [ebp - 0x58]
push edx
push eax
call fcn.00508af0
mov esi, eax
test esi, esi
jl 0x4ef753
xor edx, edx
jmp 0x4ef3a0
mov ecx, dword [ebp + edx*4 - 0x98]
mov ecx, dword [ecx + 0x64]
mov eax, dword [ecx + 0x3c]
mov esi, eax
and esi, 0xfff00000
cmp esi, 0x10000000
jne 0x4ef3d3
and eax, 0xfffff
cmp eax, 1
jne 0x4ef3d3
mov eax, dword [ecx + 4]
mov ecx, dword [eax]
mov dword [ebp + edx*4 - 0x98], ecx
inc edx
cmp edx, 2
jb 0x4ef3a0
jmp 0x4ef505
jbe 0x4ef4df
mov edx, dword [ebp + 8]
test byte [edx + 0xac], 2
je 0x4ef4df
mov dword [ebp - 0x28], 1
cmp eax, 1
jbe 0x4ef5b1
lea ebx, [ebp - 0x94]
lea ebx, [ebx]
mov ecx, dword [ebp + 8]
inc dword [ebp - 0x24]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x20400001
lea eax, [ebp - 0x58]
push eax
push ecx
call fcn.00508af0
mov esi, eax
test esi, esi
jl 0x4ef753
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 0x34]
mov edi, dword [ebp - 0x58]
mov dword [edi + 0x34], edx
mov ecx, dword [eax + 0x38]
mov dword [edi + 0x38], ecx
mov edx, dword [edi + 4]
mov ecx, dword [ebx - 4]
mov dword [edx], ecx
mov ecx, dword [ebx]
mov edx, dword [edi + 4]
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x70], ecx
cmp ecx, dword [ebp - 0x40]
jae 0x4ef492
fldz
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x24]
mov ecx, dword [eax + 0x3688]
sub esp, 8
fstp qword [esp]
push 0
push 0
push 0
push edx
push ecx
push ebx
push eax
call fcn.00508980
mov esi, eax
test esi, esi
jl 0x4ef753
mov eax, dword [ebx]
jmp 0x4ef497
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx]
mov edx, dword [edi + 0xc]
mov ecx, dword [ebp - 0x10]
mov dword [edx], eax
mov edx, dword [ecx + 0xc]
mov eax, dword [edx]
mov edx, dword [eax + 0x30]
mov ecx, dword [edi + 0xc]
mov ecx, dword [ecx]
mov dword [ecx + 0x30], edx
mov al, byte [eax + 0x34]
mov byte [ecx + 0x34], al
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
mov eax, dword [edi + 0x10]
mov dword [edx + 0x68], eax
mov ecx, dword [edi + 0xc]
mov eax, dword [ebp - 0x70]
mov edx, dword [ecx]
add ebx, 4
mov dword [edx + 0x64], edi
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x40]
jb 0x4ef410
jmp 0x4ef5b1
mov ecx, dword [ebp + 8]
push 0xffffffffffffffff
and eax, 0xfffff
push 0xffffffffffffffff
or eax, 0x50000000
push eax
lea eax, [ebp - 0x58]
push eax
push ecx
call fcn.00508af0
mov esi, eax
test esi, esi
jl 0x4ef753
mov edi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 0x34]
mov esi, dword [ebp - 0x40]
mov dword [edi + 0x34], edx
mov ecx, dword [eax + 0x38]
mov dword [edi + 0x38], ecx
mov edx, dword [eax + 0xc]
mov ecx, dword [edx]
mov eax, dword [edi + 0xc]
mov dword [eax], ecx
mov edx, dword [edi + 0xc]
mov eax, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [eax + 0x68], ecx
mov edx, dword [edi + 0xc]
mov eax, dword [edx]
lea ebx, [esi*4]
push ebx
lea ecx, [ebp - 0x98]
mov dword [eax + 0x64], edi
mov edx, dword [edi + 4]
push ecx
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp esi, 2
je 0x4ef5ae
mov edx, dword [ebp - 0x68]
cmp edx, 0xffffffff
jne 0x4ef593
fld1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x366c]
sub esp, 8
fstp qword [esp]
push 0x20
push 0
push 0
push 0
push ecx
lea edx, [ebp - 0x68]
push edx
push eax
call fcn.00508980
mov esi, eax
test esi, esi
jl 0x4ef753
mov edx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x40]
test esi, esi
jbe 0x4ef5ae
mov eax, ebx
mov ecx, esi
jmp 0x4ef5a0
mov esi, dword [edi + 4]
mov dword [eax + esi], edx
add eax, 4
sub ecx, 1
jne 0x4ef5a0
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x10]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, ecx
jb 0x4ef5d0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], ecx
mov eax, ecx
jmp 0x4ef5d9
mov ecx, dword [edx + 0x14]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x10], edx
cmp eax, dword [ebp - 0x6c]
jb 0x4eeae1
mov edi, dword [ebp + 8]
mov edx, dword [edi + 0x10]
xor ebx, ebx
cmp edx, ebx
jbe 0x4ef5f5
mov eax, dword [edi + 0x14]
mov eax, dword [eax]
jmp 0x4ef5f7
xor eax, eax
mov esi, dword [ebp - 0x6c]
xor ecx, ecx
cmp esi, ebx
jbe 0x4ef624
cmp ecx, edx
jae 0x4ef624
mov dword [eax + 0x3c], ebx
mov dword [eax], ebx
mov dword [eax + 8], ebx
mov edx, dword [edi + 0x10]
inc ecx
cmp ecx, edx
jb 0x4ef61a
xor eax, eax
mov ecx, edx
jmp 0x4ef620
mov eax, dword [edi + 0x14]
mov eax, dword [eax + ecx*4]
cmp ecx, esi
jb 0x4ef600
mov eax, dword [edi + 0x10]
cmp eax, ebx
jbe 0x4ef632
mov ecx, dword [edi + 0x14]
mov edi, dword [ecx]
jmp 0x4ef634
xor edi, edi
mov dword [ebp - 0xc], ebx
cmp eax, ebx
jbe 0x4ef6d8
nop
test dword [edi + 0x3c], 0xfff00000
je 0x4ef6b0
xor ebx, ebx
jmp 0x4ef650
mov eax, dword [edi + 0x3c]
and eax, 0xfffff
mov ecx, eax
imul ecx, ebx
lea edx, [eax + ecx]
cmp edx, dword [edi]
ja 0x4ef68e
mov edx, dword [edi + 4]
lea edx, [edx + ecx*4]
test eax, eax
je 0x4ef68e
xor ecx, ecx
test eax, eax
jbe 0x4ef68b
mov esi, dword [edx]
cmp dword [edx + ecx*4], esi
je 0x4ef686
mov byte [esi + 0x50], 1
mov esi, dword [edx + ecx*4]
mov byte [esi + 0x50], 1
inc ecx
cmp ecx, eax
jb 0x4ef674
inc ebx
jmp 0x4ef650
mov ecx, dword [edi + 8]
cmp ecx, 1
jbe 0x4ef6b0
xor eax, eax
test ecx, ecx
jbe 0x4ef6b0
lea esp, [esp]
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx + eax*4]
inc eax
mov byte [edx + 0x50], 1
cmp eax, dword [edi + 8]
jb 0x4ef6a0
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jb 0x4ef6ca
mov ecx, eax
xor edi, edi
mov dword [ebp - 0xc], ecx
jmp 0x4ef6d0
mov edx, dword [edx + 0x14]
mov edi, dword [edx + ecx*4]
cmp ecx, eax
jb 0x4ef640
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x3688]
mov eax, dword [eax + 0x24]
mov ecx, dword [ebp - 0x24]
test eax, eax
je 0x4ef70b
mov edx, dword [ebp - 0x84]
mov edi, dword [eax + 0x28]
cmp dword [edx + edi*4], 1
jbe 0x4ef704
cmp byte [eax + 0x50], 0
jne 0x4ef704
mov dword [eax + 0x28], ecx
inc ecx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4ef6f1
mov eax, dword [esi + 0x36c4]
mov edx, dword [ebp - 0x4c]
mov dword [eax + 0x10], edx
mov eax, dword [esi + 0x3688]
push esi
mov dword [eax + 0x10], ecx
call fcn.004feb30
test eax, eax
je 0x4ef731
mov esi, eax
jl 0x4ef753
mov esi, dword [ebp + 8]
push esi
call fcn.00509310
test eax, eax
je 0x4ef742
mov esi, eax
jl 0x4ef753
mov esi, dword [ebp + 8]
mov eax, esi
call fcn.004ffbe0
test eax, eax
je 0x4ef751
mov esi, eax
jl 0x4ef753
xor esi, esi
cmp dword [ebp - 0x84], 0
mov ecx, dword [ebp - 0x78]
je 0x4ef7d3
test ecx, ecx
ja 0x4ef76c
mov ecx, 1
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x3750]
cmp ecx, dword [eax + 8]
jae 0x4ef788
sub dword [eax + 8], ecx
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [edi + 0x3754]
test ecx, ecx
je 0x4ef7b6
mov edx, dword [ecx + 0xc]
cmp edx, dword [eax + 0xc]
jb 0x4ef7b6
mov ebx, dword [eax]
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov dword [edi + 0x3750], ebx
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [edi + 0x3750]
mov dword [edi + 0x3754], eax
mov eax, dword [eax]
mov dword [edi + 0x3750], eax
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4