Function at 0x4d56a0
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xa8
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor esi, esi
or edi, 0xffffffff
push ebx
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x40], edi
mov byte [ebp - 6], 0
call fcn.004e9400
mov edx, dword [ebx + 0xc]
cmp edx, esi
mov byte [ebp - 5], 0
jbe 0x4d56ea
mov eax, dword [ebx + 0x38]
mov ecx, dword [eax]
jmp 0x4d56ec
xor ecx, ecx
fldz
xor eax, eax
cmp edx, esi
jbe 0x4d5714
fst qword [ecx + 0x60]
mov dword [ecx + 0x58], edi
mov edx, dword [ebx + 0xc]
add eax, 1
cmp eax, edx
jb 0x4d570a
xor ecx, ecx
mov eax, edx
jmp 0x4d5710
mov ecx, dword [ebx + 0x38]
mov ecx, dword [ecx + eax*4]
cmp eax, edx
jb 0x4d56f4
mov ecx, dword [ebx + 0x10]
cmp ecx, esi
jbe 0x4d5722
mov edx, dword [ebx + 0x14]
mov eax, dword [edx]
jmp 0x4d5724
xor eax, eax
cmp ecx, esi
mov edi, eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], esi
jbe 0x4d5c59
mov esi, dword [edi + 0x38]
and esi, 0xfff00000
je 0x4d5c15
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x4d576d
mov eax, dword [edi + 0xc]
mov eax, dword [eax]
mov eax, dword [eax + 8]
and eax, 0x180
xor edx, edx
or eax, edx
je 0x4d576d
test dword [ebx + 0x2990], 0x2000
jne 0x4d5c15
cmp esi, 0x20400000
je 0x4d5781
cmp esi, 0x20500000
jne 0x4d5c15
xor edx, edx
test ecx, ecx
mov dword [ebp - 0x1c], edx
jbe 0x4d5c15
mov eax, dword [edi + 4]
add ecx, edx
lea esi, [eax + edx*4]
lea ecx, [eax + ecx*4]
xor ebx, ebx
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x14], ebx
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov eax, 1
sub eax, ebx
mov dword [ebp - 0x24], eax
mov eax, dword [edx]
mov edx, dword [ecx]
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], edx
mov ecx, dword [ebp + ebx*4 - 0x8c]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 2
xor edx, edx
or eax, edx
je 0x4d5bec
or eax, 0xffffffff
cmp dword [ecx + 0x24], eax
jne 0x4d5bec
cmp dword [ecx + 0x20], eax
jne 0x4d5bec
mov ecx, dword [ecx + 0x6c]
mov eax, dword [ecx + 0x38]
xor eax, dword [edi + 0x38]
test eax, 0xfff00000
jne 0x4d5bec
mov esi, dword [ecx + 8]
test esi, esi
jbe 0x4d5825
mov eax, dword [ebp + ebx*4 - 0x64]
mov edi, dword [eax]
mov eax, dword [ecx + 0xc]
cmp dword [eax], edi
je 0x4d5828
add edx, 1
add eax, 4
cmp edx, esi
jb 0x4d5817
or edx, 0xffffffff
mov eax, dword [ecx + 4]
lea ecx, [eax + edx*4]
add esi, edx
mov edx, dword [ecx]
lea eax, [eax + esi*4]
mov dword [ebp - 0x84], edx
mov edx, dword [eax]
mov dword [ebp - 0x80], edx
mov esi, dword [ebp + ebx*4 - 0x8c]
cmp dword [esi + 0x84], 1
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x28], 0xffffffff
mov byte [ebp - 0x15], 0
jne 0x4d58b3
mov ecx, dword [ecx]
cmp ecx, edx
je 0x4d58b3
mov ecx, dword [ebp - 0x24]
fstp st(0)
mov edi, dword [ebp + 8]
push 0
lea edx, [ebp - 0x94]
push edx
mov edx, dword [ebp + ecx*4 - 0x64]
lea eax, [ebp - 0x28]
push eax
mov eax, dword [edx]
push eax
mov ecx, edi
call fcn.004d4870
mov ecx, dword [ebp - 0x28]
push 0
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp + ebx*4 - 0x64]
lea edx, [ebp - 0x94]
push edx
mov edx, dword [ecx]
lea eax, [ebp - 0x20]
push eax
push edx
mov ecx, edi
call fcn.004d4870
fldz
test eax, eax
setge byte [ebp - 0x15]
mov ebx, 2
mov dword [ebp - 0x30], ebx
mov ecx, dword [ebp + ebx*4 - 0x8c]
mov eax, 5
sub eax, ebx
cmp ecx, 0xffffffff
mov dword [ebp - 0x38], eax
je 0x4d5993
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x100
xor edx, edx
or eax, edx
je 0x4d5993
mov eax, dword [ecx + 8]
and eax, 0x800
or eax, edx
je 0x4d5993
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp + eax*4 - 0x8c]
cmp edx, 0xffffffff
je 0x4d5993
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x100
xor edi, edi
or eax, edi
je 0x4d5993
mov eax, dword [edx + 8]
and eax, 0x800
xor edx, edx
or eax, edx
je 0x4d5993
mov ecx, dword [ebp + 8]
mov eax, 1
add dword [ecx + 0x1a08], eax
add dword [ecx + 0x1a0c], eax
cmp byte [ecx + 0x1a04], dl
je 0x4d5b31
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp + edx*4 - 0x8c]
fld qword [eax + 0xa8]
mov eax, dword [ebp + ebx*4 - 0x8c]
fld qword [eax + 0xa8]
mov edi, dword [ebp - 0x10]
mov eax, dword [edi + 0x38]
and eax, 0xfff00000
cmp eax, 0x20400000
je 0x4d5b45
cmp eax, 0x20500000
jne 0x4d5b4b
fstp st(2)
fmulp st(1)
jmp 0x4d5b4f
cmp dword [esi + 0x84], 1
jne 0x4d5b31
mov edx, dword [ebp - 0x24]
mov edx, dword [ebp + edx*4 - 0x8c]
cmp dword [edx + 0x6c], 0xffffffff
je 0x4d59bc
mov eax, dword [edx + 0x70]
cmp eax, dword [esi + 0x70]
jae 0x4d5b31
cmp dword [edx + 0x24], 0xffffffff
jne 0x4d5b31
cmp dword [edx + 0x20], 0xffffffff
jne 0x4d5b31
cmp ecx, 0xffffffff
je 0x4d5a89
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x100
xor edi, edi
or eax, edi
je 0x4d5a89
mov eax, dword [ecx + 8]
and eax, 0x800
xor ecx, ecx
or eax, ecx
je 0x4d5a89
cmp edx, 0xffffffff
je 0x4d5a20
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x100
or eax, ecx
je 0x4d5a20
mov eax, dword [edx + 8]
and eax, 0x800
or eax, ecx
jne 0x4d5a89
mov eax, dword [ebp + 8]
mov ecx, 1
add dword [eax + 0x1a1c], ecx
add dword [eax + 0x1a20], ecx
cmp byte [eax + 0x1a18], 0
je 0x4d5b31
mov ecx, dword [ebp + ebx*4 - 0x64]
mov edi, dword [ecx]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x64]
mov edx, dword [eax]
mov dword [eax], edi
mov dword [ecx], edx
mov edx, dword [ebp - 0x10]
xor eax, eax
mov dword [esi + 0x8c], eax
mov dword [esi + 0x90], eax
and dword [esi + 8], 0xffff87f0
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], ecx
or eax, 0xffffffff
mov dword [esi + 0x58], eax
mov ecx, dword [edx + 0xc]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ecx + edx*4]
mov dword [ecx + 0x58], eax
jmp 0x4d5be5
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp + ecx*4 - 0x64]
mov eax, dword [ebp + ebx*4 - 0x64]
mov ecx, dword [edx]
cmp ecx, dword [eax]
je 0x4d5b31
mov eax, dword [ebp + 8]
mov ecx, 1
add dword [eax + 0x1a30], ecx
add dword [eax + 0x1a34], ecx
cmp byte [eax + 0x1a2c], 0
je 0x4d5b31
xor bl, bl
cmp byte [ebp - 0x15], bl
jne 0x4d5af0
mov edx, dword [ebp - 0x28]
fstp st(0)
push 0
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x94]
push eax
mov eax, dword [ebp + edx*4 - 0x64]
mov eax, dword [eax]
lea ecx, [ebp - 0x20]
push ecx
mov ecx, dword [ebp + 8]
push eax
call fcn.004d4870
fldz
test eax, eax
setge bl
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp + ecx*4 - 0x64]
mov ecx, dword [edi]
cmp ecx, 0xffffffff
je 0x4d5b1d
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x100
xor edx, edx
or eax, edx
je 0x4d5b1d
mov eax, dword [ecx + 8]
and eax, 0x800
xor ecx, ecx
or eax, ecx
jne 0x4d5b2e
test bl, bl
jne 0x4d5b9f
mov eax, dword [ebp - 0x30]
mov edx, dword [edi]
mov eax, dword [ebp + eax*4 - 0x64]
cmp edx, dword [eax]
je 0x4d5b9f
mov ebx, dword [ebp - 0x30]
add ebx, 1
cmp ebx, 4
mov dword [ebp - 0x30], ebx
jb 0x4d58bb
jmp 0x4d5be9
fstp st(2)
faddp st(1)
jmp 0x4d5b4f
fstp st(1)
fstp st(0)
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + eax*4 - 0x64]
mov esi, dword [ebp - 0x14]
mov eax, dword [eax]
mov esi, dword [ebp + esi*4 - 0x64]
mov edx, dword [ebp + edx*4 - 0x64]
sub esp, 8
fstp qword [esp]
push 0x20
push 0
push 0
push 0
mov dword [esi], eax
mov eax, dword [ecx + 0x28e0]
push eax
push edx
push ecx
call fcn.004ca3c0
mov esi, eax
test esi, esi
jl 0x4d7a2a
mov eax, dword [edi + 0xc]
fldz
mov ecx, dword [ebp - 0x1c]
mov edx, dword [eax + ecx*4]
mov dword [edx + 0x58], 0xffffffff
jmp 0x4d5be5
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp + edx*4 - 0x64]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ebp + ecx*4 - 0x64]
mov edi, dword [ecx]
mov dword [eax], edi
mov dword [ecx], edx
mov ecx, dword [ebp - 0x10]
xor eax, eax
mov dword [esi + 0x8c], eax
mov dword [esi + 0x90], eax
and dword [esi + 8], 0xffff87f0
mov edx, dword [esi + 0xc]
mov dword [esi + 0xc], edx
or eax, 0xffffffff
mov dword [esi + 0x58], eax
mov edx, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [edx + ecx*4]
mov dword [edx + 0x58], eax
mov byte [ebp - 5], 1
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x10]
add ebx, 1
cmp ebx, 2
mov dword [ebp - 0x14], ebx
jb 0x4d57a4
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edi + 8]
add edx, 1
cmp edx, ecx
mov dword [ebp - 0x1c], edx
jb 0x4d578e
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebx + 0x10]
add ecx, 1
cmp ecx, eax
mov dword [ebp - 0xc], ecx
jb 0x4d5c2c
xor edi, edi
mov dword [ebp - 0xc], eax
jmp 0x4d5c32
mov eax, dword [ebx + 0x14]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebx + 0x10]
mov dword [ebp - 0x10], edi
jb 0x4d5734
cmp byte [ebp - 5], 0
je 0x4d5c59
push ebx
fstp st(0)
mov byte [ebp - 6], 1
mov byte [ebp - 5], 0
call fcn.004e9400
fldz
mov ecx, dword [ebx + 0x10]
test ecx, ecx
jbe 0x4d5c67
mov edx, dword [ebx + 0x14]
mov eax, dword [edx]
jmp 0x4d5c69
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], 0
jbe 0x4d6053
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 0x38]
and edx, 0xfff00000
je 0x4d6020
mov ebx, eax
mov esi, dword [ebx + 8]
test esi, esi
mov dword [ebp - 0x1c], esi
je 0x4d5cbf
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
and eax, 0x180
xor ecx, ecx
or eax, ecx
je 0x4d5cbf
mov eax, dword [ebp + 8]
test dword [eax + 0x2990], 0x2000
jne 0x4d6020
cmp edx, 0x30000000
je 0x4d5cd6
cmp edx, 0x50600000
jne 0x4d6020
mov ebx, dword [ebp - 0x10]
xor eax, eax
test esi, esi
mov dword [ebp - 0x20], eax
jbe 0x4d5e19
mov ecx, dword [ebx + 4]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
and eax, 2
xor ecx, ecx
or eax, ecx
je 0x4d5dd4
or eax, 0xffffffff
cmp dword [esi + 0x24], eax
jne 0x4d5dd4
cmp dword [esi + 0x20], eax
jne 0x4d5dd4
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebx]
cmp eax, edx
jae 0x4d5d36
mov ecx, dword [ebx + 4]
lea ecx, [ecx + eax*4]
cmp esi, dword [ecx]
je 0x4d5d2e
add eax, 1
add ecx, 4
cmp eax, edx
jb 0x4d5d20
cmp eax, edx
jb 0x4d5dd4
mov edi, dword [esi + 0x6c]
mov edx, edi
call fcn.004cd250
mov ecx, dword [edi + 0x38]
and ecx, 0xfff00000
cmp ecx, 0x20400000
jne 0x4d5d65
mov ecx, dword [edi + 4]
mov edi, dword [edi + 8]
mov edx, dword [ecx + eax*4]
add edi, eax
cmp edx, dword [ecx + edi*4]
jne 0x4d5dd4
mov esi, edx
jmp 0x4d5ce9
mov edx, dword [ebx + 0x38]
and edx, 0xfff00000
cmp edx, 0x20500000
jne 0x4d5dd4
mov ecx, dword [edi + 4]
mov edx, dword [ecx + eax*4]
mov edi, dword [edi + 8]
fld qword [edx + 0xa8]
add edi, eax
mov ecx, dword [ecx + edi*4]
mov eax, dword [edx + 8]
fld qword [ecx + 0xa8]
and eax, 0x800
xor edi, edi
or eax, edi
je 0x4d5db2
fxch st(1)
fcomp st(2)
fnstsw ax
test ah, 0x41
jne 0x4d5db4
fstp st(0)
mov esi, ecx
jmp 0x4d5ce9
fstp st(1)
mov eax, dword [ecx + 8]
and eax, 0x800
xor ecx, ecx
or eax, ecx
je 0x4d5dd2
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x4d5dd4
mov esi, edx
jmp 0x4d5ce9
fstp st(0)
mov ecx, dword [ebx + 4]
mov eax, dword [ebp - 0x20]
cmp dword [ecx + eax*4], esi
je 0x4d5e05
mov ecx, dword [ebp + 8]
mov edx, 1
add dword [ecx + 0x1abc], edx
add dword [ecx + 0x1ac0], edx
cmp byte [ecx + 0x1ab8], 0
je 0x4d5e05
mov ecx, dword [ebx + 4]
mov dword [ecx + eax*4], esi
mov byte [ebp - 5], dl
mov ecx, dword [ebx + 8]
add eax, 1
cmp eax, ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], ecx
jb 0x4d5ce3
mov edx, dword [ebx + 0x38]
and edx, 0xfff00000
cmp edx, 0x30000000
jne 0x4d6020
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
test eax, eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x1c], eax
jbe 0x4d6020
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 4]
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 2
xor ecx, ecx
or eax, ecx
je 0x4d5fac
mov edx, dword [ebp - 0x24]
cmp dword [edx + 0x24], 0xffffffff
jne 0x4d5fac
mov eax, edx
cmp dword [eax + 0x20], 0xffffffff
jne 0x4d5fac
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ecx]
cmp eax, edx
jae 0x4d5eb2
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
lea ecx, [ecx + eax*4]
cmp esi, dword [ecx]
je 0x4d5eaa
add eax, 1
add ecx, 4
cmp eax, edx
jb 0x4d5e9c
cmp eax, edx
jb 0x4d5fac
mov esi, dword [ebp - 0x24]
mov ebx, dword [esi + 0x6c]
mov edx, ebx
call fcn.004cd250
mov edx, dword [ebx + 0x38]
and edx, 0xfff00000
cmp edx, 0x20500000
jne 0x4d5fac
mov ecx, dword [ebx + 4]
fstp st(0)
mov edi, dword [ecx + eax*4]
fld qword [edi + 0xa8]
mov edx, dword [ebx + 8]
fstp qword [ebp - 0x84]
add edx, eax
mov esi, dword [ecx + edx*4]
fld qword [edi + 0xc0]
fstp qword [ebp - 0x4c]
mov ecx, edi
fld qword [edi + 0xc8]
fstp qword [ebp - 0x34]
fld qword [esi + 0xa8]
fstp qword [ebp - 0x3c]
fld qword [esi + 0xc0]
fstp qword [ebp - 0x94]
fld qword [esi + 0xc8]
fstp qword [ebp - 0x54]
call fcn.004ce980
test al, al
je 0x4d5f69
mov eax, dword [esi + 8]
and eax, 0x1000
xor ecx, ecx
or eax, ecx
je 0x4d5f69
fldz
fcom qword [ebp - 0x84]
fnstsw ax
test ah, 0x41
jne 0x4d5f67
fcom qword [ebp - 0x94]
fnstsw ax
test ah, 5
jnp 0x4d5f5f
fcom qword [ebp - 0x54]
fnstsw ax
test ah, 0x41
jne 0x4d5f67
mov dword [ebp - 0x24], esi
jmp 0x4d5e58
fstp st(0)
mov ecx, esi
call fcn.004ce980
test al, al
je 0x4d5faa
mov eax, dword [edi + 8]
and eax, 0x1000
xor ecx, ecx
or eax, ecx
je 0x4d5faa
fldz
fcom qword [ebp - 0x3c]
fnstsw ax
test ah, 0x41
jne 0x4d5fac
fcom qword [ebp - 0x4c]
fnstsw ax
test ah, 5
jnp 0x4d5fa2
fcom qword [ebp - 0x34]
fnstsw ax
test ah, 0x41
jne 0x4d5fac
mov dword [ebp - 0x24], edi
jmp 0x4d5e58
fldz
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
cmp dword [eax + ecx*4], edx
je 0x4d6009
mov eax, dword [ebp + 8]
mov esi, 1
add dword [eax + 0x1abc], esi
add dword [eax + 0x1ac0], esi
cmp byte [eax + 0x1ab8], 0
mov eax, dword [ebp - 0x10]
je 0x4d600c
mov esi, dword [eax + 4]
mov dword [esi + ecx*4], edx
mov edx, dword [eax + 8]
mov esi, dword [eax + 4]
lea edi, [edx + ecx]
mov ebx, dword [esi + edi*4]
lea edx, [ecx + edx*2]
mov edx, dword [esi + edx*4]
lea edi, [esi + edi*4]
mov dword [edi], edx
mov edx, dword [eax + 8]
mov esi, dword [eax + 4]
lea edx, [ecx + edx*2]
mov dword [esi + edx*4], ebx
mov byte [ebp - 5], 1
jmp 0x4d600c
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
add ecx, 1
cmp ecx, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], eax
jb 0x4d5e46
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x10]
add eax, 1
cmp eax, ecx
mov dword [ebp - 0xc], eax
jb 0x4d6041
mov eax, ecx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], eax
jmp 0x4d604a
mov ecx, dword [edx + 0x14]
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 0x10], ecx
cmp eax, dword [edx + 0x10]
jb 0x4d5c7b
cmp byte [ebp - 5], 0
je 0x4d606e
mov edx, dword [ebp + 8]
fstp st(0)
push edx
mov byte [ebp - 6], 1
mov byte [ebp - 5], 0
call fcn.004e9400
fldz
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jbe 0x4d607f
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
jmp 0x4d6081
xor eax, eax
test ecx, ecx
mov edi, eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], 0
jbe 0x4d64ff
mov esi, dword [edi + 0x38]
and esi, 0xfff00000
je 0x4d64b2
mov edx, dword [edi + 8]
test edx, edx
je 0x4d60d1
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
and eax, 0x180
xor ecx, ecx
or eax, ecx
je 0x4d60d1
mov eax, dword [ebp + 8]
test dword [eax + 0x2990], 0x2000
jne 0x4d64b2
cmp esi, 0x30000000
jne 0x4d64b2
test edx, edx
mov dword [ebp - 0x1c], 0
jbe 0x4d64b2
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + edx*4]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 2
xor edx, edx
or eax, edx
je 0x4d64a0
cmp dword [ecx + 0x24], 0xffffffff
jne 0x4d64a0
cmp dword [ecx + 0x20], 0xffffffff
jne 0x4d64a0
mov ebx, dword [ecx + 0x6c]
mov edx, dword [ebx + 8]
xor eax, eax
test edx, edx
mov dword [ebp - 0x14], ebx
jbe 0x4d613c
mov esi, dword [ebx + 0xc]
cmp dword [esi], ecx
je 0x4d6158
add eax, 1
add esi, 4
cmp eax, edx
jb 0x4d612e
or edx, 0xffffffff
mov dword [ebp - 0x20], edx
mov eax, dword [ebx + 0x38]
and eax, 0xfff00000
cmp eax, 0x10100000
jne 0x4d615f
mov eax, 1
jmp 0x4d616f
mov edx, eax
mov dword [ebp - 0x20], eax
jmp 0x4d6142
cmp eax, 0x20500000
jne 0x4d64a0
mov eax, 2
test eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], 0
jbe 0x4d64a0
mov dword [ebp - 0x38], 1
jmp 0x4d6190
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx + 0x38]
mov esi, eax
imul esi, dword [ebp - 0x28]
add esi, edx
mov esi, dword [ecx + esi*4]
and ebx, 0xfff00000
cmp ebx, 0x20500000
jne 0x4d6200
mov ebx, dword [ebp - 0x38]
imul ebx, eax
add ebx, edx
mov ecx, dword [ecx + ebx*4]
cmp ecx, 0xffffffff
fld qword [ecx + 0xa8]
je 0x4d64d0
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x100
xor edx, edx
or eax, edx
je 0x4d64d0
mov eax, dword [ecx + 8]
and eax, 0x800
xor ecx, ecx
or eax, ecx
je 0x4d64d0
fcomp st(1)
fnstsw ax
test ah, 1
je 0x4d64d2
mov eax, dword [edi + 8]
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [edi + 4]
lea edx, [ebx + eax*2]
cmp esi, dword [ecx + edx*4]
jne 0x4d628e
add eax, ebx
mov ecx, dword [ecx + eax*4]
cmp ecx, 0xffffffff
fld qword [ecx + 0xa8]
je 0x4d628c
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x100
xor edx, edx
or eax, edx
je 0x4d628c
mov eax, dword [ecx + 8]
and eax, 0x800
or eax, edx
je 0x4d628c
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x4d628e
mov eax, dword [ebp + 8]
mov edx, 1
add dword [eax + 0x1ad0], edx
add dword [eax + 0x1ad4], edx
cmp byte [eax + 0x1acc], 0
je 0x4d64d2
mov edx, dword [edi + 4]
mov dword [edx + ebx*4], esi
mov eax, dword [edi + 8]
mov edx, dword [edi + 4]
add eax, ebx
mov dword [edx + eax*4], esi
mov eax, dword [edi + 8]
lea edx, [ebx + eax*2]
mov eax, dword [edi + 4]
mov dword [eax + edx*4], ecx
jmp 0x4d649c
fstp st(0)
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
and eax, 2
xor ecx, ecx
or eax, ecx
je 0x4d64d2
cmp dword [esi + 0x24], 0xffffffff
jne 0x4d64d2
cmp dword [esi + 0x20], 0xffffffff
jne 0x4d64d2
mov ebx, dword [esi + 0x6c]
mov eax, dword [ebx + 0x38]
and eax, 0xfff00000
cmp eax, 0x30000000
mov dword [ebp - 0x50], ebx
jne 0x4d64d2
mov edx, dword [ebx + 8]
xor eax, eax
test edx, edx
jbe 0x4d62ec
mov ecx, dword [ebx + 0xc]
cmp dword [ecx], esi
je 0x4d638f
add eax, 1
add ecx, 4
cmp eax, edx
jb 0x4d62da
mov dword [ebp - 0x48], 0xffffffff
mov esi, dword [ebp - 0x48]
mov eax, edx
mov edx, dword [ebx + 4]
lea ecx, [eax + esi]
mov ecx, dword [edx + ecx*4]
fld qword [ecx + 0xa8]
lea eax, [esi + eax*2]
mov esi, dword [edx + eax*4]
mov eax, dword [ecx + 0xc]
fld qword [esi + 0xa8]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x80], eax
mov eax, edx
and eax, 8
xor edi, edi
or eax, edi
jne 0x4d639e
cmp ecx, 0xffffffff
je 0x4d64ce
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + 8]
and ecx, 0x100
mov eax, ecx
or eax, edi
je 0x4d635f
mov eax, edx
and eax, 0x800
xor ebx, ebx
or eax, ebx
je 0x4d635c
fxch st(1)
fcom st(2)
fnstsw ax
test ah, 0x41
jnp 0x4d6397
fxch st(1)
mov ebx, dword [ebp - 0x50]
or ecx, edi
je 0x4d64ce
and edx, 0x800
xor eax, eax
or edx, eax
je 0x4d64ce
fxch st(1)
fcomp st(2)
fnstsw ax
test ah, 0x41
jne 0x4d64d0
mov dword [ebp - 0x50], 1
jmp 0x4d63a7
mov dword [ebp - 0x48], eax
jmp 0x4d62f3
mov ebx, dword [ebp - 0x50]
fstp st(0)
jmp 0x4d63a0
fstp st(1)
mov dword [ebp - 0x50], 0
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov eax, edx
mov dword [ebp - 0x80], ecx
and eax, 8
xor ecx, ecx
or eax, ecx
jne 0x4d641d
cmp esi, 0xffffffff
je 0x4d64d0
mov esi, dword [esi + 0x10]
mov ecx, dword [esi + 8]
and ecx, 0x100
xor esi, esi
mov eax, ecx
or eax, esi
je 0x4d63ee
mov eax, edx
and eax, 0x800
xor edi, edi
or eax, edi
je 0x4d63ee
fcom st(1)
fnstsw ax
test ah, 0x41
jnp 0x4d641d
or ecx, esi
je 0x4d64d0
and edx, 0x800
xor eax, eax
or edx, eax
je 0x4d64d0
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x4d64d2
mov ecx, 1
mov dword [ebp - 0x24], ecx
jmp 0x4d642b
fstp st(0)
mov dword [ebp - 0x24], 0
mov ecx, 1
mov eax, dword [ebp + 8]
add dword [eax + 0x1ae4], ecx
add dword [eax + 0x1ae8], ecx
cmp byte [eax + 0x1ae0], 0
je 0x4d64d2
cmp dword [ebp - 0x50], 0
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
mov esi, dword [ebp - 0x1c]
mov eax, dword [edx + 4]
lea edi, [esi + ecx]
mov edi, dword [eax + edi*4]
lea ecx, [esi + ecx*2]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebx + 4]
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ecx + ebx*4]
mov dword [eax + esi*4], ecx
mov eax, dword [ebp - 0x20]
jne 0x4d6479
mov eax, edi
mov ecx, dword [edx + 8]
mov ebx, dword [edx + 4]
add ecx, esi
cmp dword [ebp - 0x24], 0
mov dword [ebx + ecx*4], eax
je 0x4d648d
mov edi, dword [ebp - 0x20]
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
lea ecx, [esi + eax*2]
mov dword [edx + ecx*4], edi
mov edi, dword [ebp - 0x10]
mov byte [ebp - 5], 1
mov eax, dword [ebp - 0x1c]
add eax, 1
cmp eax, dword [edi + 8]
mov dword [ebp - 0x1c], eax
jb 0x4d60ec
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
add ecx, 1
cmp ecx, eax
mov dword [ebp - 0xc], ecx
jb 0x4d64ed
mov ecx, eax
xor edi, edi
mov dword [ebp - 0xc], ecx
jmp 0x4d64f3
fstp st(1)
fstp st(0)
mov eax, dword [ebp - 0x28]
sub dword [ebp - 0x38], 1
mov edi, dword [ebp - 0x10]
add eax, 1
cmp eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
jb 0x4d618a
jmp 0x4d64a0
mov eax, dword [edx + 0x14]
mov edi, dword [eax + ecx*4]
cmp ecx, dword [edx + 0x10]
mov dword [ebp - 0x10], edi
jb 0x4d6095
cmp byte [ebp - 5], 0
mov esi, dword [ebp + 8]
je 0x4d651a
push esi
fstp st(0)
mov byte [ebp - 6], 1
mov byte [ebp - 5], 0
call fcn.004e9400
fldz
mov ecx, dword [esi + 0x10]
test ecx, ecx
jbe 0x4d6528
mov edx, dword [esi + 0x14]
mov eax, dword [edx]
jmp 0x4d652a
xor eax, eax
test ecx, ecx
mov ebx, eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 0
jbe 0x4d6959
mov edx, dword [ebp + 8]
mov esi, dword [ebx + 0x38]
and esi, 0xfff00000
je 0x4d692b
xor ecx, ecx
cmp dword [ebx + 8], ecx
je 0x4d6578
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
mov eax, dword [eax + 8]
and eax, 0x180
or eax, ecx
je 0x4d6578
test dword [edx + 0x2990], 0x2000
jne 0x4d692b
cmp esi, 0x10500000
jne 0x4d692b
or eax, 0xffffffff
cmp dword [ebx], ecx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x1c], ecx
jbe 0x4d692b
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + edx*4]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 2
xor edx, edx
or eax, edx
je 0x4d6798
cmp dword [ecx + 0x24], 0xffffffff
jne 0x4d6798
cmp dword [ecx + 0x20], 0xffffffff
jne 0x4d6798
mov edx, dword [ecx + 0x6c]
mov eax, dword [edx + 0x38]
and eax, 0xfff00000
cmp eax, 0x20500000
mov dword [ebp - 0x30], edx
jne 0x4d6798
mov edi, dword [edx + 8]
xor eax, eax
test edi, edi
jbe 0x4d65ff
mov esi, dword [edx + 0xc]
cmp dword [esi], ecx
je 0x4d66a4
add eax, 1
add esi, 4
cmp eax, edi
jb 0x4d65ed
mov dword [ebp - 0x28], 0xffffffff
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x38], 1
mov ecx, dword [edx + 8]
imul ecx, eax
add ecx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 2
xor esi, esi
or eax, esi
je 0x4d6782
cmp dword [ecx + 0x24], 0xffffffff
jne 0x4d6782
cmp dword [ecx + 0x20], 0xffffffff
jne 0x4d6782
mov eax, dword [ecx + 0x6c]
mov dword [ebp - 0x14], eax
mov eax, dword [eax + 0x38]
and eax, 0xfff00000
cmp eax, 0x10600000
jne 0x4d6782
cmp dword [ecx + 0x84], 1
jne 0x4d6714
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0x10]
mov edi, dword [ecx + 0xc]
mov dword [ebp - 0x5c], edx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x1c]
mov eax, dword [edx + eax*4]
mov eax, dword [eax + 0xc]
or eax, edi
and eax, 0x124
mov esi, eax
and esi, 0x100
xor edx, edx
xor ebx, ebx
or edx, esi
je 0x4d66ac
mov eax, 0x100
jmp 0x4d66ce
mov dword [ebp - 0x28], eax
jmp 0x4d6606
mov esi, eax
and esi, 0x20
xor edx, edx
or edx, esi
je 0x4d66be
mov eax, 0x20
jmp 0x4d66ce
mov esi, eax
and esi, 4
xor edx, edx
or edx, esi
je 0x4d66d0
mov eax, 4
xor ebx, ebx
xor edx, edx
and edi, 0x124
cmp edx, ebx
jne 0x4d66e0
cmp edi, eax
je 0x4d6714
mov edx, dword [ebp + 8]
mov esi, 1
add dword [edx + 0x1a44], esi
add dword [edx + 0x1a48], esi
cmp byte [edx + 0x1a40], 0
je 0x4d6714
mov edx, dword [ecx + 8]
and dword [ecx + 0xc], 0xfffffedb
mov dword [ecx + 8], edx
or dword [ecx + 8], ebx
or dword [ecx + 0xc], eax
mov byte [ebp - 5], 1
mov eax, dword [ebp + 8]
test byte [eax + 0xa9], 1
mov ebx, dword [ebp - 0x10]
je 0x4d677f
cmp dword [ebx + 8], 1
jne 0x4d677f
mov edx, dword [ebx + 0xc]
mov eax, dword [ebp - 0x1c]
mov eax, dword [edx + eax*4]
mov edx, dword [eax + 0xc]
and edx, 4
xor eax, eax
or eax, edx
je 0x4d677f
mov edi, dword [ebp - 0x14]
mov esi, dword [edi + 8]
xor eax, eax
test esi, esi
jbe 0x4d675b
mov edx, dword [edi + 0xc]
cmp dword [edx], ecx
je 0x4d675e
add eax, 1
add edx, 4
cmp eax, esi
jb 0x4d674d
or eax, 0xffffffff
mov ecx, dword [edi + 4]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x48], edx
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 8]
imul eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x28]
mov ecx, dword [edx + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x50], eax
jmp 0x4d6782
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
sub dword [ebp - 0x38], 1
add eax, 1
cmp eax, 2
mov dword [ebp - 0x20], eax
jb 0x4d6612
mov eax, dword [ebp - 0x1c]
add eax, 1
cmp eax, dword [ebx]
mov dword [ebp - 0x1c], eax
jb 0x4d6598
cmp dword [ebp - 0x48], 0xffffffff
je 0x4d692b
mov eax, dword [ebp + 8]
mov ecx, 1
add dword [eax + 0x1a44], ecx
add dword [eax + 0x1a48], ecx
cmp byte [eax + 0x1a40], 0
je 0x4d692b
push 0xffffffffffffffff
fstp st(0)
push 0xffffffffffffffff
push 0x50100004
lea ecx, [ebp - 0x90]
push ecx
mov edi, eax
push edi
call fcn.004ca530
mov esi, eax
test esi, esi
jl 0x4d7a2a
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x10000001
lea edx, [ebp - 0x24]
push edx
push edi
call fcn.004ca530
mov esi, eax
test esi, esi
jl 0x4d7a2a
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x30]
mov edi, dword [ebp - 0x90]
mov dword [edi + 0x30], ecx
mov edx, dword [eax + 0x34]
mov ecx, dword [ebp - 0x24]
mov dword [edi + 0x34], edx
mov edx, dword [eax + 0x30]
mov dword [ecx + 0x30], edx
mov eax, dword [eax + 0x34]
mov dword [ecx + 0x34], eax
mov ecx, dword [edi + 4]
mov eax, dword [ebp - 0x48]
mov dword [ecx + 4], eax
mov edx, dword [edi + 4]
mov dword [edx], eax
mov ecx, dword [edi + 4]
mov eax, dword [ebp - 0x50]
mov dword [ecx + 0xc], eax
mov edx, dword [edi + 4]
mov dword [edx + 8], eax
xor ebx, ebx
jmp 0x4d6860
fldz
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28fc]
mov edx, dword [edi + 0xc]
sub esp, 8
fstp qword [esp]
push 0
push 0
push 0
push 0
push ecx
add edx, ebx
push edx
push eax
call fcn.004ca3c0
mov esi, eax
test esi, esi
jl 0x4d7a2a
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov edx, dword [eax + 0x30]
mov ecx, dword [edi + 0xc]
mov ecx, dword [ebx + ecx]
mov dword [ecx + 0x30], edx
mov al, byte [eax + 0x34]
mov byte [ecx + 0x34], al
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + ebx]
mov edx, dword [esi + 0xc]
mov ecx, dword [edx]
mov ecx, dword [ecx + 0xc]
and ecx, 0x124
or dword [eax + 0xc], ecx
mov edx, dword [edi + 0xc]
mov eax, dword [edx + ebx]
add ebx, 4
cmp ebx, 0x10
mov dword [eax + 0x6c], edi
jb 0x4d6860
mov eax, dword [ebp - 0x24]
mov ecx, dword [edi + 0xc]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + 8]
mov dword [edx], ecx
mov ecx, esi
mov edx, dword [ecx + 0xc]
mov edx, dword [edx]
mov esi, dword [eax + 0xc]
mov dword [esi], edx
mov edx, dword [eax + 0xc]
mov edx, dword [edx]
push 1
push ecx
mov ecx, dword [ebp + 8]
mov dword [edx + 0x6c], eax
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0x84]
push eax
push 2
push ecx
mov dword [ebp - 0x84], edi
call fcn.004caa20
mov esi, eax
test esi, esi
jl 0x4d7a2a
mov edx, dword [ebp + 8]
push edx
call fcn.004e9400
fldz
mov byte [ebp - 5], 1
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
add ecx, 1
cmp ecx, eax
mov dword [ebp - 0xc], ecx
jb 0x4d6947
mov ecx, eax
xor ebx, ebx
mov dword [ebp - 0xc], ecx
jmp 0x4d694d
mov eax, dword [edx + 0x14]
mov ebx, dword [eax + ecx*4]
cmp ecx, dword [edx + 0x10]
mov dword [ebp - 0x10], ebx
jb 0x4d6541
cmp byte [ebp - 5], 0
je 0x4d6974
mov ecx, dword [ebp + 8]
fstp st(0)
push ecx
mov byte [ebp - 6], 1
mov byte [ebp - 5], 0
call fcn.004e9400
fldz
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x10]
test ecx, ecx
jbe 0x4d6985
mov edx, dword [ebx + 0x14]
mov eax, dword [edx]
jmp 0x4d6987
xor eax, eax
test ecx, ecx
mov esi, eax
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], 0
jbe 0x4d6b22
mov edx, dword [esi + 0x38]
and edx, 0xfff00000
je 0x4d6af7
cmp dword [esi + 8], 0
je 0x4d69d3
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov eax, dword [eax + 8]
and eax, 0x180
xor ecx, ecx
or eax, ecx
je 0x4d69d3
test dword [ebx + 0x2990], 0x2000
jne 0x4d6af7
cmp edx, 0x10400000
jne 0x4d6af7
cmp dword [esi], 0
mov dword [ebp - 0x1c], 0
jbe 0x4d6af7
mov edx, dword [ebp - 0x1c]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + edx*4]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 2
xor edx, edx
or eax, edx
je 0x4d6ae6
cmp dword [ecx + 0x24], 0xffffffff
jne 0x4d6ae6
cmp dword [ecx + 0x20], 0xffffffff
jne 0x4d6ae6
mov edi, dword [ecx + 0x6c]
mov eax, dword [edi + 0x38]
and eax, 0xfff00000
cmp eax, 0x20400000
jne 0x4d6ae6
mov esi, dword [edi + 8]
xor eax, eax
test esi, esi
jbe 0x4d6a4f
mov edx, dword [edi + 0xc]
cmp dword [edx], ecx
je 0x4d6abe
add eax, 1
add edx, 4
cmp eax, esi
jb 0x4d6a41
or ebx, 0xffffffff
xor esi, esi
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
imul ecx, esi
add ecx, ebx
mov ecx, dword [edx + ecx*4]
cmp ecx, 0xffffffff
je 0x4d6ab4
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x100
xor edx, edx
or eax, edx
je 0x4d6ab4
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x58], eax
mov eax, edx
and eax, 0x800
xor ecx, ecx
or eax, ecx
je 0x4d6ab4
and edx, 2
xor eax, eax
or edx, eax
je 0x4d6ab4
mov eax, dword [ebp + 8]
mov ecx, 1
add dword [eax + 0x1af8], ecx
add dword [eax + 0x1afc], ecx
cmp byte [eax + 0x1af4], 0
jne 0x4d6ac2
add esi, 1
cmp esi, 2
jb 0x4d6a54
jmp 0x4d6ae0
mov ebx, eax
jmp 0x4d6a52
mov edx, dword [edi + 4]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
sub ecx, esi
imul ecx, dword [edi + 8]
add ecx, ebx
mov ecx, dword [edx + ecx*4]
mov edx, dword [ebp - 0x1c]
mov dword [eax + edx*4], ecx
mov byte [ebp - 5], 1
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
add eax, 1
cmp eax, dword [esi]
mov dword [ebp - 0x1c], eax
jb 0x4d69ef
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebx + 0x10]
add ecx, 1
cmp ecx, eax
mov dword [ebp - 0xc], ecx
jb 0x4d6b10
mov ecx, eax
xor esi, esi
mov dword [ebp - 0xc], ecx
jmp 0x4d6b16
mov eax, dword [ebx + 0x14]
mov esi, dword [eax + ecx*4]
cmp ecx, dword [ebx + 0x10]
mov dword [ebp - 0x10], esi
jb 0x4d699b
cmp byte [ebp - 5], 0
jne 0x4d79fd
cmp byte [ebp - 6], 0
jne 0x4d79fd
mov ecx, dword [ebx + 0x10]
xor edx, edx
lea eax, [ecx - 1]
cmp ecx, eax
mov dword [ebp - 0x48], edx
jbe 0x4d6b4b
mov edx, dword [ebx + 0x14]
mov edx, dword [edx + eax*4]
cmp eax, ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], eax
jae 0x4d79c7
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x10]
mov ebx, dword [esi + 8]
test ebx, ebx
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x14], ebx
je 0x4d6b8f
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov eax, dword [eax + 8]
and eax, 0x180
xor edx, edx
or eax, edx
je 0x4d6b8f
test dword [edi + 0x2990], 0x2000
jne 0x4d7974
mov eax, dword [esi + 0x38]
and eax, 0xfff00000
cmp eax, 0x20400000
je 0x4d6ba9
cmp eax, 0x20500000
jne 0x4d7383
cmp ebx, dword [ebp - 0x48]
jbe 0x4d6d2d
cmp ebx, 0x10
jbe 0x4d6bbc
mov dword [ebp - 0x48], ebx
jmp 0x4d6bc6
mov dword [ebp - 0x48], 0x10
mov ebx, dword [ebp - 0x48]
add edi, 0x29bc
cmp dword [ebp - 0x78], 0
je 0x4d6c18
test ecx, ecx
ja 0x4d6bdb
mov ecx, 1
mov eax, dword [edi]
cmp ecx, dword [eax + 8]
jae 0x4d6be7
sub dword [eax + 8], ecx
jmp 0x4d6c18
mov ecx, dword [edi + 4]
fstp st(0)
test ecx, ecx
je 0x4d6c04
mov edx, dword [ecx + 0xc]
cmp edx, dword [eax + 0xc]
jb 0x4d6c04
mov esi, dword [eax]
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov dword [edi], esi
jmp 0x4d6c13
push ecx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [edi]
mov dword [edi + 4], eax
mov eax, dword [eax]
mov dword [edi], eax
fldz
add esp, 4
xor ecx, ecx
cmp ebx, 0x3ffffffd
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x6c], ecx
jbe 0x4d6c2f
mov eax, 0x80070216
jmp 0x4d6c95
lea eax, [ebx*4]
cmp eax, ecx
jne 0x4d6c3f
mov eax, 4
test eax, eax
mov dword [ebp - 0x6c], eax
mov esi, eax
ja 0x4d6c4d
mov esi, 1
mov eax, dword [edi]
test eax, eax
je 0x4d6c5d
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
cmp esi, ecx
jbe 0x4d6c70
mov ecx, esi
fstp st(0)
call fcn.0048cb80
fldz
test eax, eax
je 0x4d6c70
xor eax, eax
jmp 0x4d6c84
mov edi, dword [edi]
test edi, edi
je 0x4d6c7f
mov edx, dword [edi + 8]
lea eax, [edx + edi + 0x10]
jmp 0x4d6c81
xor eax, eax
add dword [edi + 8], esi
mov dword [ebp - 0x78], eax
neg eax
sbb eax, eax
and eax, 0x7ff8fff2
add eax, 0x8007000e
test eax, eax
mov esi, eax
jl 0x4d7a28
cmp ebx, 0x1ffffffe
jbe 0x4d6cae
mov eax, 0x80070216
jmp 0x4d6d23
lea eax, [ebx*8]
test eax, eax
jne 0x4d6cbe
mov eax, 8
mov edi, dword [ebp + 8]
add edi, 0x2a04
test eax, eax
mov dword [ebp - 0x98], eax
mov esi, eax
ja 0x4d6cd8
mov esi, 1
mov eax, dword [edi]
test eax, eax
je 0x4d6ce8
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
cmp esi, ecx
jbe 0x4d6cfb
mov ecx, esi
fstp st(0)
call fcn.0048cb80
fldz
test eax, eax
je 0x4d6cfb
xor eax, eax
jmp 0x4d6d0f
mov ecx, dword [edi]
test ecx, ecx
je 0x4d6d0a
mov edx, dword [ecx + 8]
lea eax, [edx + ecx + 0x10]
jmp 0x4d6d0c
xor eax, eax
add dword [ecx + 8], esi
mov dword [ebp - 0xa4], eax
neg eax
sbb eax, eax
and eax, 0x7ff8fff2
add eax, 0x8007000e
test eax, eax
mov esi, eax
jl 0x4d7a28
xor edi, edi
cmp dword [ebp - 0x14], edi
jbe 0x4d6d8b
mov esi, dword [ebp - 0x78]
fstp st(0)
mov ebx, dword [ebp - 0xa4]
fld1
mov eax, dword [ebp - 0x10]
mov dword [esi], 0xffffffff
fstp qword [ebx]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + edi*4]
mov ecx, dword [ebp + 8]
push 0
push ebx
push esi
push edx
call fcn.004d4870
test eax, eax
jl 0x4d6d84
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0xc]
mov edx, dword [esi]
cmp edx, dword [ecx + edi*4]
je 0x4d6d84
mov edx, dword [ebp - 0x14]
add edi, 1
add ebx, 8
add esi, 4
cmp edi, edx
jb 0x4d6d3f
fldz
jmp 0x4d6d8e
mov edx, dword [ebp - 0x14]
fldz
jmp 0x4d6d8e
mov edx, dword [ebp - 0x14]
cmp edi, edx
jne 0x4d7383
fld1
mov ebx, dword [ebp - 0xa4]
fld qword [0x468928]
xor ecx, ecx
cmp edx, 4
mov byte [ebp - 6], 1
mov byte [ebp - 0x15], 1
jl 0x4d6eab
lea edi, [ecx + 2]
lea esi, [ebx + 8]
jmp 0x4d6dc1
fxch st(1)
test ecx, ecx
jbe 0x4d6dd6
fld qword [esi - 0x10]
fcomp qword [esi - 8]
fnstsw ax
test ah, 0x44
jnp 0x4d6dd6
mov byte [ebp - 0x15], 0
fcom qword [esi - 8]
fnstsw ax
test ah, 0x41
je 0x4d6dee
fxch st(1)
fcom qword [esi - 8]
fnstsw ax
test ah, 5
jp 0x4d6df4
fxch st(1)
mov byte [ebp - 6], 0
fxch st(1)
lea eax, [edi - 1]
test eax, eax
jbe 0x4d6e0b
fld qword [esi - 8]
fcomp qword [esi]
fnstsw ax
test ah, 0x44
jnp 0x4d6e0b
mov byte [ebp - 0x15], 0
fxch st(1)
fcom qword [esi]
fnstsw ax
test ah, 0x41
je 0x4d6e23
fxch st(1)
fcom qword [esi]
fnstsw ax
test ah, 5
jp 0x4d6e29
fxch st(1)
mov byte [ebp - 6], 0
fxch st(1)
test edi, edi
jbe 0x4d6e3d
fld qword [esi]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x44
jnp 0x4d6e3d
mov byte [ebp - 0x15], 0
fxch st(1)
fcom qword [esi + 8]
fnstsw ax
test ah, 0x41
je 0x4d6e57
fxch st(1)
fcom qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x4d6e5d
fxch st(1)
mov byte [ebp - 6], 0
fxch st(1)
lea eax, [edi + 1]
test eax, eax
jbe 0x4d6e75
fld qword [esi + 8]
fcomp qword [esi + 0x10]
fnstsw ax
test ah, 0x44
jnp 0x4d6e75
mov byte [ebp - 0x15], 0
fxch st(1)
fcom qword [esi + 0x10]
fnstsw ax
test ah, 0x41
je 0x4d6e8f
fxch st(1)
fcom qword [esi + 0x10]
fnstsw ax
test ah, 5
jp 0x4d6e95
fxch st(1)
mov byte [ebp - 6], 0
fxch st(1)
add ecx, 4
lea eax, [edx - 3]
add esi, 0x20
add edi, 4
cmp ecx, eax
jb 0x4d6dbf
jmp 0x4d6ead
fxch st(1)
cmp ecx, edx
mov esi, 1
jae 0x4d6ef2
test ecx, ecx
jbe 0x4d6ecc
fld qword [ebx + ecx*8 - 8]
fcomp qword [ebx + ecx*8]
fnstsw ax
test ah, 0x44
jnp 0x4d6ecc
mov byte [ebp - 0x15], 0
fxch st(1)
fcom qword [ebx + ecx*8]
fnstsw ax
test ah, 0x41
je 0x4d6ee6
fxch st(1)
fcom qword [ebx + ecx*8]
fnstsw ax
test ah, 5
jp 0x4d6eec
fxch st(1)
mov byte [ebp - 6], 0
fxch st(1)
add ecx, esi
cmp ecx, edx
jb 0x4d6eb6
cmp byte [ebp - 0x15], 0
je 0x4d71c3
fld qword [ebx]
fcomp qword [0x468918]
fnstsw ax
test ah, 0x44
jp 0x4d7036
mov eax, dword [ebp + 8]
fstp st(0)
add dword [eax + 0x1a5c], esi
fstp st(0)
cmp byte [eax + 0x1a54], 0
je 0x4d7974
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x38]
mov eax, edx
and eax, 0xfffff
or eax, 0x20400000
cmp ecx, eax
mov byte [ebp - 6], 0
je 0x4d6fd6
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
movzx edx, word [ecx + 0x3c]
lea edi, [ecx + 0x3c]
add esi, esi
cmp esi, edx
mov dword [ecx + 0x38], eax
mov byte [ebp - 6], 1
jbe 0x4d6fc3
mov ebx, ecx
fstp st(0)
add ebx, 4
cmp word [edi], 0
je 0x4d6fb3
mov eax, dword [0x776138]
test eax, eax
jge 0x4d6f7b
xor eax, eax
jmp 0x4d6f82
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [edi]
cmp ecx, dword [eax + 0x120]
ja 0x4d6fa8
mov edx, dword [ebx]
mov eax, dword [eax + 0x11c]
shl ecx, 4
test edx, edx
lea eax, [ecx + eax - 0x10]
je 0x4d6fa8
mov ecx, dword [eax + 4]
mov dword [edx], ecx
mov dword [eax + 4], edx
mov word [edi], 0
mov dword [ebx], 0
push edi
call fcn.004cc480
test eax, eax
jl 0x4d79b6
fldz
test esi, esi
mov eax, dword [ebp - 0x10]
mov edi, dword [eax + 4]
mov dword [eax], esi
jbe 0x4d6fd6
mov ecx, esi
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x14]
xor eax, eax
test ecx, ecx
jbe 0x4d701c
mov ebx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x10]
lea edi, [ecx*4]
mov edx, dword [esi + 4]
lea ecx, [edx + eax*4]
mov edx, dword [ebx + eax*4]
cmp dword [ecx], edx
je 0x4d6fff
mov dword [ecx], edx
mov byte [ebp - 6], 1
mov ecx, dword [esi + 4]
mov edx, dword [ebx + eax*4]
add ecx, edi
cmp dword [ecx], edx
je 0x4d7011
mov dword [ecx], edx
mov byte [ebp - 6], 1
add eax, 1
add edi, 4
cmp eax, dword [ebp - 0x14]
jb 0x4d6fec
mov cl, byte [ebp - 6]
test cl, cl
je 0x4d7371
mov eax, dword [ebp + 8]
add dword [eax + 0x1a58], 1
jmp 0x4d7371
fld qword [ebx]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4d70a1
mov eax, dword [ebp + 8]
fstp st(0)
add dword [eax + 0x1b20], esi
add dword [eax + 0x1b24], esi
cmp byte [eax + 0x1b1c], 0
je 0x4d7974
mov eax, dword [ebp - 0x10]
mov ecx, edx
and ecx, 0xfffff
or ecx, 0x10000000
mov dword [eax + 0x38], ecx
mov ecx, dword [ebp - 0x78]
test ecx, ecx
mov dword [eax], edx
mov dword [eax + 8], edx
je 0x4d737f
mov edx, dword [ebp - 0x14]
fstp st(0)
mov eax, dword [eax + 4]
add edx, edx
add edx, edx
push edx
push ecx
push eax
call sub.msvcrt.dll_memcpy
fldz
add esp, 0xc
jmp 0x4d737f
fld qword [ebx]
fucomp st(2)
fnstsw ax
test ah, 0x44
jp 0x4d713f
mov eax, dword [ebp + 8]
fstp st(0)
add dword [eax + 0x1b0c], esi
add dword [eax + 0x1b10], esi
cmp byte [eax + 0x1b08], 0
je 0x4d7974
mov edi, dword [ebp - 0x10]
mov ecx, edx
and ecx, 0xfffff
or ecx, 0x10000000
mov dword [edi + 0x38], ecx
mov ecx, dword [ebp - 0x40]
cmp ecx, 0xffffffff
mov dword [edi], edx
mov dword [edi + 8], edx
jne 0x4d7123
mov edx, dword [eax + 0x28e0]
sub esp, 8
fstp qword [esp]
push 0x20
push 0x7800
push 0
push 0
push edx
lea ecx, [ebp - 0x40]
push ecx
push eax
call fcn.004ca3c0
mov esi, eax
test esi, esi
jl 0x4d7a2a
fldz
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x14]
xor eax, eax
test edx, edx
jbe 0x4d737f
mov esi, dword [edi + 4]
mov dword [esi + eax*4], ecx
add eax, 1
cmp eax, edx
jb 0x4d712d
jmp 0x4d737f
fld qword [ebx]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4d71c7
mov eax, dword [ebp + 8]
add dword [eax + 0x1b38], esi
cmp byte [eax + 0x1b30], 0
je 0x4d7974
mov edi, dword [ebp - 0x10]
mov ecx, dword [edi + 0x38]
mov eax, edx
and eax, 0xfffff
or eax, 0x10100000
xor bl, bl
cmp ecx, eax
je 0x4d7182
mov dword [edi + 0x38], eax
mov dword [edi], edx
mov dword [edi + 8], edx
mov bl, 1
xor eax, eax
test edx, edx
jbe 0x4d71a4
mov ecx, dword [edi + 4]
mov esi, dword [ebp - 0x78]
mov esi, dword [esi + eax*4]
cmp dword [ecx + eax*4], esi
lea ecx, [ecx + eax*4]
je 0x4d719d
mov dword [ecx], esi
mov bl, 1
add eax, 1
cmp eax, edx
jb 0x4d7188
test bl, bl
je 0x4d71b2
mov eax, dword [ebp + 8]
add dword [eax + 0x1b34], 1
cmp byte [ebp - 5], 0
jne 0x4d737f
test bl, bl
jmp 0x4d7379
fstp st(0)
fstp st(0)
mov eax, dword [ebp + 8]
test byte [eax + 0xaa], 0x80
je 0x4d71dd
cmp byte [ebp - 6], 0
je 0x4d7383
add dword [eax + 0x1a84], esi
cmp byte [eax + 0x1a7c], 0
je 0x4d7974
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x38]
mov eax, edx
and eax, 0xfffff
or eax, 0x20500000
cmp ecx, eax
mov byte [ebp - 6], 0
je 0x4d729d
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
lea edi, [ecx + 0x3c]
mov dword [ecx + 0x38], eax
movzx ecx, word [edi]
add esi, esi
cmp esi, ecx
mov byte [ebp - 6], 1
jbe 0x4d728a
mov ebx, dword [ebp - 0x10]
fstp st(0)
add ebx, 4
cmp word [edi], 0
je 0x4d727a
mov eax, dword [0x776138]
test eax, eax
jge 0x4d7242
xor eax, eax
jmp 0x4d7249
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [edi]
cmp ecx, dword [eax + 0x120]
ja 0x4d726f
mov edx, dword [ebx]
mov eax, dword [eax + 0x11c]
shl ecx, 4
test edx, edx
lea eax, [ecx + eax - 0x10]
je 0x4d726f
mov ecx, dword [eax + 4]
mov dword [edx], ecx
mov dword [eax + 4], edx
mov word [edi], 0
mov dword [ebx], 0
push edi
call fcn.004cc480
test eax, eax
jl 0x4d79b6
fldz
test esi, esi
mov eax, dword [ebp - 0x10]
mov edi, dword [eax + 4]
mov dword [eax], esi
jbe 0x4d729d
mov ecx, esi
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x14]
xor edi, edi
test eax, eax
jbe 0x4d7360
lea ebx, [eax*4]
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x78]
mov ecx, dword [ecx + edi*4]
cmp dword [eax + edi*4], ecx
lea eax, [eax + edi*4]
je 0x4d72cb
mov dword [eax], ecx
mov byte [ebp - 6], 1
mov edx, dword [edx + 4]
mov ecx, dword [edx + ebx]
cmp ecx, 0xffffffff
lea esi, [edx + ebx]
je 0x4d7314
mov eax, dword [ecx + 0x10]
fld qword [ecx + 0xa8]
mov eax, dword [eax + 8]
and eax, 0x100
xor edx, edx
or eax, edx
je 0x4d7312
mov eax, dword [ecx + 8]
and eax, 0x800
xor ecx, ecx
or eax, ecx
je 0x4d7312
mov eax, dword [ebp - 0xa4]
fld qword [eax + edi*8]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4d7351
jmp 0x4d7314
fstp st(1)
mov ecx, dword [ebp - 0xa4]
fstp st(0)
fld qword [ecx + edi*8]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x28e0]
sub esp, 8
fstp qword [esp]
push 0x20
push 0x7800
push 0
push 0
push edx
push esi
push eax
call fcn.004ca3c0
mov esi, eax
test esi, esi
jl 0x4d7a2a
fldz
mov byte [ebp - 6], 1
add edi, 1
add ebx, 4
cmp edi, dword [ebp - 0x14]
jb 0x4d72b1
mov cl, byte [ebp - 6]
test cl, cl
je 0x4d7371
mov eax, dword [ebp + 8]
add dword [eax + 0x1a80], 1
cmp byte [ebp - 5], 0
jne 0x4d737f
test cl, cl
mov byte [ebp - 5], 0
je 0x4d7383
mov byte [ebp - 5], 1
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x38]
and ecx, 0xfff00000
cmp ecx, 0x20500000
jne 0x4d7974
mov ebx, dword [eax + 8]
xor esi, esi
xor al, al
cmp ebx, esi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], esi
mov byte [ebp - 6], al
jbe 0x4d7504
fstp st(0)
mov edx, dword [ebp - 0x78]
lea eax, [edx + esi*4]
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x50]
push edx
lea ecx, [ebp - 0x38]
push ecx
or edi, 0xffffffff
lea edx, [ebp - 0x14]
push edx
mov dword [eax], edi
push eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x20], edi
mov edx, dword [ecx + esi*4]
mov ecx, dword [ebp + 8]
push edx
call fcn.004d4fe0
test eax, eax
jl 0x4d74ff
cmp dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x38]
je 0x4d7429
cmp edi, 0xffffffff
je 0x4d7429
mov eax, dword [ebp - 0x14]
fld qword [eax + 0xa8]
fcomp qword [edi + 0xa8]
fnstsw ax
test ah, 1
jne 0x4d7422
or edi, 0xffffffff
mov dword [ebp - 0x38], edi
jmp 0x4d7429
mov dword [ebp - 0x14], 0xffffffff
mov edx, dword [ebp - 0x20]
cmp edx, 0xffffffff
mov ecx, dword [ebp - 0x50]
je 0x4d7487
cmp ecx, 0xffffffff
je 0x4d7452
fld qword [edx + 0xa8]
fcomp qword [ecx + 0xa8]
fnstsw ax
test ah, 0x41
jp 0x4d7481
or ecx, 0xffffffff
mov dword [ebp - 0x50], ecx
cmp dword [ebp - 0x14], 0xffffffff
jne 0x4d74ff
cmp edi, 0xffffffff
jne 0x4d74ff
cmp ecx, edi
je 0x4d74c3
fld qword [ecx + 0xa8]
mov ecx, dword [ebp - 0xa4]
fstp qword [ecx + esi*8]
mov eax, 0x20300000
mov cl, 1
jmp 0x4d74de
or edx, 0xffffffff
mov dword [ebp - 0x20], edx
cmp ecx, 0xffffffff
jne 0x4d749e
cmp dword [ebp - 0x14], ecx
je 0x4d749e
mov ecx, dword [ebp - 0x14]
fld qword [ecx + 0xa8]
mov cl, 1
jmp 0x4d74d0
cmp edx, 0xffffffff
jne 0x4d7452
cmp ecx, edx
jne 0x4d7452
cmp edi, edx
je 0x4d7452
mov eax, dword [ebp - 0xa4]
fld qword [edi + 0xa8]
fstp qword [eax + esi*8]
mov eax, 0x20300000
xor cl, cl
jmp 0x4d74de
cmp edx, 0xffffffff
je 0x4d74ff
fld qword [edx + 0xa8]
xor cl, cl
mov edx, dword [ebp - 0xa4]
fstp qword [edx + esi*8]
mov eax, 0x20200000
test esi, esi
jne 0x4d74ea
mov dword [ebp - 0x28], eax
mov byte [ebp - 6], cl
jmp 0x4d74f4
cmp eax, dword [ebp - 0x28]
jne 0x4d74ff
cmp cl, byte [ebp - 6]
jne 0x4d74ff
add esi, 1
cmp esi, ebx
jb 0x4d73b5
fldz
mov al, byte [ebp - 6]
cmp esi, ebx
mov ecx, dword [ebp + 8]
jne 0x4d7974
mov edx, 1
add dword [ecx + 0x1a6c], edx
add dword [ecx + 0x1a70], edx
cmp byte [ecx + 0x1a68], 0
je 0x4d7974
test byte [ecx + 0xa9], 2
jne 0x4d75de
mov ecx, dword [ebp - 0x28]
mov edx, ecx
xor edx, ebx
and edx, 0xfffff
xor edx, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x38], edx
mov dl, al
neg dl
sbb edx, edx
and edx, ebx
neg al
mov ecx, edx
sbb eax, eax
not eax
and eax, ebx
xor edi, edi
test ebx, ebx
jbe 0x4d7970
add eax, eax
fstp st(0)
add eax, eax
mov dword [ebp - 0x20], eax
lea ebx, [ecx*4]
jmp 0x4d7580
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x78]
mov edx, dword [edx + edi*4]
sub esp, 8
mov dword [ebx + ecx], edx
mov ecx, dword [ebp - 0xa4]
fld qword [ecx + edi*8]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + 4]
fstp qword [esp]
mov edx, dword [ecx + 0x28e0]
add eax, dword [ebp - 0x20]
push 0x20
push 0x7800
push 0
push 0
push edx
push eax
push ecx
call fcn.004ca3c0
mov esi, eax
test esi, esi
jl 0x4d7a2a
add dword [ebp - 0x20], 4
add edi, 1
add ebx, 4
cmp edi, dword [ebp - 0x24]
jb 0x4d7580
jmp 0x4d796e
mov eax, dword [ebp + 8]
fstp st(0)
mov edi, ebx
push ebx
and edi, 0xfffff
push ebx
mov ecx, edi
or ecx, 0x10100000
push ecx
lea edx, [ebp - 0x30]
push edx
push eax
call fcn.004ca530
mov esi, eax
test esi, esi
jl 0x4d7a2a
push ebx
lea ecx, [ebx + ebx]
push ecx
mov ecx, dword [ebp + 8]
mov edx, edi
or edx, 0x20400000
push edx
lea eax, [ebp - 0x1c]
push eax
push ecx
call fcn.004ca530
mov esi, eax
test esi, esi
jl 0x4d7a2a
mov ecx, dword [ebp + 8]
push ebx
lea edx, [ebx + ebx*2]
push edx
or edi, 0x30000000
push edi
lea eax, [ebp - 0x90]
push eax
push ecx
call fcn.004ca530
mov esi, eax
test esi, esi
jl 0x4d7a2a
cmp byte [ebp - 6], 0
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x90]
mov dword [ecx + 0x30], edx
mov edx, dword [eax + 0x34]
mov dword [ecx + 0x34], edx
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x30], edx
mov edx, dword [eax + 0x34]
mov dword [ecx + 0x34], edx
mov ecx, dword [eax + 0x30]
mov dword [ebx + 0x30], ecx
mov edx, dword [eax + 0x34]
mov dword [ebx + 0x34], edx
mov dword [ebp - 0x14], 0
jne 0x4d7705
cmp dword [ebp - 0x24], 0
jbe 0x4d7773
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0xa4]
fld qword [edx + eax*8]
mov edx, dword [ebp - 0x30]
sub esp, 8
fstp qword [esp]
push 0x20
push 0x7800
push 0
lea ecx, [eax*4]
mov eax, dword [edi + 0x28e0]
push 0
push eax
mov eax, dword [edx + 4]
add eax, ecx
push eax
push edi
call fcn.004ca3c0
mov esi, eax
test esi, esi
jl 0x4d7a2a
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x78]
mov ecx, dword [ecx + eax*4]
mov dword [edx + eax*4], ecx
add eax, 1
cmp eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
jb 0x4d76a2
jmp 0x4d7776
cmp dword [ebp - 0x24], 0
jbe 0x4d7773
mov edi, dword [ebp + 8]
mov edi, edi
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
mov edx, dword [edx + 4]
mov esi, dword [ebp - 0x78]
lea eax, [ecx*4]
mov esi, dword [eax + esi]
sub esp, 8
mov dword [eax + edx], esi
mov edx, dword [ebp - 0xa4]
fld qword [edx + ecx*8]
mov ecx, dword [edi + 0x28e0]
mov edx, dword [ebp - 0x1c]
fstp qword [esp]
push 0x20
push 0x7800
push 0
push 0
push ecx
mov ecx, dword [edx + 4]
add ecx, eax
push ecx
push edi
call fcn.004ca3c0
mov esi, eax
test esi, esi
jl 0x4d7a2a
mov eax, dword [ebp - 0x14]
add eax, 1
cmp eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
jb 0x4d7710
jmp 0x4d7776
mov edi, dword [ebp + 8]
cmp dword [ebp - 0x68], 0xffffffff
jne 0x4d77aa
fld1
mov edx, dword [edi + 0x28e0]
sub esp, 8
fstp qword [esp]
push 0x20
push 0x7800
push 0
push 0
push edx
lea eax, [ebp - 0x68]
push eax
push edi
call fcn.004ca3c0
mov esi, eax
test esi, esi
jl 0x4d7a2a
cmp dword [ebp - 0x40], 0xffffffff
jne 0x4d77de
fldz
mov ecx, dword [edi + 0x28e0]
sub esp, 8
fstp qword [esp]
push 0x20
push 0x7800
push 0
push 0
push ecx
lea edx, [ebp - 0x40]
push edx
push edi
call fcn.004ca3c0
mov esi, eax
test esi, esi
jl 0x4d7a2a
cmp dword [ebp - 0x28], 0x20300000
mov edx, dword [ebp - 0x24]
jne 0x4d781f
test edx, edx
jbe 0x4d7855
lea ecx, [edx*8]
lea eax, [edx*4]
mov dword [ebp - 0x20], edx
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0x68]
mov dword [eax + edx], esi
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0x40]
mov dword [ecx + edx], esi
add eax, 4
add ecx, 4
sub dword [ebp - 0x20], 1
jne 0x4d77ff
jmp 0x4d7852
test edx, edx
jbe 0x4d7855
lea ecx, [edx*8]
lea eax, [edx*4]
mov dword [ebp - 0x20], edx
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0x40]
mov dword [eax + edx], esi
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0x68]
mov dword [ecx + edx], esi
add eax, 4
add ecx, 4
sub dword [ebp - 0x20], 1
jne 0x4d7834
mov edx, dword [ebp - 0x24]
test edx, edx
mov dword [ebp - 0x14], 0
jbe 0x4d7943
lea eax, [edx*4]
mov dword [ebp - 0x20], eax
mov edi, edi
fldz
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28fc]
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
sub esp, 8
fstp qword [esp]
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [edx + 0xc]
add edi, edi
add edi, edi
add ecx, edi
push ecx
push eax
call fcn.004ca3c0
mov esi, eax
test esi, esi
jl 0x4d7a2a
fldz
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x28fc]
mov ecx, dword [ebp - 0x1c]
sub esp, 8
fstp qword [esp]
push 0
push 0
push 0
push 0
push edx
mov edx, dword [ecx + 0xc]
add edx, edi
push edx
push eax
call fcn.004ca3c0
mov esi, eax
test esi, esi
jl 0x4d7a2a
mov edx, dword [ebx + 0xc]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + ecx]
mov ecx, dword [ebp - 0x30]
mov dword [edi + edx], eax
mov edx, dword [ecx + 0xc]
mov eax, dword [edi + edx]
mov dword [eax + 0x6c], ecx
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0xc]
mov edx, dword [edi + edx]
mov dword [edx + 0x6c], eax
mov edx, dword [ebx + 0xc]
mov edx, dword [edi + edx]
mov dword [edx + 0x6c], ebx
mov ecx, dword [ecx + 0xc]
mov edx, dword [eax + 4]
mov esi, dword [edi + ecx]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + edx], esi
mov eax, dword [eax + 0xc]
mov eax, dword [edi + eax]
mov edx, dword [ebx + 4]
mov dword [edi + edx], eax
mov eax, dword [ebp - 0x14]
add eax, 1
add ecx, 4
cmp eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], ecx
jb 0x4d7870
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
push 1
push eax
mov dword [ebp - 0x60], ecx
lea ecx, [ebp - 0x60]
push ecx
push 3
push edi
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], ebx
call fcn.004caa20
mov esi, eax
test esi, esi
jl 0x4d7a2a
fldz
mov byte [ebp - 5], 1
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x4d7997
mov edx, dword [ebp + 8]
cmp eax, dword [edx + 0x10]
jae 0x4d7997
mov ecx, edx
mov edx, dword [ecx + 0x14]
mov ecx, dword [edx + eax*4 - 4]
sub eax, 1
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], ecx
jmp 0x4d79a7
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0x10]
jae 0x4d79bd
mov edi, ecx
jmp 0x4d6b5c
mov esi, 0x8007000e
jmp 0x4d7a2a
cmp byte [ebp - 5], 0
fstp st(0)
jne 0x4d79f1
jmp 0x4d79c9
fstp st(0)
mov edi, dword [ebp + 8]
push edi
call fcn.004eac00
mov esi, eax
test esi, esi
jl 0x4d7a2a
push edi
call fcn.004caf90
mov esi, eax
test esi, esi
jl 0x4d7a2a
mov eax, edi
call fcn.004ee340
mov esi, eax
test esi, esi
jl 0x4d7a2a
xor edx, edx
cmp byte [ebp - 5], dl
sete dl
mov esi, edx
jmp 0x4d7a2a
push ebx
fstp st(0)
call fcn.004eac00
mov esi, eax
test esi, esi
jl 0x4d7a2a
push ebx
call fcn.004caf90
mov esi, eax
test esi, esi
jl 0x4d7a2a
mov eax, ebx
call fcn.004ee340
mov esi, eax
test esi, esi
jl 0x4d7a2a
xor esi, esi
jmp 0x4d7a2a
fstp st(0)
cmp dword [ebp - 0xa4], 0
mov ecx, dword [ebp - 0x98]
je 0x4d7a99
test ecx, ecx
ja 0x4d7a42
mov ecx, 1
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x2a04]
cmp ecx, dword [eax + 8]
jae 0x4d7a55
sub dword [eax + 8], ecx
jmp 0x4d7a9c
mov ecx, dword [edi + 0x2a08]
test ecx, ecx
je 0x4d7a7a
mov edx, dword [ecx + 0xc]
cmp edx, dword [eax + 0xc]
jb 0x4d7a7a
mov ebx, dword [eax]
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [edi + 0x2a04], ebx
jmp 0x4d7a9c
push ecx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [edi + 0x2a04]
mov dword [edi + 0x2a08], eax
mov eax, dword [eax]
add esp, 4
mov dword [edi + 0x2a04], eax
jmp 0x4d7a9c
mov edi, dword [ebp + 8]
cmp dword [ebp - 0x78], 0
mov ecx, dword [ebp - 0x6c]
je 0x4d7b12
test ecx, ecx
ja 0x4d7aae
mov ecx, 1
mov eax, dword [edi + 0x29bc]
cmp ecx, dword [eax + 8]
jae 0x4d7ac7
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 + 0x29c0]
test ecx, ecx
je 0x4d7af5
mov edx, dword [ecx + 0xc]
cmp edx, dword [eax + 0xc]
jb 0x4d7af5
mov ebx, dword [eax]
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov dword [edi + 0x29bc], 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 + 0x29bc]
mov dword [edi + 0x29c0], eax
mov eax, dword [eax]
mov dword [edi + 0x29bc], eax
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4